Dead-Man-Hand will execute pre-added actions when you will no longer be "available".
All actions are encrypted and when properly configured nobody will be able to get action details untill you are dead.
Main goal of DMH is to ensure that actions can be executed only when you are dead. And before that time, every action should be confidential - even for people who have access to DMH.
- Privacy focused - even with access to
DMHyou will not be able to see action details. - Tested - almost 100% code covered by unit tests and integration tests.
- Small footprint (less than 20MB of RAM needed)
- Multiple action execution methods (
json_post,bulksms,mail)
- User creates action
- DMH encrypts action with age
- DMH uploads encryption private key to Vault
- Vault encrypts private key with own key and saves it (Vault will
releaseencryption private key when user will be considered dead) - DMH saves encrypted action, discards plaintext action, discards private key (from now, nobody is able to see unencrypted action, even DMH)
- When user will not be available for some time (configured per action), she/he would be considered dead.
- When both DMH and Vault will decide that user is dead, Vault secrets will be released, actions would be decrypted and executed.
- After execution, DMH will remove encryption private key from Vault - to ensure that action will remain confidential (only valid for actions with
min_interval: 0).
To decrypt action, access to DMH and Vault is required - DMH stores encrypted data and Vault stores encryption key.
To provide best possible privacy/security, its required to run DMH and Vault on different systems/servers/locations.
docker run --name dead-man-hand -e DMH_CONFIG_FILE=/data/config.yaml -v /srv/dead-man-hand/data:/data -p 8080:8080 ghcr.io/bkupidura/dead-man-hand:latest
- Install
golang - Clone repo:
git clone https://github.com/bkupidura/dead-man-hand.git - Build binaries:
cd dead-man-hand && make build - Run dmh:
DMH_CONFIG_FILE=config.yaml ./dmh
DMH is easly extensible and support below plugins:
dummy- log action messagejson_post- sendHTTPPOSTrequestmail- send mail overSMTPbulksms- sendSMSwith bulksms.com
Documentation is available in wiki