Commit Graph
71 Commits
Author SHA1 Message Date
Alexander Heldt 924d06865a manatee: Reload Plejd when its BLE link goes stale
pyplejd keeps using a dead BLE client ("Service Discovery has not been
performed yet") instead of reconnecting, which left the Plejd lights
unreachable for two days. Fire system log events and let an automation
reload the integration when that warning shows up.

Also add systemd to bt-reset's PATH so its `systemctl` calls work.
2026-11-02 07:22:57 +00:00
Alexander Heldt cf5b74e251 pinwheel/manatee: Drop tmux r reload binding in favour of R from tmux-sensible 2026-10-29 08:45:28 +01:00
Alexander HeldtandClaude Opus 5.5 c9ca657416 manatee: Alert on kitchen water leak
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 07:37:24 +00:00
Alexander Heldt 062321ee7f backwards/manatee/tadpole: Clean /tmp on boot
Only `pinwheel` set this. Elsewhere files in `/tmp` survived reboots,
and leftover `nh` build result symlinks there kept acting as GC roots,
pinning store paths that should have been collected.
2026-10-20 21:20:31 +02:00
Alexander Heldt 21a1039fff manatee: Remove stale restic locks before each backup 2026-10-15 13:38:44 +02:00
Alexander Heldt 154f33f258 manatee: Add dagbok
Served at dagbok.ppp.pm through nginx from 127.0.0.1:8093, with its token
from agenix, a Hetzner DNS-01 certificate, a dynamic DNS record and a
state backup snapshot.
2026-10-12 16:31:14 +02:00
Alexander Heldt 1dc9571e1b manatee: Drop the schema/puppy-tracker link and its secret
The link was removed from both apps, so the commented-out config for it
and the shared schema-puppy-token secret go too.
2026-10-04 18:18:08 +00:00
Alexander Heldt 7a7499ba6d manatee: Back up SQLite databases of DynamicUser services
/var/lib/<name> is a symlink into /var/lib/private for those, so find
stopped at the link and the state dump never copied their databases
(schema, puppy-tracker, todo, …). Follow it with find -H.
2026-10-04 16:36:33 +00:00
Alexander Heldt e1989d913a manatee: Disable atuin open registration 2026-10-01 08:56:55 +02:00
Alexander Heldt f25207b429 manatee: Add self-hosted atuin sync server 2026-10-01 08:34:32 +02:00
Alexander Heldt 3a115df8a7 manatee: Add schema
The household weekly plan at schema.ppp.pm: its module, certificate,
DNS record, backup and secrets. The link to puppy-tracker is prepared
but commented out until puppy-tracker with the integration feed is
deployed.
2026-09-30 07:33:57 +00:00
Alexander Heldt eb6477d34a romm: Let the database container own its data directory
tmpfiles re-applied root:root to /var/lib/romm/db on every switch. A
MariaDB running as uid 999 then could not delete tc.log on shutdown,
so the next start took it for a crash and failed recovery with "Bad
magic header in tc log".
2026-09-30 07:33:57 +00:00
Alexander Heldt ac51b04b93 certs: Use lego v5 flag names
lego v5 renamed --dns.propagation-wait to --dns.propagation.wait and
--dns-timeout to --dns.timeout, and exits on the old names, so ordering
or renewing any certificate failed. The six identical cert blocks are
now one definition applied to each domain.
2026-09-30 07:33:57 +00:00
Alexander Heldt 34990eaaa4 manatee: Back up service state (databases etc.) via restic 2026-08-16 14:23:51 +00:00
Alexander Heldt 7a170ff59c manatee: Sync personal, work and phone-gps, peer phone to org 2026-08-16 13:41:52 +00:00
Alexander Heldt 2a8a72b7cb backwards/manatee: Move restic backup to mantee 2026-08-16 14:02:33 +02:00
Alexander Heldt 6f68f7d9e6 manatee: Add support for pdfs in komga-reader 2026-08-16 07:41:45 +00:00
Alexander Heldt cffaec5fe8 manatee: add self-hosted todo app
Wire the offline-first todo app (github: local /home/alex/code/todo) into
manatee, following the app-module convention:

- flake input `todo` (local git checkout for now; gitea URL commented) with
  nixpkgs following.
- hosts/manatee/modules/todo: mod.todo option importing the app's NixOS module;
  runs on 127.0.0.1:8091, secureCookies, token from agenix; the host owns the
  nginx vhost (todo.ppp.pm, forceSSL + useACMEHost) and homepage card.
- mod.todo.enable = true.
- certs: todo.ppp.pm DNS-01 cert via hetzner.
- home-assistant DNS updater: add `todo` to the Hetzner subdomain list.
- secrets: todo-token.age (encrypted access token) + recipients in secrets.nix.
2026-08-13 12:36:18 +00:00
Alexander Heldt 56c04b1f70 manatee: Guard podman containers against crash-looping
Add a start-limit (5 restarts / 5 min) to the romm, romm-db, romm-redis
and homeassistant podman services so a failing container enters a
`failed` state instead of retrying forever. A slow crash-loop (~5s per
attempt) stays under systemd's default 5-starts-per-10s limit, so a
longer window is needed to catch it.
2026-07-26 07:32:16 +00:00
Alexander Heldt 08a3bae6c6 manatee: Add solo-referee module 2026-07-24 12:26:33 +00:00
Alexander Heldt 421c6179d6 manatee: Add tmux module 2026-07-17 09:15:46 +00:00
Alexander Heldt 4742e0f593 manatee: Add puppy-tracker behind virtual host puppy.ppp.pm 2026-07-09 20:34:43 +02:00
Alexander Heldt aa7ef695f4 manatee: Add ability to specify public url for homepage card 2026-07-09 20:33:22 +02:00
Alexander Heldt ff02728d82 manatee: Add puppy.ppp.pm sub-domain
With cert and ip update
2026-07-09 16:59:13 +00:00
Alexander Heldt bdcc75980d manatee: Fix komga-reading-stats secret permissions 2026-06-25 14:28:28 +00:00
Alexander Heldt 6477f2b39b manatee: Add puppy-tracker module 2026-06-21 17:50:51 +00:00
Alexander Heldt 4a63c4eb5e manatee: Update monitoring in home-assistant
- Add all disks to smartd
- Generate home-assistant config in nix
- Add metrics for all HDDs
2026-05-30 16:54:40 +00:00
Alexander Heldt d291633fe2 manatee: Update ssh module
- current naming
- set defaults to off
2026-05-30 16:45:27 +00:00
Alexander Heldt 188ad0a75a manatee: Make romm network creation idempotent 2026-05-30 16:44:30 +00:00
Alexander Heldt f8907ccd05 manatee: Add romm module 2026-05-17 13:25:01 +00:00
Alexander Heldt d72a4ebb61 manatee: Disable immich 2026-05-17 13:25:01 +00:00
Alexander Heldt f8a2f7f3c5 manatee: Fix permissions for komga-reading-stats 2026-05-17 13:25:01 +00:00
Alexander Heldt d19dcae3b2 manatee: Set correct user on komga-reading-stats secrets 2026-03-22 19:10:46 +01:00
Alexander Heldt 07fe75775e manatee: Fix komga-reading-stats secret permissions 2026-03-22 19:01:49 +01:00
Alexander Heldt c823e379b9 manatee: Add komga-reading-stats 2026-03-22 18:48:51 +01:00
Alexander Heldt 7d6785f27e manatee: Remove calibre-web module 2026-03-07 12:10:30 +00:00
Alexander Heldt f446706a9c manatee: nixfmt 2026-03-07 12:08:01 +00:00
Alexander Heldt 6ea5db6d37 manatee: Add komga-bookmanager service 2026-03-07 12:07:05 +00:00
Alexander Heldt 8fa60a1b06 Update komga-comictracker input 2026-03-07 12:05:07 +00:00
Alexander Heldt 4f5de3b4cc manatee: Expose komga publicly via komga.ppp.pm 2026-03-02 21:41:41 +01:00
Alexander Heldt 65569f6b57 manatee: Add services homepage with auto-discovery
Add a homepage module that generates a static landing page served on
port 9999 via nginx. Each service module registers itself via the shared
mod.homepage.services option, so enabling a module automatically adds
it to the page.
2026-02-28 22:03:12 +01:00
Alexander Heldt efaa92d4a1 manatee: Add web based reader for komga 2026-02-17 20:25:11 +00:00
Alexander Heldt 5ab63a0880 manatee: Add bluetooth reset handling 2026-02-15 15:33:02 +01:00
Alexander Heldt 9fd7c65b44 manatee: Update komga-comictracker to not use notifications 2026-02-14 11:38:44 +01:00
Alexander Heldt e5c9fcea33 manatee: Fix komga-comicbooktracker credentials file permissions 2026-02-14 11:18:51 +01:00
Alexander Heldt 7653bfce22 manatee: Add komga-comicbooktracker 2026-02-14 10:54:01 +01:00
Alexander Heldt 1d180a623a manatee: Add OpenCL hardware support
To improve jellyfin transcoding
2026-02-08 19:12:51 +00:00
Alexander Heldt 0ddc0c7fef manatee: Update machine IP for ha.ppp.pm 2026-01-07 14:24:39 +00:00
Alexander Heldt cc96dc072f manatee: Open jellyfin port 2026-01-06 17:05:02 +00:00
Alexander Heldt c064d277ca manatee: Ensure local traffic works next to VPN 2026-01-06 17:04:53 +00:00