安全共享敏感信息的共享工具Hemmelig.app

简介

什么是 Hemmelig ?

Hemmelig 是一个自托管的应用程序,用于安全地共享敏感信息,采用客户端加密和自销毁消息的功能。用户可以通过 Hemmelig 分享加密的秘密,这些秘密在查看后或到期后将被自动删除,确保信息不被存储在服务器上。

主要特点

  1. 客户端加密:使用 AES-256-GCM 加密,确保数据在离开用户浏览器之前进行加密。
  2. 自销毁秘密:配置秘密的到期时间和查看限制,增强信息的安全性。
  3. 密码保护:为秘密添加额外的安全层,防止未授权访问。
  4. IP 限制:限制访问特定的 IP 范围,以提高安全性。
  5. 文件上传:允许认证用户共享加密文件。
  6. 富文本编辑器:提供丰富的文本格式功能,便于用户格式化共享内容。
  7. 二维码分享:允许用户生成二维码,方便在移动设备上轻松分享秘密。
  8. 多语言支持:支持多种语言,方便全球用户使用。
  9. Webhook 通知:提供查看或销毁秘密时的通知功能。

应用场景

  • 敏感信息共享:适合需要在员工之间或客户之间安全分享敏感数据的企业和组织。
  • 个人隐私保护:个人用户可以用它来安全地分享密码、API 密钥等敏感信息。
  • 临时信息交流:用于需要保密并且短期有效的信息传递,确保信息的私密性。
  • 开发者和 DevOps:开发人员可以在 CI/CD 流程中安全地共享和管理敏感数据。

Hemmelig 是一个加密秘密分享平台,支持安全传输敏感信息,所有加密过程在客户端完成,确保数据到达服务器前已加密。

准备

直接用 IP 访问会,创建分享时会一直显示 正在创建秘密...

估计可能是需要使用 https 协议,尝试用反向代理可以解决,假设实际访问地址为: https://hem.laosu.tech

域名 局域网地址 备注
hem.laosu.tech http://192.168.0.197:3298 Hemmelig 的访问地址

npm 中的设置

SSL 都勾选了

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 hemmelig ,选择第一个 hemmeligapp/hemmelig,版本选择 latest

本文写作时, v7 的具体版本为 v7.0.20

docker 文件夹中,创建一个新文件夹 hemmelig,并在其中建一个子文件夹 databaseuploads

文件夹 装载路径 说明
docker/hemmelig/database /app/database 存放数据库
docker/hemmelig/uploads /app/uploads 存放上传文件

端口

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

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
3298 3000

环境

环境变量 说明 默认值
DATABASE_URL SQLite 数据库文件的路径 file:/app/database/hemmelig.db
BETTER_AUTH_SECRET 用于身份验证的强安全密钥,至少 32 个字符,可以用 openssl rand -base64 32 生成 change-this-to-a-secure-secret-min-32-chars
BETTER_AUTH_URL 身份验证的回调 URL,通常为应用的域名和端口 https://secrets.example.com
NODE_ENV 设置 Node.js 环境为生产环境 production
HEMMELIG_BASE_URL 应用程序的基本 URL,用于生成链接 https://secrets.example.com

更多环境变量的说明,可以参考: https://github.com/HemmeligOrg/Hemmelig.app/blob/v7/docs/env.md

命令行安装

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 新建文件夹 hemmelig 和 子目录
mkdir -p /volume1/docker/hemmelig/{database,uploads}

# 进入 pingvin 目录
cd /volume1/docker/hemmelig

# 运行容器
docker run -d \
--name hemmelig \
--restart unless-stopped \
-p 3298:3000 \
-v $(pwd)/database:/app/database \
-v $(pwd)/uploads:/app/uploads \
-e DATABASE_URL="file:/app/database/hemmelig.db" \
-e BETTER_AUTH_SECRET="$(openssl rand -base64 32)" \
-e BETTER_AUTH_URL="https://hem.laosu.tech" \
hemmeligapp/hemmelig:v7

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
services:
hemmelig:
image: hemmeligapp/hemmelig:v7
container_name: hemmelig
restart: unless-stopped
ports:
- '3298:3000'
volumes:
- ./database:/app/database
- ./uploads:/app/uploads
environment:
- DATABASE_URL=file:/app/database/hemmelig.db
- BETTER_AUTH_SECRET=change-this-to-a-secure-secret-min-32-chars
- BETTER_AUTH_URL=https://hem.laosu.tech
- NODE_ENV=production
- HEMMELIG_BASE_URL=https://hem.laosu.tech
healthcheck:
test:
[
'CMD',
'wget',
'--no-verbose',
'--tries=1',
'--spider',
'http://localhost:3000/api/health/ready',
]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 hemmelig 和 子目录
mkdir -p /volume1/docker/hemmelig/{database,uploads}

# 进入 pingvin 目录
cd /volume1/docker/hemmelig

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 https://hem.laosu.tech 就能看到注册管理员界面

注册完成后,还需要登录

后台管理的主界面

再次打开 https://hem.laosu.tech,会看到应用的主界面

输入一段内容,可以直接创建

不仅有 URL 还有二维码

当然你还可以加入各种条件,例如过期时间、最大查看次数等等

参考文档

HemmeligOrg/Hemmelig.app: Keep your sensitive information out of chat logs, emails, and more with encrypted secrets.
地址:https://github.com/HemmeligOrg/Hemmelig.app

Hemmelig.app - Hemmelig - Share Secrets Securely
地址:https://hemmelig.app/