[Unit] # Singleton: this automation must run on mainframe and nowhere else. # Structural guard is hosts/mainframe/ placement; this is the backstop. ConditionHost=mainframe Description=Assemble the rental utilities message and push it to ntfy Documentation=file:///home/connor/docs/leases/deploy/README.md # Proton Bridge is a container, not a user unit, so this cannot Requires= it. # The script pushes a failure notification if Bridge is down or unauthenticated, # which is the point -- a monthly job that fails silently is invisible until the # next run, by which time you have stopped expecting it. After=network-online.target Wants=network-online.target [Service] Type=oneshot # Holds PROTON_BRIDGE_PASSWORD. `-` so the unit still runs (and still pushes a # useful error) before Bridge has ever been set up. EnvironmentFile=-%h/.config/proton/bridge.env ExecStart=%h/.dotfiles/hosts/mainframe/bin/rent_utilities # Fetching two statements over loopback IMAP; a minute is already generous. TimeoutStartSec=300 Nice=10