具备人工智能标记的书签应用Hoarder

什么是 Hoarder ?

Hoarder 是一款可自托管的书签应用程序(链接、笔记和图像),具有基于人工智能的自动标记和全文搜索功能。适合数据囤积者使用。

软件特点:

  • 🔗 为链接添加书签、做简单的笔记并存储图像。
  • ⬇️ 自动获取链接标题、描述和图像。
  • 📋 将您的书签分类放入列表中。
  • 🔎 对存储的所有内容进行全文搜索。
  • ✨ 基于 AI(又名 chatgpt)的自动标记。支持使用 ollama 的本地模型!
  • 🔖 Chrome 插件Firefox 插件可快速添加书签。
  • 📱一个iOS 应用程序和一个Android 应用程序
  • 🌙 支持暗黑模式(目前仅限网络版)。
  • 💾 首先进行自我托管。
  • [计划] 下载内容以供离线阅读。

⚠️该应用程序正在大力开发中,还远未稳定。

官方提供了在线演示站点:https://try.hoarder.app

可以使用下面👇凭证登录

1
2
email: demo@hoarder.app
password: demodemo

安装

在群晖上以 Docker 方式安装。

涉及到多个容器,采用 docker-compose 方式安装

env.txt

将下面的内容保存为 env.txt 文件

1
2
3
NEXTAUTH_SECRET=4SnT8OKdC9p8bL23a6KHRiPFfRfXJOQC5E4VExPTBaNcBg8Z
MEILI_MASTER_KEY=fjJ+q1KEAg3Kxl3NxHbYKOhK1qB37RUK4VOpILyG5g6CsAWw
NEXTAUTH_URL=http://192.168.0.197:3312
  • NEXTAUTH_SECRETMEILI_MASTER_KEY,可以通过在 SSH 客户端在命令行执行 openssl rand -base64 36 来生成

  • NEXTAUTH_URL 中,
    • http://192.168.0.197 是老苏的群晖主机的 IP,需要更换成你自己的;
    • 端口 3312 是后面 docker-compose.yml 中设定的 Web 的主机端口,只要不冲突就可以了;

更多的环境变量,请参考官方文档:https://docs.hoarder.app/configuration

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件,这是在官方文件:https://raw.githubusercontent.com/hoarder-app/hoarder/main/docker/docker-compose.yml 基础上微调的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
version: "3.8"

services:
web:
image: ghcr.io/mohamedbassem/hoarder-web:latest
container_name: hoarder-web
restart: unless-stopped
volumes:
- ./data:/data
ports:
- 3312:3000
env_file:
- env.txt
environment:
REDIS_HOST: redis
MEILI_ADDR: http://meilisearch:7700
DATA_DIR: /data

redis:
image: redis:7.2-alpine
container_name: hoarder-redis
restart: unless-stopped
volumes:
- ./redis:/data

chrome:
image: gcr.io/zenika-hub/alpine-chrome:100
container_name: hoarder-chrome
restart: unless-stopped
command:
- --no-sandbox
- --disable-gpu
- --remote-debugging-address=0.0.0.0
- --remote-debugging-port=9222

meilisearch:
image: getmeili/meilisearch:v1.6
container_name: hoarder-meilisearch
restart: unless-stopped
env_file:
- env.txt
volumes:
- ./meilisearch:/meili_data

workers:
image: ghcr.io/mohamedbassem/hoarder-workers:latest
container_name: hoarder-workers
restart: unless-stopped
volumes:
- ./data:/data
env_file:
- env.txt
environment:
REDIS_HOST: redis
MEILI_ADDR: http://meilisearch:7700
BROWSER_WEB_URL: http://chrome:9222
DATA_DIR: /data
# OPENAI_API_KEY: ...
OLLAMA_BASE_URL: http://192.168.0.197:11434
INFERENCE_TEXT_MODEL: qwen:0.5b
depends_on:
web:
condition: service_started

环境变量部分,可参考官方文档:https://docs.hoarder.app/configuration

这里只简单说下 AI,你可以根据自己的需要进行设置

  • OpenAI 的配置只有一个 OPENAI_API_KEY,所以不能通过代理方式,这就使得想用 GPT4Free 或者 kimi-free-api 就没戏了;
  • Ollama 目前还是实验功能,运算速度取决于机器性能和模型,按官方的说法,可能会出现大量推理失败。老苏用了 qwen:0.5b,在小机器上生成 tags 的速度还行吧,但是直观感觉上,准确度总归还是差点意思;

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 hoarder 和 子目录
mkdir -p /volume1/docker/hoarder/{data,meilisearch,redis}

# 进入 hoarder 目录
cd /volume1/docker/hoarder

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3312 就能看到登录界面

Sign Up 先注册账号

注册完成后,会自动登录进入主界面

网站

以老苏的博客为例,将地址粘贴到 Bookmarks

Save,然后稍等一会儿

卡片的右下角有两个按钮

左边的是放大,可以在不离开当前页面的情况下预览网站

tags 的生成是需要时间的,也许突然间就有了

文字

将文字粘贴到 Bookmarks

保存之后

格式不太好

但是可以编辑

文字的 tags 生成的时间取决于文字的多少

图片

直接拖拽图片

因为没有设置 INFERENCE_IMAGE_MODEL,也就没法自动为图片生成 tags 了,只能手动标记

搜索

直接搜索,因为资源少,所以也看不出什么效果,理论上用了 meilisearch,搜索效果应该不会差

移动端和浏览器插件

https://docs.hoarder.app/quick-sharing,你能找到移动端下载地址

也能找到浏览器插件的安装地址

参考文档

MohamedBassem/hoarder-app: A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search
地址:https://github.com/MohamedBassem/hoarder-app

Hoarder
地址:https://hoarder.app/

Introduction | Hoarder Docs
地址:https://docs.hoarder.app/

Hoarder
地址:https://try.hoarder.app/signin