静看光阴荏苒
不管不顾不问不说也不念

hoarder:又一个书签管理器,支持AI自动生成标签

hoarder的特性(摘自项目页面):

🔗 Bookmark links, take simple notes and store images.
⬇️ Automatic fetching for link titles, descriptions and images.
📋 Sort your bookmarks into lists.
🔎 Full text search of all the content stored.
✨ AI-based (aka chatgpt) automatic tagging. With supports for local models using ollama!
🔖 Chrome plugin and Firefox addon for quick bookmarking.
📱 An iOS app that’s pending apple’s review (currently beta testing), and the Android app is almost ready.
🌙 Dark mode support (web only so far).
💾 Self-hosting first.
[Planned] Downloading the content for offline reading.

这篇文章记录下hoarder和ollama整合的配置过程。

安装需要用到的软件包:

apt -y update
apt -y install curl wget nginx python3-certbot-nginx
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

[可选]部署ollama,下载ollama的二进制文件给执行权限:

curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/local/bin/ollama
chmod +x /usr/local/bin/ollama

创建一个用户:

useradd -r -s /bin/false -m -d /usr/share/ollama ollama

创建systemd服务文件:

nano /etc/systemd/system/ollama.service

写入如下内容:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
Environment="OLLAMA_HOST=0.0.0.0"
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3

[Install]
WantedBy=default.target

[备注]注意OLLAMA_HOST这个环境变量,务必配置成0.0.0.0。

启动并设置开机自启:

systemctl enable --now ollama

[备注1]ollama是支持gpu的,但我这台独立服务器上没有gpu,所以我没有配置相关的内容,如果你的机器有gpu,可以参考这里进行配置

[备注2]7b以下的模型,包括7b在内,实际上一个6代i5的cpu就能跑的很流畅了,所以gpu并不是一定需要。。当然如果有的话那更好。。

现在就可以用ollama运行模型了,在这里可以找到可用的模型:https://ollama.com/library

现在最热门的模型应该就是llama3了,毕竟刚刚发布不到2天。。这里我就用它了,执行如下命令下载:

ollama run llama3:8b

等待下载完成,你就可以在命令行和这个模型进行交互了:

Ctrl+D可以退出来,如果后续你希望hoarder能够识别图片,为图片自动添加标签,则还需要下载llava模型:

ollama pull llava

至此ollama的部署就完成了。接下来我们来部署hoarder。

创建目录、下载compose文件:

mkdir -p /opt/hoarder && cd /opt/hoarder && wget https://raw.githubusercontent.com/MohamedBassem/hoarder-app/main/docker/docker-compose.yml

由于我没有使用docker部署ollama,我是将ollama部署到主机的,但hoarder是通过docker部署的,为了让hoarder能够访问到主机的ollama,需要对hoarder的compose文件进行一些修改,编辑compose文件:

nano docker-compose.yml

在web和workers这两个services内添加host.docker.internal:host-gateway相关的配置:

version: "3.8"
services:
  web:
    image: ghcr.io/mohamedbassem/hoarder-web:${HOARDER_VERSION:-release}
    restart: unless-stopped
    ...
    extra_hosts:
      - "host.docker.internal:host-gateway"
  ...
  workers:
    image: ghcr.io/mohamedbassem/hoarder-workers:${HOARDER_VERSION:-release}
    restart: unless-stopped
    ...
    extra_hosts:
      - "host.docker.internal:host-gateway"
    depends_on:
      web:
        condition: service_started
  ...

创建一个.env环境变量配置文件:

nano .env

写入如下内容:

HOARDER_VERSION=release
NEXTAUTH_SECRET=hidden
MEILI_MASTER_KEY=hidden
NEXTAUTH_URL=https://hoarder.example.com
OLLAMA_BASE_URL=http://host.docker.internal:11434
INFERENCE_TEXT_MODEL=llama3
INFERENCE_IMAGE_MODEL=llava

NEXTAUTH_SECRET和MEILI_MASTER_KEY可以使用下面的命令生成:

openssl rand -base64 36

[备注1]务必将NEXTAUTH_URL后面的域名修改为你自己的。

[备注2]如果不需要ollama的支持,可以删掉OLLAMA_BASE_URL、INFERENCE_TEXT_MODEL、INFERENCE_IMAGE_MODEL这三个环境变量。

启动:

docker compose up -d

配置nginx反向代理,新建nginx站点配置文件:

nano /etc/nginx/sites-available/hoarder

写入如下内容:

server {
    listen 80;
    listen [::]:80;
    server_name hoarder.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Scheme $scheme;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Accept-Encoding "";
        proxy_set_header Host $host;
        client_max_body_size 0;
    }
}

启用站点:

ln -s /etc/nginx/sites-available/hoarder /etc/nginx/sites-enabled/hoarder

申请tls证书:

certbot --nginx --email imlala@example.com --agree-tos --no-eff-email

访问域名,注册一个账号,注册完成之后,如果要关闭注册,可编辑.env文件:

nano .env

加入如下环境变量:

DISABLE_SIGNUPS=true

使其生效:

docker compose up -d

我测试了一下,自动添加标签(tag)还是挺准的,无论是网页、图片、笔记都可以:

赞(4)
未经允许不得转载:荒岛 » hoarder:又一个书签管理器,支持AI自动生成标签
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿