开源的书签服务Cherry
预告
老苏在 7
月份收到了付费合集功能灰度测试的通知,一直想研究下怎么玩的,所以国庆期间准备了三篇👇
- 简单的豆瓣API接口(安装篇)
- 简单的豆瓣API接口(TaleBook篇)
- 简单的豆瓣API接口(Jellyfin篇)
预计在周四、周六、周日晚,分三次发布,一、三、五的正常发文不受影响
按照公众号的规则,每篇文章最小售价为 1
个微信豆,所以合集的售价为 3
个微信豆
老苏发现微信豆这玩意儿还有汇率差,iOS 1元=7微信豆,安卓 1元=10微信豆
😂,是因为苹果收了税吗?
为公平起见,这三篇文档不会在微信公众号之外的地方再进行发布。
什么是 Cherry ?
Cherry
是一个开源的自托管书签服务。采用SvelteKit
构建,并使用SQLite
进行数据存储。支持全文搜索,由SQLite fts5
提供支持。您可以从Chrome
、Firefox
、Safari
导出书签和CSV
文件导入书签。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 haishanh
,目前还搜不到
但实际上是存在的
估计是
docker
服务器同步的问题,老苏发现新发布的镜像经常会遇到这种情况
映像
–> 新增
–> 从 URL 添加
,地址输入:haishanh/cherry
版本选 latest
卷
在 docker
文件夹中,创建一个新文件夹 cherry
,并在其中建一个子文件夹 data
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/cherry/data |
/data |
存放 SQLite 数据库 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
本地端口 | 容器端口 |
---|---|
5150 |
8000 |
环境
可变 | 值 |
---|---|
JWT_SECRET |
加密因子 |
ENABLE_PUBLIC_REGISTRATION |
是否启用注册,默认为 0 |
USE_INSECURE_COOKIE |
设置 1 为暂时禁用 Secure cookie |
JWT_SECRET
(必需的):此字符串将用于签署用户的PAT
(个人访问令牌)。PAT
采用JWT
(JSON Web Token
)格式,用于验证和识别Cherry
用户。您应该将JWT_SECRET
保密,以防止他人伪造令牌。- 老苏一般用
Bitwarden
的密码生成器来生成; - 也可以用
openssl rand -hex 位数
来生成;
- 老苏一般用
ENABLE_PUBLIC_REGISTRATION
:此值确定是否从外部(您的Cherry Docker
容器实例)启用注册。将其设置1
为启用注册。默认情况下,或使用其他值,注册被禁用。您很可能希望在全新部署后启用注册,并在创建用户后立即禁用它。- 老苏不建议启用,如果要建用户,可以用
API
接口直接创建;
- 老苏不建议启用,如果要建用户,可以用
USE_INSECURE_COOKIE
:默认情况下,Cherry
使用仅适用于HTTPS
的Secure cookie
。但是,如果您想尝试在本地主机上运行Cherry
,您可以将此环境变量设置1
为暂时禁用Secure cookie
,否则您可能无法登录。- 按官方的说法,在局域网用
IP
访问需要将其设为1
,但是实际上在Chrome
和Safari
浏览器上测试都没成功,原因不明,只能反代后用https
协议访问才能登陆,所以这项可以不要设置
- 按官方的说法,在局域网用
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
1 | # 新建文件夹 cherry 和 子目录 |
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 cherry 和 子目录 |
准备工作
接下来我们要添加用户,并准备 https
的运行环境
用户操作
1 | # 创建用户 |
老苏给自己建了一个账号
1 | # 邮件:wbsu2003@hotmail.com |
如果你是在『终端机』里操作,只要输入
1 | # 邮件:wbsu2003@gmail.com |
反向代理
老苏在环境变量里设置了 USE_INSECURE_COOKIE
为 1
,但是在使用 http://群晖IP:5150
访问时,浏览器调试工具中会看到返回下面信息,表现症状为一直卡在登录界面
1 | window.__sveltekit_data = {type:"redirect",location:"\u002Fsignin"} |
所以只能通过反代实现 https
协议访问
没问题的话,SSL
就全勾了
运行
在浏览器中输入 https://cherry.laosu.ml:444
就能看到主界面
如果没有在环境变量中启用外部注册,即便
https://cherry.laosu.ml:444/signup
看到注册页面,也是不能注册的
登录成功
Setting
–> Import
可以导入浏览器导出的书签
将 Chrome
中导出的书签文件 bookmarks_2022_10_9.html
拖进来,点下面的 Import
按钮开始导入
等导入完成即可
浏览器插件
支持 Chrome
和 Firefox
以 Chrome
为例,首先需要 Add Server
填入服务器地址,有端口也要带上
回到 Cherry
主界面,右上角 Settings
–> Account
–> Personal Access Token
,直接点后面的复制按钮
在你需要添加书签的页面上点 Cherry
插件按钮
点 Edit
可以添加 Tags
和 选择 Group
参考文档
haishanh/cherry: Cherry is a self-hostable bookmark service
地址:https://github.com/haishanh/cherryCherry
地址:https://cherry.haishan.me/Intro | Cherry
地址:https://cherry.haishan.me/docs/intro