简介
什么是 Cryptgeon ?
Cryptgeon
是一个安全的开源笔记/文件共享服务,灵感来自于PrivNote
,使用Rust
和Svelte
编写。包括一个服务器、一个网页和一个CLI
客户端。
主要特点
- 安全性:通过客户端加密,服务器无法解密内容,确保用户数据的隐私。
- 短暂的笔记:笔记具有查看次数和时间限制,数据仅存储在内存中,不会持久化到磁盘。
- 支持多种格式:用户可以发送文本或文件。
- 暗黑模式:提供强制的暗黑模式支持。
- 简单易用:提供
CLI
客户端和网页界面,便于用户使用。
工作原理
加密鸽会为每条笔记都生成一个独立的 id (256bit)
和 key 256(bit)
。
其中id
用于保存和提取密信, 在这之后这封密信将会被客户端使用 AES
算法的 GCM
模式和key
进行加密然后发送至服务器,数据将会保存在服务器的内存中且永远不会被持久化到硬盘上,服务端永远不会得到密钥并且无法解读密信的内容。
ℹ️ 加密鸽(
Cryptgeon
)必须使用https
,否则浏览器可能将不会支援加密鸽的加密算法。
Cryptgeon
还支持自定义配置和多个实例的运行,适合需要安全共享信息的用户。
安装
在群晖上以 Docker 方式安装。
本文写作时,
latest
版本对应为2.9.0
;
采用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3.8'
services:
redis:
image: redis:7-alpine
container_name: cryptgeon-db
restart: unless-stopped
volumes:
- ./data:/data
app:
image: cupcakearmy/cryptgeon:latest
container_name: cryptgeon-web
restart: unless-stopped
depends_on:
- redis
environment:
SIZE_LIMIT: 4 MiB
ports:
- 3128:8000
环境变量的简单说明
变量名称 | 默认值 | 描述 |
---|---|---|
REDIS |
redis://redis/ |
Redis 连接 URL 。 |
SIZE_LIMIT |
1 KiB |
最大请求体(body )限制,最大为 512 MiB 。 |
MAX_VIEWS |
100 |
密信最多查看次数限制 |
MAX_EXPIRATION |
360 |
密信最长过期时间限制(分钟) |
ALLOW_ADVANCED |
true |
是否允许自定义设置,该项如果设为false ,则不会显示自定义设置模块 |
THEME_IMAGE |
"" |
自定义 Logo 图片,你在这里填写的的图片链接必须是可以公开访问的。 |
THEME_TEXT |
"" |
自定义在 Logo 下方的文本。 |
更多更完整的说明请参考官方英文版:https://github.com/cupcakearmy/cryptgeon#environment-variables
然后执行下面的命令
# 新建文件夹 cryptgeon 和 子目录
mkdir -p /volume1/docker/cryptgeon/data
# 进入 cryptgeon 目录
cd /volume1/docker/cryptgeon
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
反向代理
在前面,我们提到了必须要使用 https
协议,才能让浏览器支持加密鸽(Cryptgeon
)的加密算法,所以还需要做反代来进行协议转换。
假设访问地址为: https://cryptgeon.laosu.tech
域名 | 局域网地址 | 备注 |
---|---|---|
cryptgeon.laosu.tech |
http://192.168.0.197:3128 |
Cryptgeon 的访问地址 |
在 npm
中的设置
SSL
都勾选了
运行
在浏览器中输入 https://cryptgeon.laosu.tech
都能看到主界面
输入文本后,点 创建
生成可访问的 URL
和二维码
打开 上传文件
开关,可以加密传输文件
前端显示的最大值,是未包括约
35%
编码开销在内的数字,所以虽然我们环境变量设置的是4 MiB
,但实际上能上传的文件最大值只有2.96 MiB
。
超过最大值的文件,上传会失败
而在打开 高级设置
时,可以定义密码和阅读次数
参考文档
cupcakearmy/cryptgeon: cryptgeon is a secure, open source note / file sharing service inspired by PrivNote written in rust & svelte.
地址:https://github.com/cupcakearmy/cryptgeon
cryptgeon
地址:https://cryptgeon.org/