flybrain/infra/config/fly-tmpfiles.conf
acamilo 660c3cf00d
Some checks failed
ci / node 22 (test + typecheck) (push) Has been cancelled
ci / rust stable (cargo test --workspace --release) (push) Has been cancelled
ci / infra/tests/lint.sh (push) Has been cancelled
ci / playwright apps/stage (allowed to fail) (push) Has been cancelled
flybrain v0.4.0: public tree (history retained privately)
2026-09-21 15:09:46 +00:00

36 lines
2 KiB
Text

# infra/config/fly-tmpfiles.conf — pushed to /etc/tmpfiles.d/fly.conf.
# docs/design/infra.md section 2, plus two additions noted inline (marked
# ADDED, not in the original design list) needed by the secrets table and
# the watchdog escalation gate in section 3.
d /run/fly 0750 fly fly -
d /run/fly/pulse 0750 fly fly -
d /run/fly/state 0750 fly fly -
d /run/fly/wd 0750 fly fly -
d /var/lib/fly 0750 fly fly -
d /var/lib/fly/chrome 0700 fly fly -
d /srv/fly/state 0750 fly fly -
d /srv/fly/media/rec 0750 fly fly -
d /srv/fly/media/highlights 0750 fly fly -
d /etc/fly 0755 root root -
d /etc/fly/creds 0700 root root -
# ADDED: bridge refresh tokens, per infra.md's secrets table
# (/var/lib/fly/bridge/tokens.json, fly:fly 0600).
d /var/lib/fly/bridge 0750 fly fly -
# ADDED: watchdog's persistent reboot-rate gate
# (/var/lib/fly/wd/last-reboot, section 3 "gated ... so it cannot reboot
# more than once an hour"). /run/fly/wd above is tmpfs and clears on
# reboot, which is correct for the per-unit fail counters but wrong for
# the reboot gate itself.
d /var/lib/fly/wd 0750 fly fly -
# ADDED: ROM staging directory (section 6: "staged to /srv/fly/rom/<sha256>.gb, mode 0400 fly:fly").
d /srv/fly/rom 0750 fly fly -
# ADDED: the watchdog's Prometheus textfile sink (section 3, "Notification":
# /var/lib/node_exporter/textfile/fly_watchdog.prom, also written by
# bin/fly-retention and bin/fly-backup-stage). Nothing created it before, and
# /var/lib/node_exporter is root-owned ground that fly-watchdog — User=fly —
# cannot make for itself: on the P0 spike run 2 the directory did not exist,
# so every watchdog pass died on its own `mkdir -p` before running a single
# check. Owned by fly because the three scripts that write here all run as
# fly; world-readable because node_exporter scrapes it as `prometheus`.
d /var/lib/node_exporter 0755 root root -
d /var/lib/node_exporter/textfile 0755 fly fly -