Homelab

alexandria is where my projects actually run. Every change reaches it through a pipeline I built (s3ntry), and a monitor I wrote tells me when something breaks.

  1. 1git pushto main on GitHub
  2. 2Self-hosted runnerGitHub Actions job runs on alexandria itself
  3. 3CI gatebuild and checks must pass, or nothing ships
  4. 4Deployas the non-root s3ntry user, over SSH deploy keys
  5. 5Runningservices up behind nginx, with a rollback path
Health daemonGo, one goroutine per service, every 10s, plus host checks
Slack and Discordalert on down, and again on recovery

Failure drill

I stopped the live 1337 container five times at random points in the poll cycle and timed how long the Discord alert took to arrive, using a test script and each message's timestamp.

Trials
5
Up/down changes caught
8/10
Mean time to alert
5.7s
Poll interval
10s

The 2 misses: one recovery and the next failure landed 5.1 seconds apart, inside a single 10-second poll, so neither was ever seen. Periodic polling can’t catch a flap faster than its interval; only event-driven monitoring would.

keys

`
open or close the terminal
j k
next or previous section
0-9
jump to a numbered section (0 is the top)
gg G
top or bottom of the page
/
search everything (a grep in the terminal)
?
this list
esc
close whatever's open

(single-letter keys can clash with screen readers and your own shortcuts)

In the terminal, help lists the commands. Not all of them: try what you'd try on a real one, and eggs keeps score.