🚀 加载中...
侧边栏壁纸
博主头像
Fish's Embedded Study & Share

积跬步以至千里,积小流以成江河

  • 累计撰写 11 篇文章
  • 累计创建 14 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Docker搭建Hoarder

玩不转C的鱼
2025-03-20 / 1 评论 / 0 点赞 / 69 阅读 / 0 字

1. Hoarder介绍

1.1 简介

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

1.2 特性

  • 收藏链接,记录简洁笔记,并存储图片。

  • 自动抓取链接标题、描述及图片。

  • 将书签整理到不同的列表中。

  • 对存储的所有内容进行全文搜索。

  • 基于AI(如ChatGPT)的自动标签功能,支持使用ollama的本地模型。

  • Chrome插件与Firefox扩展,实现快速书签功能。

  • 提供iOS应用与Android应用。

  • 支持深色模式。

  • 首要支持自托管。


2. 环境准备

在开始部署前,请确保你的系统已经安装 DockerDocker 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

如果 hoarderhoarder_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/

0

评论区