什么是 Cherry ?

Cherry是一个开源的自托管书签服务。采用 SvelteKit 构建,并使用 SQLite 进行数据存储。支持全文搜索,由 SQLite fts5 提供支持。您可以从 PocketChromeFirefoxSafari 导出书签和 CSV 文件导入书签。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 haishanh ,目前还搜不到

但实际上是存在的

估计是 docker 服务器同步的问题,老苏发现新发布的镜像经常会遇到这种情况

映像 --> 新增 --> 从 URL 添加,地址输入:haishanh/cherry

版本选 latest

docker 文件夹中,创建一个新文件夹 cherry,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/cherry/data /data 存放 SQLite 数据库

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
5150 8000

环境

可变
JWT_SECRET 加密因子
ENABLE_PUBLIC_REGISTRATION 是否启用注册,默认为 0
USE_INSECURE_COOKIE 设置 1 为暂时禁用 Secure cookie
  • JWT_SECRET(必需的):此字符串将用于签署用户的 PAT(个人访问令牌)。PAT 采用 JWTJSON Web Token)格式,用于验证和识别 Cherry 用户。您应该将JWT_SECRET保密,以防止他人伪造令牌。

    • 老苏一般用 Bitwarden 的密码生成器来生成;
    • 也可以用 openssl rand -hex 位数 来生成;

  • ENABLE_PUBLIC_REGISTRATION :此值确定是否从外部(您的 Cherry Docker 容器实例)启用注册。将其设置 1 为启用注册。默认情况下,或使用其他值,注册被禁用。您很可能希望在全新部署后启用注册,并在创建用户后立即禁用它。

    • 老苏不建议启用,如果要建用户,可以用 API 接口直接创建;
  • USE_INSECURE_COOKIE:默认情况下,Cherry 使用仅适用于 HTTPSSecure cookie 。但是,如果您想尝试在本地主机上运行 Cherry,您可以将此环境变量设置 1 为暂时禁用 Secure cookie,否则您可能无法登录。

    • 按官方的说法,在局域网用 IP 访问需要将其设为 1,但是实际上在 ChromeSafari 浏览器上测试都没成功,原因不明,只能反代后用 https 协议访问才能登陆,所以这项可以不要设置

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 cherry 和 子目录
mkdir -p /volume2/docker/cherry/data# 进入 cherry 目录
cd /volume2/docker/cherry# 运行容器
docker run -d \--restart unless-stopped \--name cherry \-p 5150:8000 \-v $(pwd)/data:/data \-e JWT_SECRET=some-secret-string \haishanh/cherry

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:cherry:image: haishanh/cherrycontainer_name: cherryrestart: unless-stoppedports:- 5150:8000volumes:- ./data:/dataenvironment:  - JWT_SECRET=some-some-secret-string

然后执行下面的命令

# 新建文件夹 cherry 和 子目录
mkdir -p /volume2/docker/cherry/data# 进入 cherry 目录
cd /volume2/docker/cherry# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

准备工作

接下来我们要添加用户,并准备 https 的运行环境

用户操作

# 创建用户
docker exec cherry cherry create-user <email> <password># 更新现有用户密码
docker exec cherry cherry update-user-password <email> <newPassword># 删除用户
docker exec cherry cherry delete-user <id> <email>

老苏给自己建了一个账号

# 邮件:wbsu2003@hotmail.com
# 密码:123456
docker exec cherry cherry create-user wbsu2003@hotmail.com 123456

如果你是在『终端机』里操作,只要输入

# 邮件:wbsu2003@gmail.com
# 密码:123456
cherry create-user wbsu2003@gmail.com 123456

反向代理

老苏在环境变量里设置了 USE_INSECURE_COOKIE1,但是在使用 http://群晖IP:5150 访问时,浏览器调试工具中会看到返回下面信息,表现症状为一直卡在登录界面

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/cherry

Cherry
地址:https://cherry.haishan.me/

Intro | Cherry
地址:https://cherry.haishan.me/docs/intro

开源的书签服务Cherry相关推荐

  1. 开源Api后台服务/管理系统 HoServer

    开源Api后台服务/管理系统 HoServer 简介 功能特性 HoServer Pro 特性 :gem: 支持 开源版使用须知 快速开始 系统功能截图 简介 HoServer 是基于Node.js开 ...

  2. java开源即时通讯软件服务端openfire源码构建

    java开源即时通讯软件服务端openfire源码构建 本文使用最新的openfire主干代码为例,讲解了如何搭建一个openfire开源开发环境,正在实现自己写java聊天软件: 编译环境搭建 调试 ...

  3. 简单的书签服务LinkDing

    今天是上海全域静态管理的第 29 天. 周三抗原,周四老苏刚做完核酸,居委突然通知后面的不做了,大家一阵慌乱,结果后来又通知继续,这是要闹哪样?据说是怕系统崩溃.周五终于休息了. 根据居委会的通告,周 ...

  4. 从0到1介绍一下开源大数据服务平台dataService

    1.背景&现状 在大数据领域也已经工作了多年,无论所待过的大公司还是小公司,统计出来的数据经常需要查询展示,比如说:用做大屏或者报表或者给一些线上服务提供数据源,经常会要用代码写一套接口服务, ...

  5. 软件成分分析:华为云重磅发布开源软件治理服务

    摘要:软件成分分析,指通过对软件源码.二进制软件包等的静态分析,挖掘其所存在的开源合规.已知漏洞等安全合规风险,是一种业界常见的安全测试手段. 本文分享自华为云社区<华为云重磅发布开源软件治理服 ...

  6. VS Code 扩展 WebTS 早期预览版发布;微软开源其搜索服务的 SPTAG 算法

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.VS Code 扩展 WebTS 早期预览版发布:帮助创建新 Web 应用 ...

  7. 日调用量超三十万亿,腾讯开源百万级服务发现和治理中心北极星

    目前很多企业在微服务实施和演化过程中,都会面临技术栈的多样性问题.整个微服务领域逐渐沉淀出了无数个相关组件,大家在选择上更加困难,也为企业的基础设施建设不断带来挑战.腾讯也曾面临这样的痛点,因此从 2 ...

  8. 开源企业级数字化服务平台——Choerodon猪齿鱼发布0.8版本

    Choerodon猪齿鱼是一个开源企业服务平台,是基于Kubernetes的容器编排和管理能力,整合DevOps工具链.微服务和移动应用框架,来帮助企业实现敏捷化的应用交付和自动化的运营管理的开源平台 ...

  9. microdot - 一个开源 .NET 微服务框架。

    简介 Microdot 是一个开源 .NET 框架,可满足轻松创建微服务的许多需求. 它的一些主要特点 •用于托管微服务的服务容器•服务间 RPC,便于基于接口的服务通信•服务之间的客户端透明响应缓存 ...

  10. 一文学搞懂阿里开源的微服务新贵Nacos!

    正式开始之前我们先来了解一下什么是 Nacos? Nacos 是阿里的一个开源产品,它是针对微服务架构中的 「服务发现」.「配置管理」.「服务治理」的综合性解决方案. 官网给出的回答: " ...

最新文章

  1. CSS3选择器 :read-only选择器 CSS3选择器 :read-write选择器
  2. 互信息的数学解释以及matlab编程
  3. 数学家眼里的相同与不同
  4. 项目运行报'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件“
  5. 国盾量子等参与中国量子通信行业首批标准编制 量子通信商用再加速
  6. mysql空间是什么格式_MySQL数据类型 - 空间数据类型 (6)
  7. yue-library是一个基于SpringBoot封装的基础库
  8. 11款免费而强大的PCB设计软件 还用什么AD PADS?
  9. 横向合计代码 锐浪报表_[原创]锐浪报表动态加入列和最后加入合计列+进度条显示...
  10. Prophet文档中文翻译--outliers
  11. 数字后端——信号完整性分析
  12. 怎么讲计算机e盘设置共享,共享盘怎么设置(电脑如何设置共享盘)
  13. hadoop环境新手安装教程
  14. c语言程序设计拉丁方阵结构图,C语言实例:拉丁方阵
  15. CF 770 B(奇偶性), C(规律)
  16. 《现代软件工程--构建之法》第一章整理
  17. Servlet 原来是这个玩意儿,看完恍然大悟 ~
  18. Linux中使用rz命令和sz命令传输文件
  19. [J2SE]java电子词典LocalDictionary多功能版
  20. 阿萨德阿斯顿的的点点滴滴

热门文章

  1. 屏幕小于6英寸的手机_2019小屏手机有哪些 8款6英寸以下小屏全面屏手机推荐 (全文)...
  2. Spider学习笔记
  3. BZOJ2827 : 千山鸟飞绝
  4. c语言stract函数是什么,您好,这个函数该怎么办,是关于C语言strcat函数?
  5. Kubernetes 学习笔记(一)--- 基本概念及利用kubeadm部署K8S
  6. Oracle:ORA-00054 资源正忙 -- 锁表的解决方法
  7. 【历史上的今天】4 月 3 日:亚马逊卖出第一本书;世界上第一通手机电话;IBM 计算机先驱出生
  8. java 倒计时_Java倒计时实现的三种简单方式
  9. 今日头条安卓_考察今日头条总部—字节跳动
  10. php读取路由器arp表,详解ARP地址解析协议的工作流程