Commit graph

308 commits

Author SHA1 Message Date
bfdd0ebc44 router: route imgur via WireGuard tunnel 2026-07-30 19:24:56 +01:00
3b0133ff3c arr-interconnect: set jellyfin external url for seerr play links
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 11:57:57 +01:00
81d1b80a53 arr-interconnect: declarative root folders for radarr/sonarr
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 11:42:04 +01:00
384c6918ff arr-interconnect: wire seerr to jellyfin/radarr/sonarr + auto-approve
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 09:15:44 +01:00
528a2e3e82 seerr: request manager for jellyfin + nginx vhost
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 07:44:03 +01:00
0e2a40f508 hardware-health: ntfy alert on new MCE/QPI errors, geometric thresholds
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 10:45:09 +01:00
e295d84b11 nginx: fix gixy add_header warning on homepage-updates.local 2026-07-21 12:48:19 +01:00
bad68a51f8 nginx: add security headers (HSTS, CSP, X-Frame-Options, etc.) to all vhosts 2026-07-21 12:45:33 +01:00
88e1b03f16 shelfarr: mount SABnzbd's real complete_dir so post-processing can find files 2026-07-21 10:42:05 +01:00
e37d73fd65 shelfarr: move Puma off port 3000, clashes with AdGuard on host network 2026-07-21 10:33:06 +01:00
29d05123c6 shelfarr: switch to host networking so it can reach Prowlarr/SABnzbd 2026-07-21 10:28:59 +01:00
964be8696b arr-interconnect: wire Shelfarr to Prowlarr + SABnzbd via rails runner 2026-07-21 10:21:35 +01:00
daafc3a0f2 shelfarr: audiobook search/acquire, Sonarr/Radarr-style 2026-07-21 09:50:24 +01:00
40ef4444fa sabnzbd: point complete_dir at group-writable pool path + permissions=0775
Fixes Sonarr/Radarr import fail-loop (can't delete sources → mergerfs thrash).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 09:42:10 +01:00
3a09fbc29d crowdsec: PR 446307 closed, superseded by 535319
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 21:38:29 +01:00
f3aded5bd2 Remove orphaned neko.nix
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 10:17:00 +01:00
d7657e191d acme: use public DNS resolver for lego zone detection 2026-07-13 22:37:55 +01:00
55bec881c3 Comment out 7DTD servers, not in use
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 23:14:49 +01:00
e64daedef6 Remove selkies
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 18:09:48 +01:00
6cc3fb6419 hardware-health: drop fwupd; no P700 BIOS published on LVFS
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 10:42:08 +01:00
34d44a619e hardware-health: enable fwupd to check LVFS for P700 BIOS update
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 10:37:07 +01:00
d69c9f624f hardware-health: rasdaemon MCE attribution + watchdog auto-reboot on mediaserver
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 19:37:35 +01:00
707f78c9d1 selkies: GPU-accelerate 32-bit GW via mounted 32-bit nvidia GL + vglrun launcher
Mount config.hardware.nvidia.package.lib32 into the container (CDI only carries
64-bit driver libs) and add a `gw` launcher that runs Guild Wars through
VirtualGL on the M2000. Drops GW from ~18 software-rendered CPU cores to <1.
Also bump stream to 60fps.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 13:37:17 +01:00
21b0fa15ae selkies: enable internal TURN relay (LAN) so WebRTC media works behind nginx
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 11:52:28 +01:00
d31a4501f1 selkies: browser game streaming for GW (pointer-lock relative mouse), retire neko
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 11:42:45 +01:00
38901eee27 neko: add Mesa GL (i386) so Wine/Guild Wars gets an OpenGL context (llvmpipe)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 10:56:33 +01:00
c0ed58bcc2 neko: own /var/lib/neko/home as uid 1000 so the container desktop can start
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 10:42:13 +01:00
b00dee9dc6 neko: drop winetricks (not in Debian trixie main; GW needs only bare wine)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 10:39:20 +01:00
e5589907a3 neko: use real xfce image (software render), drop nonexistent nvidia-xfce + GPU
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 10:35:51 +01:00
e199933dce neko: build image from stdin Dockerfile (fix symlinked-context build failure)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 10:31:31 +01:00
fe0cb4663e neko: add Authelia access rule for neko.nordhammer.it
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 10:27:49 +01:00
448e44753f neko: Guild Wars in a browser (Xfce+Wine+NVIDIA), Authelia-gated
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 10:07:36 +01:00
5e870d0e8b arr-interconnect: auto-add Jellyfin library-refresh notification to Sonarr/Radarr
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 21:35:41 +01:00
0f92b3fbf5 Disable frigate for now
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 21:11:06 +01:00
ddbc8929e4 alerting: silence per-ban crowdsec pushes; ntfy alert on service down/recovery
- crowdsec.nix: drop the ntfy notifications (one push per ban was constant
  noise on the WAN-exposed box); bans still happen silently
- service-health.nix: OnFailure=notify-failure@%n on 16 core units sends an
  ntfy 'down' push when a unit truly fails (after exhausting Restart=), then
  a 'recovered' push when it comes back. Shares /var/secrets/ntfy-url.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-13 17:54:37 +01:00
8dd70a2d9d mediaserver: drop no-op firewall rules, close unused DR forwards
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:00:49 +01:00
f65675bd80 authelia: drop docker migration, tighten secret perms
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:00:49 +01:00
93e79509c4 crowdsec: inject ntfy url at runtime, drop obsolete hub prune
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:00:49 +01:00
e3fb0de10c fix 26.05 evaluation warnings
wineWowPackages → wineWow64Packages,
environmentFile → environmentFiles (list),
gtk.gtk4.theme = null for all hosts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-30 16:46:18 +01:00
458be246f0 try to fix code-server claude thing.
Firefox patches: CORS crossorigin on stylesheet link,
Shift+Enter line break via insertLineBreak + innerText,
nix-ld for Claude Code node binary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-30 16:38:36 +01:00
d92c327cdf try to fix code-server claude thing. 2026-05-30 15:44:54 +01:00
72246fc440 pin to nixos 26.05, drop hyprland/anyrun flakes
Stable restore point before 26.05 — last known good unstable config.

Unify all hosts on nixos-26.05 + home-manager release-26.05.
Drop hyprland, anyrun, nixpkgs-stable, home-manager-stable,
stylix-stable inputs. Hyprland 0.55.2 and anyrun 25.12.0 from
nixpkgs. Anyrun config via xdg.configFile (no HM module in 26.05).
Stylix on master until release-26.05 branch exists.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-30 11:12:09 +01:00
1e7427ec0d nginx: add no-store cache header to code-server vhost
Prevents browser from restoring cached page with expired
Authelia session, which caused WebSocket 1006 on first load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-27 09:21:55 +01:00
b0bf73f60e frigate: use 8 threads for CPU detection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-22 23:19:01 +01:00
297fd631ff enable audio detection on kids_bedroom camera
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-22 23:13:06 +01:00
b957d88ff6 frigate: gate frontend with Authelia, not just API routes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-22 23:09:00 +01:00
ad11fb3033 frigate: lower detect resolution to 720p for CPU performance
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-22 23:02:44 +01:00
ed71384885 frigate: double-proxy auth to inject Remote-Role header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-22 22:29:20 +01:00
818caf88a2 frigate: map Remote-Role header for admin access via Authelia
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-22 22:03:34 +01:00
4a5a30f018 frigate: try top-level proxy auth with Remote-User header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-22 21:57:38 +01:00