1. Hoarder介绍
1.1 简介
Hoarder是一款可自托管的书签应用程序,它不仅能够帮助用户收藏链接、笔记、图片和PDF文档,还具备基于AI的自动标记和全文搜索功能。Hoarder 强调自托管,确保用户的数据安全和隐私。此外,它还提供了丰富的功能,如自动抓取链接元数据、OCR文字提取、RSS订阅自动收藏等,旨在为用户提供一个强大且灵活的信息管理解决方案。

1.2 特性
收藏链接,记录简洁笔记,并存储图片。
自动抓取链接标题、描述及图片。
将书签整理到不同的列表中。
对存储的所有内容进行全文搜索。
基于AI(如ChatGPT)的自动标签功能,支持使用ollama的本地模型。
Chrome插件与Firefox扩展,实现快速书签功能。
提供iOS应用与Android应用。
支持深色模式。
首要支持自托管。
2. 环境准备
在开始部署前,请确保你的系统已经安装 Docker 和 Docker Compose。
2.1 安装 Docker(Ubuntu 示例)
如果你的系统尚未安装 Docker,可以使用以下命令进行安装:
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
验证安装:
docker --version
2.2 安装 Docker Compose
sudo apt install -y docker-compose
验证安装:
docker-compose --version
3. 创建 docker-compose.yml 配置文件
我们可以使用 Docker Compose 来管理 Hoarder 及其依赖的数据库。
示例:使用 PostgreSQL 作为数据库
在 hoarder 目录下创建 docker-compose.yml 文件,并写入以下内容:
version: "3.8"
services:
web:
image: ghcr.io/hoarder-app/hoarder:release
restart: unless-stopped
volumes:
- data:/data
ports:
- "3000:3000"
env_file:
- .env
environment:
MEILI_ADDR: http://meilisearch:7700
BROWSER_WEB_URL: http://chrome:9222
DATA_DIR: /data
chrome:
image: registry.cn-hangzhou.aliyuncs.com/jeson/alpine-chrome:123
restart: unless-stopped
command:
- --no-sandbox
- --disable-gpu
- --disable-dev-shm-usage
- --remote-debugging-address=0.0.0.0
- --remote-debugging-port=9222
- --hide-scrollbars
meilisearch:
image: registry.cn-hangzhou.aliyuncs.com/jeson/meilisearch:v1.11.1
restart: unless-stopped
env_file:
- .env
environment:
MEILI_NO_ANALYTICS: "true"
volumes:
- meilisearch:/meili_data
volumes:
meilisearch:
data:如果遇到docker拉取镜像报错,可尝试手动docker pull拉取镜像,如果仍有问题可能需要换源或者科学上网解决。
4. 启动 Hoarder 服务
在 docker-compose.yml 所在目录运行以下命令:
sudo docker-compose up -d
该命令会启动 Hoarder 及其web和cchrome插件,还有数据库,并在后台运行,如下所示:
ubuntu@VM-12-3-ubuntu ~/p/hoarder [1]> sudo docker-compose up -d
WARN[0000] /home/ubuntu/project_hoarder/hoarder/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 3/3
✔ Container hoarder-meilisearch-1 Running 0.0s
✔ Container hoarder-web-1 Running 0.0s
✔ Container hoarder-chrome-1 Running 0.0s
ubuntu@VM-12-3-ubuntu ~/p/hoarder> 5. 验证部署
检查正在运行的容器:
docker ps
如果 hoarder 和 hoarder_postgres 容器都在运行,则说明启动成功。
ubuntu@VM-12-3-ubuntu ~/p/hoarder [1]> sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
444a3747f6e9 registry.cn-hangzhou.aliyuncs.com/jeson/meilisearch:v1.11.1 "tini -- /bin/sh -c …" 6 days ago Up 6 days 7700/tcp hoarder-meilisearch-1
17d91ed09000 ghcr.io/hoarder-app/hoarder:release "/init" 6 days ago Up 6 days (healthy) 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp hoarder-web-1
cbf759114f95 registry.cn-hangzhou.aliyuncs.com/jeson/alpine-chrome:123 "chromium-browser --…" 6 days ago Up 6 days hoarder-chrome-1访问 Hoarder:
在浏览器中输入:
http://localhost:3000如果是远程服务器,则访问:(如果是云服务器记得开启安全组的对应端口放行)
http://服务器IP:3000
6. 管理 Hoarder
查看日志
docker-compose logs -f
停止 Hoarder
docker-compose down
重启 Hoarder
docker-compose restart
更新 Hoarder
docker-compose pull
docker-compose up -d
7. 配置 Nginx 反向代理(可选)
如果希望使用域名访问 Hoarder,可以使用 Nginx 作为反向代理。
7.1 安装 Nginx
sudo apt install -y nginx
7.2 配置 Nginx
在 /etc/nginx/sites-available/hoarder 添加以下内容:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/hoarder /etc/nginx/sites-enabled/
sudo systemctl restart nginx
8. 配置 HTTPS(可选)
如果使用域名访问,可以使用 Let’s Encrypt 配置 HTTPS:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
证书续期:
sudo certbot renew --dry-run
9. 备份和恢复数据库
9.1 备份 PostgreSQL 数据
docker exec hoarder_postgres pg_dump -U hoarder -d hoarder > backup.sql
9.2 恢复数据库
cat backup.sql | docker exec -i hoarder_postgres psql -U hoarder -d hoarder
10. 常见问题及解决方案
问题 1:Docker 容器无法启动
运行以下命令查看错误日志:
docker-compose logs hoarder
问题 2:Hoarder 无法连接数据库
确保
DATABASE_URL配置正确确保
postgres容器正在运行:docker ps | grep postgres
问题 3:端口被占用
如果 8000 端口已被占用,可以修改 docker-compose.yml:
ports:
- "8080:8000"
然后重新启动:
docker-compose up -d
并使用 http://服务器IP:8080 访问。
11. 基础使用介绍
11.1 访问hoarder初始页
访问地址:http://127.0.0.1:3000,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。

11.2 注册功能

11.3 添加内容
登录后,将自己的网址(文字、图片均可)粘贴到Bookmarks中,如下所示:

可以二次编辑文本,支持markdown格式:

添加添加网站地址,点击书签即可跳转到网站:

自动爬取网站主页数据,如上图
11.4 标签功能
添加一个“测试”标签到改测试文案:



11.5 搜索功能
搜索上面新增的“测试”标签下的内容:

11.6 列表功能
新增“测试”列表,并将文档归类到“测试”列表:




11.7 AI标记功能
需要自行填充API Key,不做演示
11.8 多端同步功能
iOS
https://apps.apple.com/us/app/hoarder-app/id6479258022
Android
https://play.google.com/store/apps/details?id=app.hoarder.hoardermobile&pcampaignid=web_share
Chrome插件
https://chromewebstore.google.com/detail/hoarder/kgcjekpmcjjogibpjebkhaanilehneje
Firefox插件
https://addons.mozilla.org/en-US/firefox/addon/hoarder/
评论区