
什么是 LinkWarden ?
Linkwarden是一个自托管、开源协作书签管理器,用于收集、组织和存档网页。目标是将您在网络上找到的有用网页和文章组织到一个地方,并且由于有用的网页可能会消失(参见链接失效的必然性),Linkwarden还将每个网页的副本保存为屏幕截图和

官方提供了试用站点:https://linkwarden.app
重要说明
本文完成于 8 月,当时官方提供了 Dockerfile ,但是没有现成的镜像,发文时老苏发现官方对 Dockerfile 文件做了比较大的调整 ,而且也在 ghcr.io 提供了镜像,连 logo 都做了变更。 😂
老苏建议大家用官方的镜像,请将下文中 docker-compose.yml 中的 wbsu2003/linkwarden 替换为 ghcr.io/linkwarden/linkwarden:latest,其他的都是一样的。
ghcr.io 镜像的下载,可以试试 docker 代理网站:https://dockerproxy.com/,可能是现在用的人太多,速度有时候会非常慢,下载失败也是常事,不行就多试几次吧。
构建镜像
如果你不想自己构建,可以跳过,直接阅读下一章节
官方提供了 Dockerfile,但没找到现成的镜像,所以需要自己编译
# playwright doesnt support debian image
FROM ubuntu:focal RUN apt-get update && apt-get install wget xz-utils -y RUN mkdir /data WORKDIR /data RUN wget https://nodejs.org/dist/v20.5.0/node-v20.5.0-linux-x64.tar.xz -O nodejs.tar.xz \ && mkdir /opt/nodejs \ && tar -xf nodejs.tar.xz --strip-components 1 -C /opt/nodejs \ && rm nodejs.tar.xz
ENV PATH="$PATH:/opt/nodejs/bin"
RUN npm install -g yarn COPY ./package.json ./yarn.lock ./playwright.config.ts ./ RUN yarn
RUN npx playwright install-deps COPY . . RUN yarn prisma generate
RUN yarn build CMD yarn prisma migrate deploy && yarn start
构建镜像和容器运行的基本命令如下👇
# 下载代码
git clone https://github.com/linkwarden/linkwarden.git# 或者加个代理
git clone https://ghproxy.com/github.com/linkwarden/linkwarden.git# 进入目录
cd linkwarden# 构建镜像
docker build -t wbsu2003/linkwarden:v1 .
老苏就修改了 nodejs 的版本,从 v20.5.0 改为了 v20.5.1 ,其他的未做任何改动
RUN wget https://nodejs.org/dist/v20.5.1/node-v20.5.1-linux-x64.tar.xz -O nodejs.tar.xz \ && mkdir /opt/nodejs \ && tar -xf nodejs.tar.xz --strip-components 1 -C /opt/nodejs \ && rm nodejs.tar.xz
编译出来的镜像有点大,就这样吧

官方镜像是一样的

命令行安装
将下面的内容保存为 docker-compose.yml 文件
version: "3.5"services:postgres:image: postgres:14container_name: linkwarden-dbrestart: alwaysvolumes:- ./pgdata:/var/lib/postgresql/dataenvironment:- POSTGRES_USER=linkwarden- POSTGRES_PASSWORD=qP4oMQGewTi- POSTGRES_DB=linkwardenlinkwarden:image: wbsu2003/linkwardencontainer_name: linkwarden-webrestart: alwaysplatform: linux/x86_64ports:- 3035:3000volumes:- ./data:/data/dataenvironment:- DATABASE_URL=postgresql://linkwarden:qP4oMQGewTi@postgres:5432/linkwarden- NEXTAUTH_URL=http://192.168.0.197:3035- NEXTAUTH_SECRET=23NhmBsT7TzC6996XwLX9PjPNnAciPZVdepends_on:- postgres
postgres环境变量
| 可变 | 值 |
|---|---|
POSTGRES_USER | 数据库用户,设为 linkwarden |
POSTGRES_PASSWORD | 数据库密码,用 vaultwarden 生成 |
POSTGRES_DB | 数据库库名,设为 linkwarden |
linkwarden环境变量
| 可变 | 值 |
|---|---|
NEXTAUTH_URL | 站点地址 |
NEXTAUTH_SECRET | 随机字符串,可用vaultwarden 生成,或者用 openssl rand -base64 32 创建 |
DATABASE_URL | 数据库访问地址,格式如下👇: |
postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@数据库主机地址:5432/${POSTGRES_DB}
更多的环境变量,请参考
.env.sample文件:https://github.com/linkwarden/linkwarden/blob/main/.env.sample
然后执行下面的命令
# 新建文件夹 linkwarden 和 子目录
mkdir -p /volume1/docker/linkwarden/{data,pgdata}# 进入 linkwarden 目录
cd /volume1/docker/linkwarden# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:3035 就能看到登录界面

第一次需要注册
密码不能少于
8个字符

登录成功后的主界面

Collections 是分类,可以设置为共享或者协作

有了分类就可以添加 Link 了

Link 属性除了 Collection ,还支持 Tags,查询起来会比较快

新增一个 link

可用固定在主页

可用截屏或者导出 pdf

效果还行

最后来一张官方的效果图

参考文献
Daniel31x13/link-warden: A self-hosted bookmark + archive manager to store your useful links.
地址:https://github.com/Daniel31x13/link-warden
Linkwarden
地址:https://linkwarden.app/