Repolode
giovantenne

giovantenne/lastsignal

A self-hosted, email-first dead man's switch that delivers end-to-end encrypted messages to your loved ones if you stop checking in.

Stars
756
Forks
28
Open issues
6
Last commit
yesterday

What is it?

LastSignal is a self-hosted dead man's switch. You write encrypted messages for the people you care about, and the system sends periodic check-in emails. If you miss them, it sends reminders at set intervals, optionally pings a trusted contact, and finally delivers the messages by email to your recipients.

Messages are end-to-end encrypted with a passphrase-derived key (Argon2id, XChaCha20-Poly1305, X25519), so the server does not see plaintext. The project is built on Ruby on Rails 8 with SQLite, and is deployed with Kamal or docker-compose. Timing settings such as check-in interval, reminder count and trusted contact pause are configurable per user, and a recipient-specific delay can postpone when someone can decrypt a message.

The project documents a known trade-off: the server-generated KDF salt stored with recipient public keys means an attacker with database access could attempt offline brute-force against weak passphrases, so strong passphrases are required.

Key features

  • 01Periodic email check-ins trigger reminders, then delivery if there is no response.
  • 02Messages are end-to-end encrypted, so the server never sees plaintext.
  • 03Optional trusted contact ping before delivery.
  • 04Per-recipient delay before decryption.
  • 05Configurable timing, reminder count and intervals per user.
  • 06Deployable with Kamal or docker-compose, with an optional keep-alive webhook.

Use cases

  • Sending final instructions or passwords to family if you become unable to respond.
  • Scheduling time-delayed messages to be read by recipients at a later date.
  • Running a private dead man's switch on your own server rather than a hosted service.

Quick start

  1. 1

    Clone the repository

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

    Enter the project folder and install the Ruby gems

    cd lastsignal && bundle install
  3. 3

    Copy the .env.example template to .env, then run setup

    bin/setup
  4. 4

    Start the local dev stack and open http://localhost:3000

    bin/dev

Things to know

  • The authors offer no hosted service, so you must run and maintain your own server.
  • Reliable delivery requires your own SMTP provider and correctly configured SPF, DKIM and DMARC records.
  • The server-generated KDF salt lets an attacker who gets the database brute-force recipient passphrases offline, so passphrases must be very strong.

Topics

FAQ

What is lastsignal?
A self-hosted, email-first dead man's switch that delivers end-to-end encrypted messages to your loved ones if you stop checking in. LastSignal is a self-hosted dead man's switch. You write encrypted messages for the people you care about, and the system sends periodic check-in emails. If you miss them, it sends reminders at set intervals, optionally pings a trusted contact, and finally delivers the messages by email to your recipients.
Is lastsignal free to use? What license does it have?
lastsignal is open source under the MIT license. Check the license terms before using it in commercial products.
Is lastsignal still maintained?
Actively maintained. The last commit to lastsignal was on Oct 19, 2026.
What can I use lastsignal for?
Sending final instructions or passwords to family if you become unable to respond. Scheduling time-delayed messages to be read by recipients at a later date. Running a private dead man's switch on your own server rather than a hosted service.
How do I install lastsignal?
Clone the repository: git clone https://github.com/giovantenne/lastsignal.git Enter the project folder and install the Ruby gems: cd lastsignal && bundle install Copy the .env.example template to .env, then run setup: bin/setup Start the local dev stack and open http://localhost:3000: bin/dev
Where can I get lastsignal?
The source code and installation instructions are on GitHub: https://github.com/giovantenne/lastsignal

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects