什么是 Hoarder ?
Hoarder
是一款可自托管的书签应用程序(链接、笔记和图像),具有基于人工智能的自动标记和全文搜索功能。适合数据囤积者使用。
软件特点:
- 🔗 为链接添加书签、做简单的笔记并存储图像。
- ⬇️ 自动获取链接标题、描述和图像。
- 📋 将您的书签分类放入列表中。
- 🔎 对存储的所有内容进行全文搜索。
- ✨ 基于 AI(又名 chatgpt)的自动标记。支持使用 ollama 的本地模型!
- 🔖 Chrome 插件和Firefox 插件可快速添加书签。
- 📱一个iOS 应用程序和一个Android 应用程序。
- 🌙 支持暗黑模式(目前仅限网络版)。
- 💾 首先进行自我托管。
- [计划] 下载内容以供离线阅读。
⚠️该应用程序正在大力开发中,还远未稳定。
官方提供了在线演示站点:https://try.hoarder.app
可以使用下面👇凭证登录
email: demo@hoarder.app
password: demodemo
安装
在群晖上以 Docker 方式安装。
涉及到多个容器,采用 docker-compose
方式安装
env.txt
将下面的内容保存为 env.txt
文件
NEXTAUTH_SECRET=4SnT8OKdC9p8bL23a6KHRiPFfRfXJOQC5E4VExPTBaNcBg8Z
MEILI_MASTER_KEY=fjJ+q1KEAg3Kxl3NxHbYKOhK1qB37RUK4VOpILyG5g6CsAWw
NEXTAUTH_URL=http://192.168.0.197:3312
NEXTAUTH_SECRET
和MEILI_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 基础上微调的
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
的速度还行吧,但是直观感觉上,准确度总归还是差点意思;
然后执行下面的命令
# 新建文件夹 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