首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【实用的开源项目】使用服务器部署Hoarder,一款集成AI且界面美观的书签管理器

【实用的开源项目】使用服务器部署Hoarder,一款集成AI且界面美观的书签管理器

原创
作者头像
小俊是我
修改于 2024-06-24 21:27:17
修改于 2024-06-24 21:27:17
2.8K2
举报

1. 前言

差不多三年前(一晃眼三年了,时间过得太快啦),小俊写过一篇教大家安装 LinkAce 的文章,现在小俊又来给大家介绍一款集成了当下最热门的 AI 技术且界面相对较为美观的书签管理器——hoarder,有了它,大家就能更加方便地管理自己收藏的网站与知识啦!

1.1 官方网站

2. hoarder 简介

2.1 简介

A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search 一个可自托管的书签应用程序(链接、笔记和图像),具有基于 AI 的自动标记和全文搜索

⚠️ This app is under heavy development and it's far from stable. ⚠️ This app is under heavy development and it's far from stable. ⚠️ This app is under heavy development and it's far from stable. ⚠️这个应用程序正在大量开发中,它远远不稳定。 ⚠️这个应用程序正在大量开发中,它远远不稳定。 ⚠️这个应用程序正在大量开发中,它远远不稳定。

2.2 特性

  • 🔗 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, and an Android app.
  • 🌙 Dark mode support (web only so far).
  • 💾 Self-hosting first.
  • [Planned] Downloading the content for offline reading.

3. 准备工作

  1. 【必需】一台服务器(推荐 腾讯云轻量应用服务器 HK(特别推荐港澳台服务器,可以直接使用ChatGPT)或大陆境内(也可以自建人工智能大模型来配置AI功能),(腾讯云618年终盛惠也开始啦,超多优惠!需要云服务器的朋友赶快入手吧! )其他服务器(如 CloudCone 、 RackNerd 、家里云或者各家企业的私有云亦可
  2. 【建议】操作系统: Debian 12 ,腾讯云轻量应用服务器推荐 Debian12-Docker24
  3. 【建议且必需】域名一枚,并解析到服务器上
  4. 【可选建议使用反向代理本教程选用NPM】安装好Nginx Proxy Manager( 相关教程 )

注意

这是一篇全新安装教程,若你的服务器已有环境或者已有数据请谨慎重装系统!!!可直接跳至 6.2 环境准备(其他服务器)继续阅读。 这是一篇全新安装教程,若你的服务器已有环境或者已有数据请谨慎重装系统!!!可直接跳至 6.2 环境准备(其他服务器)继续阅读。 这是一篇全新安装教程,若你的服务器已有环境或者已有数据请谨慎重装系统!!!可直接跳至6.2 环境准备(其他服务器)继续阅读。

本文软件基于腾讯云轻量应用服务器安装,建议配置如上说明,教程使用的腾讯云轻量应用服务器系统为 Debian 12 !理论上腾讯云轻量应用服务器为 Debian 12 的服务器操作应与本文基本一致(包括过程与报错),其他系统为 Debian 或者 Ubuntu 的服务器应与本文大同小异!

5. 界面演示

5.1 注册页

Hoarder-注册页.png
Hoarder-注册页.png

5.2 Home-无内容页

Hoarder-Home页-无内容.png
Hoarder-Home页-无内容.png

5.3 Home-有内容页

Hoarder-Home页-有内容.png
Hoarder-Home页-有内容.png

5.4 创建新列表页

Hoarder-创建新列表.png
Hoarder-创建新列表.png

5.5 默认样式书签页

Hoarder-书签-默认样式.png
Hoarder-书签-默认样式.png

5.6 列表样式书签页

Hoarder-书签-列表样式.png
Hoarder-书签-列表样式.png

5.7 最喜欢页

Hoarder-最喜欢页.png
Hoarder-最喜欢页.png

5.8 个人设置页

Hoarder-个人设置页.png
Hoarder-个人设置页.png

5.9 管理员页

Hoarder-管理员页.png
Hoarder-管理员页.png

5.10 上传页

Hoarder-上传页.png
Hoarder-上传页.png

5.11 搜索页

Hoarder-搜索页.png
Hoarder-搜索页.png

6. 部署 hoarder

6.1 环境准备(腾讯云轻量应用服务器)

该步骤特别为使用腾讯云轻量应用服务器的用户准备,若你不是用腾讯云轻量应用服务器部署该程序,可以直接转到 6.2 环境准备(其他服务器) 继续阅读。

6.1.1 重装系统

此操作前请确保服务器上无重要程序、文件!!!请确保服务器上的数据已经备份好!!! 此操作前请确保服务器上无重要程序、文件!!!请确保服务器上的数据已经备份好!!! 此操作前请确保服务器上无重要程序、文件!!!请确保服务器上的数据已经备份好!!!

进入腾讯云轻量应用服务器的控制台,进入 重装系统 界面,然后选择 使用容器镜像 ,列表中选择 Debian12-Docker24 请确保服务器上无重要程序、文件!!!请确保服务器上的数据已经备份好!!! 然后点击勾选 确认已了解以上内容,我确定已备份完成 ,而后点击确定即可完成系统重装。

部署hoarder-重装系统.png
部署hoarder-重装系统.png

腾讯云轻量应用服务器这边我们直接选择 Docker 容器镜像,就可以跳过安装 Docker 的步骤(如果你使用的是境内服务器,腾讯云的 Docker 容器镜像已经配置好了国内镜像源,可以加速访问 Docker 镜像资源)。

6.1.2 登录服务器

遨驰终端OrcaTerm (原名 WebShell )是腾讯遨驰云原生操作系统中 CVM 、 Lighthouse、裸金属等产品的统一网页终端,也是帮助您随时随地通过浏览器远程登录第三方云厂商服务器统一管理业务的一把利器,相比本地远程终端更轻量便捷,无需掌握SSH和FTP也可轻松操作。 进入腾讯云轻量应用服务器的控制台,点击右上方的 登录 ,就可以使用腾讯云的 遨驰终端OrcaTerm 一键登录到服务器。

部署hoarder-登录服务器.png
部署hoarder-登录服务器.png

输入下面这句命令登录到 root 账号

代码语言:javascript
复制
sudo -i
部署hoarder-登录到root.png
部署hoarder-登录到root.png

6.1.3 安装 Nginx Proxy Manager(可选建议使用反向代理本教程选用NPM)

安装 Nginx Proxy Manager 的详细教程小俊之前也写过哦,也配有详细的视频版本,需要学习的朋友可以点击这篇文章学习👉👉👉链接:【教程】使用腾讯云轻量应用服务器搭建Nginx Proxy Manager,优美简单地解决反向代理!https://www.smalljun.com/archives/3113.html ,当然想要使用反向代理的小伙伴要是熟悉 Nginx ,也可以自己手搓 Nginx 进行反向代理哦!你想用雷池或者宝塔面板的话,也是没有问题哒!

6.2 环境准备(其他服务器)

该步骤为各种服务器的环境准备通法,若你使用腾讯云轻量应用服务器部署该程序并已经仔细阅读 6.1 环境准备(腾讯云轻量应用服务器) 并按步骤完成操作,可以跳过该步骤,直接转到 6.3 部署 hoarder 继续阅读。

6.2.1 更新 Packages 并安装必要软件包

执行以下命令,更新 Packages 并安装必要软件包

代码语言:javascript
复制
apt -y update
apt -y install curl wget
部署hoarder-更新 Packages 并安装必要软件包.png
部署hoarder-更新 Packages 并安装必要软件包.png

若你的系统版本为最新,则如上图所示,否则将更新 Packages 并安装必要软件包

6.2.2 安装并启动 Docker

6.2.2.1 境外服务器安装 Docker

执行以下命令,境外服务器安装 Docker

代码语言:javascript
复制
curl -fsSL https://get.docker.com | bash -s docker
6.2.2.2 境内服务器安装 Docker

执行以下命令,境内服务器使用阿里云镜像源安装 Docker

代码语言:javascript
复制
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

执行以下命令,境内服务器使用国内 daocloud 一键安装命令安装 Docker

代码语言:javascript
复制
curl -sSL https://get.daocloud.io/docker | sh
6.2.2.3 启动 Docker

输入并执行以下命令,启动Docker

代码语言:javascript
复制
systemctl start docker

再执行以下命令,查看Docker的运行状态

代码语言:javascript
复制
systemctl status docker

最后执行以下命令,设置Docker开机自启动

代码语言:javascript
复制
systemctl enable docker
部署hoarder-启动 Docker.png
部署hoarder-启动 Docker.png

由于我们通过以上一键脚本安装的Docker为最新版本,新版本的Docker自带compose这个子命令,所以我们无需额外安装docker-compose。下文中若你见到docker-compose命令,请你使用使用 docker compose 命令! 使用方面仅有一个 - (dash)字符只差, 新版 使用 docker compose 命令,而如果你是 旧版 就使用 docker-compose 命令。

6.2.3 安装 Nginx Proxy Manager(建议使用反向代理本教程选用NPM)

安装 Nginx Proxy Manager 的详细教程小俊之前也写过哦,也配有详细的视频版本,需要学习的朋友可以点击这篇文章学习👉👉👉链接:【教程】使用腾讯云轻量应用服务器搭建Nginx Proxy Manager,优美简单地解决反向代理!https://www.smalljun.com/archives/3113.html ,当然想要使用反向代理的小伙伴要是熟悉Nginx,也可以自己手搓 Nginx 进行反向代理哦!你想用雷池或者宝塔面板的话,也是没有问题哒!

6.3 部署 hoarder

该教程不安装ollama,与AI有关的功能(如自动标签等)将基于OpenAI ChatGPT的API提供!若不需要AI功能也可以直接忽略配置OpenAI部分并删除配置文件中OPENAI_API_KEY字段 该教程不安装ollama,与AI有关的功能(如自动标签等)将基于OpenAI ChatGPT的API提供!若不需要AI功能也可以直接忽略配置OpenAI部分并删除配置文件中OPENAI_API_KEY字段 该教程不安装ollama,与AI有关的功能(如自动标签等)将基于OpenAI ChatGPT的API提供!若不需要AI功能也可以直接忽略配置OpenAI部分并删除配置文件中OPENAI_API_KEY字段

6.3.1 新建目录

执行以下命令,新建目录

代码语言:javascript
复制
mkdir -p /opt/docker/hoarder && cd /opt/docker/hoarder
部署hoarder-新建目录.png
部署hoarder-新建目录.png

6.3.2 新建环境变量配置文件

代码语言:javascript
复制
nano .env

输入以上命令新建环境变量配置文件(下称”配置文件“),编辑配置文件,以下是参照发文时官方的极简配置文件示例做出注释及修改,大家可以参考下方对配置文件做出修改,然后 Ctrl X + y +回车 退出并保存即可。

代码语言:javascript
复制
HOARDER_VERSION=release
NEXTAUTH_SECRET=smalljuncom
MEILI_MASTER_KEY=smalljuncom
NEXTAUTH_URL=https://hoarder.smalljun.com
OPENAI_API_KEY=<key>
  1. NEXTAUTH_SECRET和MEILI_MASTER_KEY的值可以使用下面的命令生成
  2. NEXTAUTH_URL的值应该替换成你想用在该程序上的IP或域名
  3. OPENAI_API_KEY的值应替换成你的OpenAI API Key(可选),若不需要AI功能也可以直接删除该字段
6.3.2.1 生成随机字符串

使用两次以下命令生成随机字符串,并使用它们替换掉配置文件中 NEXTAUTH_SECRET 和 MEILI_MASTER_KEY 的值

代码语言:javascript
复制
openssl rand -base64 36
6.3.2.2 获取 OpenAI API(可选)

该步骤为可选操作,若不需要AI功能可以直接删除 OPENAI_API_KEY 字段,并忽略该步! 打开 OpenAI 的 API 页面:https://platform.openai.com/api-keys ,按照提示登陆 OpenAI 账号 点击 Create new secret key (若从未创建过Key,页面只有该按钮,否则你应该点击右上角的 Create new secret key 按钮)创建一个 Secret key

部署hoarder-新建Key-1.png
部署hoarder-新建Key-1.png

输入自定义备注,其他如 Key 主人与权限等应与图中一致,即保持默认,点击创建即可

部署hoarder-新建Key-2.png
部署hoarder-新建Key-2.png

Key 创建成功 ,点击 Copy 按钮,复制一份并将其填入 .env 配置文件中

部署hoarder-Key创建完成.png
部署hoarder-Key创建完成.png
6.3.2.3 核对配置文件

检查配置文件是否与下图相似(若不需要AI功能也可以直接忽略配置OpenAI部分并删除配置文件中OPENAI_API_KEY字段)

部署hoarder-env.png
部署hoarder-env.png

6.3.3 下载 docker-compose.yml

执行以下命令,新建 docker-compose.yaml 文件,下载完成后可以根据自身情况修改该文件(若不会请保持默认或者有特殊需求请求助小俊)

代码语言:javascript
复制
wget https://raw.githubusercontent.com/hoarder-app/hoarder/main/docker/docker-compose.yml
部署hoarder-下载docker-compose.yml.png
部署hoarder-下载docker-compose.yml.png

注意: 1.docker-compose.yml 文件中 3000 为暴露端口,如被占用,请自行更改替换,需要在云服务器的控制台防火墙开放相应端口!

6.3.4 启动容器

输入执行以下命令后台启动容器

代码语言:javascript
复制
docker compose up -d #新版本Docker使用该命令
docker-compose up -d #旧版本Docker使用该命令

如下图所示

部署hoarder-启动容器.png
部署hoarder-启动容器.png

启动完后再输入执行以下命令确认所有容器都是 running 或 up 状态

代码语言:javascript
复制
docker compose ps #新版本Docker使用该命令
docker-compose ps #旧版本Docker使用该命令

如下图所示

部署hoarder-检查容器状态.png
部署hoarder-检查容器状态.png

至此,我们已经安装完成 hoarder ,若你无域名或者不想给程序使用域名,浏览器直接访问 服务器IP:3000 即可访问!

部署hoarder-IP访问hoarder.png
部署hoarder-IP访问hoarder.png

6.4 配置反向代理

先把域名解析到服务器(如果有小白不会解析可以问问小俊,一般周末在线,后面考虑写一篇域名解析教程!进入 Nginx Proxy Manager ,点击 Hosts ,然后点击 Add Proxy Host ,按下图进行配置,下图中的 172.17.0.1 可能有所不一,请执行 ip addr 自行查找 docker0 网卡的内网IP!

代码语言:javascript
复制
Domain Names:#填写你想用在该程序的域名
Scheme:默认http #一般不用改
Forward Hostname / IP:172.17.0.1 #一般为 `172.17.0.1` ,可能有所不一,请执行 `ip addr` 自行查找 `docker0` 网卡的内网IP!
Forward Port:3000 #暴露端口(若跟着本文未修改 `yaml` 文件中的暴露端口。应为 `3000` )

如下图所示

部署hoarder-配置反向代理.png
部署hoarder-配置反向代理.png

先不要着急着点 Save ,大家先去DNS提供商解析域名哦!然后我们可以为程序添加上SSL证书,给他加上一道小绿锁,不过如果你点了也没关系,没点 Save 的朋友点击 SSL ,然后点击 Request a new SSL Certificate ,然后把 Force SSL 和 HTTP/2 Support 打开,修改一下 Email Address for Let's Encrypt 的邮箱,然后 Save 即可;点击了 Save 的朋友,点击右边的三点,点击 Edit ,重复上述步骤即可!

如下图所示

部署hoarder-开启HTTPS.png
部署hoarder-开启HTTPS.png

如下图即为反向代理配置完成!

部署hoarder-反向代理配置完成.png
部署hoarder-反向代理配置完成.png

至此,我们已经部署完成 hoarder 了。浏览器访问你刚刚设置的域名即可访问啦,然后注册账号使用即可!

注意:

  1. 需要在服务器的后台防火墙开放相应端口!需要开放 80 tcp 、 443 tcp 与 81 tcp 哦,如果你不使用域名访问程序,则只需要开放 3000 tcp 。

7. 简单使用教程

7.1 注册用户

打开 hoarder ,点击 Sign up ,输入用户名、邮箱与密码等信息,然后点击 Sign up 完成注册。

部署hoarder-注册用户.png
部署hoarder-注册用户.png

7.2 关闭注册

在环境变量配置文件加入如下环境变量:

代码语言:javascript
复制
DISABLE_SIGNUPS=true

然后重新启动容器即可

7.3 更新程序

执行以下命令,每次启动容器时,都会尝试拉取新镜像

代码语言:javascript
复制
docker compose up --pull always -d #新版本Docker使用该命令
docker-compose up --pull always -d #旧版本Docker使用该命令

8. 目前遇到的问题

8.1 境内服务器难以安装 Docker

建议直接执行以下命令,安装Docker

代码语言:javascript
复制
apt install docker.io

然后,参考小俊之前写过的👉👉👉【教程】CentOS系统Docker的详细安装教程https://www.smalljun.com/archives/3174.html ,安装Docker-compose,然后再进行 第6.2步及其后续操作

8.2 境内服务器难以拉取 Docker镜像

由于最近未知原因,中国大陆境内难以拉取 Docker镜像,如果您需要在境内服务器部署,建议先行下载 Docker镜像后上传,然后再进行部署操作,或者使用他人的 Docker镜像站点.

9. Issues

有问题可以去 Github 看看哦

10. 总结

Hoarder 是一款开源的 AI 驱动的自托管书签管理工具,支持全文搜索、AI 自动打标签,跨平台使用等,缺点是程序仍在开发中,可能不够稳定,大家如果发现它别的特点功能可以在评论区踊跃讨论!或者还有什么类似的程序大家也可以评论分享一下!

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 1. 前言
    • 1.1 官方网站
  • 2. hoarder 简介
    • 2.1 简介
    • 2.2 特性
  • 3. 准备工作
    • 注意
  • 5. 界面演示
    • 5.1 注册页
    • 5.2 Home-无内容页
    • 5.3 Home-有内容页
    • 5.4 创建新列表页
    • 5.5 默认样式书签页
    • 5.6 列表样式书签页
    • 5.7 最喜欢页
    • 5.8 个人设置页
    • 5.9 管理员页
    • 5.10 上传页
    • 5.11 搜索页
  • 6. 部署 hoarder
    • 6.1 环境准备(腾讯云轻量应用服务器)
      • 6.1.1 重装系统
      • 6.1.2 登录服务器
      • 6.1.3 安装 Nginx Proxy Manager(可选建议使用反向代理本教程选用NPM)
    • 6.2 环境准备(其他服务器)
      • 6.2.1 更新 Packages 并安装必要软件包
      • 6.2.2 安装并启动 Docker
      • 6.2.3 安装 Nginx Proxy Manager(建议使用反向代理本教程选用NPM)
    • 6.3 部署 hoarder
      • 6.3.1 新建目录
      • 6.3.2 新建环境变量配置文件
      • 6.3.3 下载 docker-compose.yml
      • 6.3.4 启动容器
    • 6.4 配置反向代理
  • 7. 简单使用教程
    • 7.1 注册用户
    • 7.2 关闭注册
    • 7.3 更新程序
  • 8. 目前遇到的问题
    • 8.1 境内服务器难以安装 Docker
    • 8.2 境内服务器难以拉取 Docker镜像
  • 9. Issues
  • 10. 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档