什么是 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/