A end-to-end encrypted messaging app and network that uses no user identifiers, with iOS, Android, desktop and terminal clients.
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
Clone the repository
git clone https://github.com/giovantenne/lastsignal.git - 2
Enter the project folder and install the Ruby gems
cd lastsignal && bundle install - 3
Copy the .env.example template to .env, then run setup
bin/setup - 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
A curated, categorized list of privacy- and security-focused software and online services, from password managers to operating systems.
Desktop client for Windows, macOS and Linux that adds transparent, client-side encryption to files stored in Dropbox, Google Drive, OneDrive and other synced cloud folders.
Self-hosted home security camera system for Raspberry Pi with end-to-end encrypted live video, alerts and recordings on your phone.
Self-hostable, open source service for sharing self-destructing encrypted notes and files, inspired by PrivNote, with a Rust backend and Svelte frontend.
Self-destructing, end-to-end encrypted pastebin: notes are encrypted in the browser with AES-256-GCM and vanish after one read or 24 hours.