本周再来个趣味新项目,阅后即焚。Ghub完整项目名:Luzifer/OTS。

说白了就是类似于QQ闪图、纸飞机的消息过期自动删除。具体的实际用途嘛,各位看完再决定是否部署,只能说某些地方有妙用。
早期我也分享过一款 加密鸽(cupcakearmy/cryptgeon),意外的是热度还不低,大家可以了解下~:https://blog.ydxian.xyz/archives/cryptgeon
应用简介
OTS 是一个一次性秘密分享平台:在浏览器中使用对称 256 位 AES 加密,将机密内容加密后发送到服务器,服务器 不接收明文内容,读取一次后即刻删除。
主要特点
在客户端(浏览器端)使用 AES-256 加密机密内容,确保“明文”在送入服务器前就已加密。
服务器从未接收到未加密的明文,因此即便服务器被攻破,也无法轻易解密已提交的内容。
机密链接仅可读取一次:读取后该秘密立即从存储中删除,避免多次访问或长期保留。
支持通过命令行工具(CLI)或脚本化操作来创建和获取秘密,方便自动化流程。
提供多种后端存储选项(如内存/Redis),灵活部署。
链接格式将 “秘密ID + 密码” 合并在 URL 的 fragment(# 后部分),服务器无法读取 fragment,因此密码不会被发送。
部署流程
以威联通NAS为例,通过Docker Compose的方式进行部署。
会玩的可以去项目页面阅读wiki自行构建,我们这里就直接使用官方镜像。
部署代码如下:
services:
app:
image: ghcr.io/luzifer/ots:latest
container_name: ots
restart: always
environment:
# Optional, see "Customization" in README
# CUSTOMIZE: '/etc/ots/customize.yaml'
# See README for details
REDIS_URL: redis://redis:6379/0
# 设置每个秘密的存活时间,案例168h=1周后过期
SECRET_EXPIRY: "604800"
# "mem" or "redis" (See README)
STORAGE_TYPE: redis
depends_on:
- redis
ports:
- 3355:3000 # 冒号左侧自定义
redis:
image: redis:latest
# 镜像加速正确填写
# image: docker.20040311.xyz/library/redis:latest
container_name: ots-redis
restart: always
volumes:
- /share/Container/ots/data:/data # 冒号左侧自定义
REDIS_URL告诉 OTS 去哪里连接 Redis 数据库。这里的 redis 是下方 services 里 Redis 容器的名字,6379 是 Redis 默认端口,/0 表示第 0 号数据库。
STORAGE_TYPE选择数据存储方式。另有mem可选,数据仅保存在内存中(重启即清空)。
打开威联通NAS的Container Station,创建新的应用程序。

使用展示
按照上文代码部署,正常浏览器输入NAS_IP:3355可访问服务。但这次非HTTPS访问,会被禁止创建~因此内网也要配置证书(没做测试)。
我这里已经做好了反代。界面如下。可以输入文本以及添加附件,设置过期时间。这个过期时间到了即便没被看过也会自动焚毁。

创建完毕后会生成一个分享链接。右侧分别是复制、二维码分享和立即焚毁。

被看过之后,会有如下提示。

最后
大概就是这样,所见即所得。
其实OTS也可作为一个可集成的服务组件。它的设计初衷之一就是方便把“一次性秘密分享”能力嵌入到自己的系统或服务里。比如自动发送临时密码、开发运维(DevOps)流程、企业内部工具整合、客户支持与远程协助等等。更多内容这个咱们就自行研究吧~
感谢观看,本文完。
评论区