Repolode
giovantenne

giovantenne/lastsignal

一款自托管的“死人开关”,在你停止邮件签到后,把端到端加密的消息自动送达亲友。

Star
756
Fork
28
未关闭 Issue
6
最近提交
昨天

这是什么?

LastSignal 是一款自托管的“死人开关”。你为所关心的人撰写加密消息,系统会定期发送签到邮件;若你long时间未回应,它会按设定间隔发送提醒,可选地通知可信联系人,最终把消息通过邮件送达收件人。

消息采用端到端加密,密钥由口令派生(Argon2id、XChaCha20-Poly1305、X25519),服务器无法读取明文。项目基于 Ruby on Rails 8 和 SQLite 构建,可通过 Kamal 或 docker-compose 部署。签到间隔、提醒次数、可信联系人暂停时长等均可按用户配置,还可为单个收件人设置延迟解密时间。

需要注意的是,服务器为每位收件人生成并保存 KDF 盐值。若数据库泄露,攻击者可对弱口令进行离线暴力破解,因此项目要求使用高强度口令。

核心功能

  • 01定期签到邮件,未回应时依次发送提醒,最终触发消息投递。
  • 02消息端到端加密,服务器无法读取明文。
  • 03投递前可选择通知可信联系人。
  • 04可为每位收件人设置解密前的延迟。
  • 05签到间隔、提醒次数等时间参数可按用户配置。
  • 06支持 Kamal 或 docker-compose 部署,并可选配外部保活 webhook。

适用场景

  • 在失去联系时,向家人发送最后的交代或重要信息。
  • 为收件人安排延迟解密的消息,在未来某个时间点才能阅读。
  • 在自己的服务器上搭建私有的死人开关,而非使用托管服务。

快速上手

  1. 1

    克隆代码仓库

    git clone https://github.com/giovantenne/lastsignal.git
  2. 2

    进入项目目录并安装 Ruby 依赖

    cd lastsignal && bundle install
  3. 3

    将 .env.example 复制为 .env,然后运行初始化

    bin/setup
  4. 4

    启动本地开发环境并打开 http://localhost:3000

    bin/dev

使用前须知

  • 作者不提供托管服务,你需要自行运行和维护服务器。
  • 要可靠送达邮件,需要自备 SMTP 服务商,并正确配置 SPF、DKIM 和 DMARC 记录。
  • 服务器生成的密钥派生盐值使攻击者在获取数据库后可离线暴力破解收件人口令,因此口令必须非常强。

标签

常见问题

lastsignal 是什么?
一款自托管的“死人开关”,在你停止邮件签到后,把端到端加密的消息自动送达亲友。 LastSignal 是一款自托管的“死人开关”。你为所关心的人撰写加密消息,系统会定期发送签到邮件;若你long时间未回应,它会按设定间隔发送提醒,可选地通知可信联系人,最终把消息通过邮件送达收件人。
lastsignal 可以免费使用吗?用的什么许可证?
lastsignal 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
lastsignal 还在维护吗?
活跃维护中。lastsignal 最近一次提交是在 2026年10月19日。
lastsignal 适合用来做什么?
在失去联系时,向家人发送最后的交代或重要信息。 为收件人安排延迟解密的消息,在未来某个时间点才能阅读。 在自己的服务器上搭建私有的死人开关,而非使用托管服务。
lastsignal 怎么安装和运行?
克隆代码仓库: git clone https://github.com/giovantenne/lastsignal.git 进入项目目录并安装 Ruby 依赖: cd lastsignal && bundle install 将 .env.example 复制为 .env,然后运行初始化: bin/setup 启动本地开发环境并打开 http://localhost:3000: bin/dev
在哪里获取 lastsignal?
源代码和安装说明在 GitHub 上:https://github.com/giovantenne/lastsignal

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目