| hosts/noisebell-do | ||
| pi | ||
| remote | ||
| scripts | ||
| secrets | ||
| .envrc | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
| rustfmt.toml | ||
Noisebell
Monitors the door at Noisebridge and tells you whether it's open or closed.
A Raspberry Pi reads a magnetic sensor on the door and pushes state changes to a cache server. The cache keeps the latest state and fans updates out to chat integrations such as Discord and Zulip.
Pi (door sensor) ──webhook──> Cache ──webhook──> Discord / Zulip
|
polls Pi <-+
|
+──webhook──> Pi relay ──webhook──> Home Assistant
Layout
| Directory | What it is |
|---|---|
pi/ |
Raspberry Pi OS base with laptop-built Noisebell deploy |
remote/ |
Server-side services (cache, RSS, Discord, Zulip) |
hosts/noisebell-do/ |
Standalone DigitalOcean NixOS host for the remote services |
secrets/ |
Shared agenix-encrypted secrets and recipient rules |
Each directory has its own README with setup and configuration details.
For hosted deployment, this repo exports nixosConfigurations.noisebell-do, a small DigitalOcean NixOS host that imports noisebell.nixosModules.default. The host provides deployment-specific values like domains and the Pi address, while the Noisebell module itself points agenix at the encrypted files in secrets/ and consumes the decrypted runtime files on the target machine.
Useful commands:
./scripts/deploy-do [jet@noisebell-do]redeploys the DigitalOcean remote host./scripts/nhsredeploys the old Hetzner host using the local checkout as the flake inputscripts/deploy-pios-pi.sh pi@100.66.45.36redeploys the Raspberry Pi OS machine
The full Home Assistant relay workflow is documented in pi/README.md.