git404hub

what is luks-deadman fr?

qxnode/luks-deadman — explained in plain English

Analysis updated 2026-05-18

11PythonAudience · ops devopsComplexity · 4/5LicenseSetup · hard

tl;dr

luks-deadman adds a USB kill switch and dead man's switch to a Linux server, wiping its LUKS encryption keys if the USB key is pulled or the operator goes silent.

vibe map

mindmap
  root((luks deadman))
    What it does
      USB kill switch
      Dead mans switch
      Manual kill webpage
      USB device authorization
    Tech stack
      Python
      Flask
      LUKS encryption
      USBGuard
    Use cases
      Tamper protected servers
      Operator inactivity failsafe
      Remote encrypted key wipe
    Safety notes
      VPN or Tailscale only
      Replace default tokens
      Irreversible wipe operation

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

what do people make with this?

VIBE 1

Automatically wipe a server's disk encryption keys if a physical USB key is removed.

VIBE 2

Trigger an automatic key wipe if an operator misses a scheduled heartbeat check-in.

VIBE 3

Manually trigger an emergency key wipe from a token-protected web page.

what's the stack?

PythonFlaskLUKSUSBGuardsystemd

how it stacks up fr

qxnode/luks-deadman2arons/llm-cliabe238/claude-video-plus
Stars111111
LanguagePythonPythonPython
Setup difficultyhardeasyeasy
Complexity4/52/53/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

how do i run it?

Difficulty · hard time til it works · 1h+

Runs as root and requires manually configuring LUKS volume paths, tokens, and Discord webhooks before use.

MIT license: free to use, modify, and distribute, including commercially, as long as the copyright notice is kept.

in plain english

luks-deadman is a toolkit for adding physical and logical tamper protection to a Linux server that uses LUKS disk encryption. It is aimed at people who need a server to destroy its own encryption keys automatically if the machine is tampered with or if the person responsible for it goes silent for too long, rather than relying on someone remembering to react to a break in attempt. The toolkit is made of several small pieces that work together. A USB kill switch script watches for a specific USB key to stay plugged into the machine, as long as it is present, the system is considered armed and safe, but if it gets removed, the script wipes the LUKS encryption keys and reboots the server. A separate dead man's switch script expects the operator to send a heartbeat signal at least once every set period, twenty four hours by default. If that heartbeat does not arrive, it sends a warning through a Discord webhook and waits a grace period, one hour by default, before wiping the keys and rebooting if there is still no response. Two small Flask web servers support this system. One exposes simple endpoints so a script or person can send that heartbeat signal and check when the last one was received. The other provides a web page protected by a secret token that lets someone manually trigger the key wipe on demand if needed. A fourth Flask server works alongside a separate program called USBGuard, giving the operator a web interface to review and approve any USB device that gets blocked by default, again behind a token. A setup script installs all of these pieces as background services that start automatically and run with full administrator privileges, since wiping disk encryption keys requires that level of access. The README is direct about the risks involved: these services should only ever be reachable over a private network like Tailscale or a VPN, every default token needs to be replaced before use, and anyone setting this up must double check which disk volume they are pointing the wipe commands at, since the wipe itself cannot be undone once it runs.

prompts (copy fr)

prompt 1
Explain how luks-deadman's usbkill.sh script decides when to wipe LUKS keys and reboot.
prompt 2
Walk me through configuring the heartbeat interval and grace period in deadman.sh.
prompt 3
How do I set up USBGuard authorization through usb_auth_server_v2.py's web interface?
prompt 4
What security precautions does the README recommend before deploying luks-deadman on a real server?

Frequently asked questions

what is luks-deadman fr?

luks-deadman adds a USB kill switch and dead man's switch to a Linux server, wiping its LUKS encryption keys if the USB key is pulled or the operator goes silent.

What language is luks-deadman written in?

Mainly Python. The stack also includes Python, Flask, LUKS.

What license does luks-deadman use?

MIT license: free to use, modify, and distribute, including commercially, as long as the copyright notice is kept.

How hard is luks-deadman to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is luks-deadman for?

Mainly ops devops.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.