Commit graph

237 commits

Author SHA1 Message Date
a799be3ae2 screenshots: save to ~/Pictures/Screenshots, update wipes it 2026-08-20 19:42:06 +01:00
afab4a1cab macbook: drop helium, add browsh
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 16:52:47 +01:00
58a6425898 apps: add helium browser flake
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 17:02:26 +01:00
1091495674 theming: re-theme every app on wallpaper switch, crossfade wallpaper
settings/theming.nix renders a full config set per wallpaper (GTK, ghostty,
btop, hyprland, vesktop, zen, folder icons) from its own base16 palette;
theme-apply swaps them in and reloads what can reload.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 14:31:24 +01:00
d4b76f2b13 common: finish the copy bar at 100%
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 09:51:40 +01:00
2f1e14495b router-ui: web management page for ports, devices, traffic, speedtest
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 12:15:54 +01:00
16f33c8dd7 nix-copy-bar: don't exit 1 when there was nothing to copy 2026-08-13 14:57:32 +01:00
2baca40984 update: progress bar for the copy step 2026-08-13 14:50:14 +01:00
59888302e4 declare root's builder ssh key as a tmpfiles copy of fred's 2026-08-13 13:56:44 +01:00
e514eb62c5 add update2: local eval+build fallback on the clients 2026-08-13 13:53:01 +01:00
13002dbc7d update: --no-reexec, --store-path has no flake to rebuild nixos-rebuild from 2026-08-13 11:56:01 +01:00
25dc85eeb8 update: run remote eval/copy as fred, root has no key on the server 2026-08-13 11:53:52 +01:00
dafd23d159 update: offload eval to the server too via remote nix build + --store-path 2026-08-13 11:49:21 +01:00
dfc6855a55 kayla: GTK theme for chrome via dconf + initial_preferences; add kaylavm alias 2026-08-10 09:51:24 +01:00
00ec9a9759 pelican: game server panel + wings containers
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 11:57:15 +01:00
b55d6de636 prebuild: nightly macbook closure build on mediaserver 2026-08-09 11:26:09 +01:00
c385cd3713 macbook: drop nom, store auto-optimise, halve substitution jobs
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 09:08:00 +01:00
3fbc9f884b wan-watchdog: self-heal router WAN on ISP lease flap / IP change
Flushes stale NAT conntrack on WAN IP change; renews lease then restarts
networkd if internet stays down. ntfy on action. Fixes needing a manual
reboot after the ISP re-IP'd us.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-31 13:58:07 +01:00
c2f5b70989 router: drop imgur WireGuard tunnel 2026-07-30 21:33:34 +01:00
bfdd0ebc44 router: route imgur via WireGuard tunnel 2026-07-30 19:24:56 +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
c03bde83e1 shelfarr: fix missing import in common.nix 2026-07-21 10:01:57 +01:00
e64daedef6 Remove selkies
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 18:09:48 +01:00
9813812dfc Move insecure-pnpm/broadcom-sta allowance to common.nix (vesktop on all hosts)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 20:00:32 +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
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
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
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
a4351473d0 common: enable flakes, drop duplicate host imports, import quickshell
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:00:49 +01:00
f2bd4e9e52 nix: enable auto-optimise-store
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 17:17:00 +01:00
7146030074 fix auto-upgrade running before flake.lock update
Remove unnecessary --impure from update alias, shift
auto-upgrade from 04:15 to 05:15 so it runs after the
Forgejo bot updates flake.lock at 04:00 UTC (05:00 BST).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-01 09:34:39 +01:00
b5222dd29c disable dr-server for now
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-30 16:47:12 +01:00
426d86645f add Frigate NVR service behind Authelia
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-22 21:08:50 +01:00
d83db8c555 mediaserver: add bazarr-sync for automatic subtitle synchronisation
Hourly timer syncs only recently added content (last 2h) by querying
Radarr/Sonarr APIs for new items. Weekly full-library sync runs Sunday
04:00 as a catch-all. Both run the bazarr-sync container via podman.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-19 10:46:36 +01:00
099b312df6 common: set home-manager.backupFileExtension for safe activation
Stylix on the media server tries to manage files (GTK config,
fontconfig, etc.) that already exist, causing HM activation to fail.
Setting backupFileExtension lets HM move conflicts to .hm-bak.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-18 14:08:29 +01:00
cea4d37bfb flake: update Stylix to master and scope import to desktop hosts
Switch Stylix from release-25.11 to master, which fixes hyprpaper's
wallpaper config generation for 0.8.4 (structured attributes instead
of raw string concatenation).

Move the Stylix module import from common.nix to flake.nix extraModules
so the Mediaserver (on nixpkgs-stable) doesn't pull in options that
only exist in unstable nixpkgs (services.displayManager.generic).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-18 10:44:16 +01:00
7bd43f6baf nix: add i686-linux to remote build machine systems
Lutris and Wine pull in 32-bit (i686-linux) dependencies like openldap.
Without i686-linux in the supported systems list, nix falls back to
building those locally on the gaming PC instead of offloading to the server.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 21:12:53 +01:00
db413ad808 services: add Flatnotes note-sharing at notes.nordhammer.it
Replaces Vesktop for quick cross-device note-passing. Uses Flatnotes
with auth disabled so Authelia is the only login required.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 14:19:52 +01:00
c569892406 systemd: shorten DefaultTimeoutStopSec to 10s
Eliminates the long "stop job on user ID 1000" / watchdog hang on shutdown.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 19:41:21 +01:00
f59b00a23d desktop: rename gnome.nix → desktop.nix; switch to nemo
- Rename settings/gnome.nix to settings/desktop.nix (file no longer
  has anything to do with GNOME)
- Replace nautilus with nemo — starts fast, has a hamburger menu,
  no Tracker3/Mutter D-Bus dependencies
- Exclude thunar (pulled in by XFCE) via environment.xfce.excludePackages
- Remove nautilus Tracker dconf workaround (no longer needed)
- Update $mod+E keybind and common.nix import accordingly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 17:50:01 +01:00
b6eb5c055d services: add code-server web IDE at code.nordhammer.it
Deploys code-server on FredOS-Mediaserver (port 4444, user fred) with
Authelia one_factor auth and nginx reverse proxy. Includes claude-code
in system packages for use in the integrated terminal.

Also fixes anyrun launcher width to absolute 350px (was a tiny fraction).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 10:59:35 +01:00
ceebf1b3ee 2026-05-15 22:11:57 +01:00
f8417a5f64 2026-05-15 20:20:35 +01:00
5f01f22088 2026-05-15 12:17:12 +01:00
e1fbff024b 2026-05-14 14:46:31 +01:00
34e32e7ce4 Remove shitty ollama. 2026-05-13 10:24:14 +01:00
505a50bf74 Adding ollama to server. 2026-05-12 13:34:07 +01:00
1bf08d2097 stylix: full migration off matugen
Flips stylix.autoEnable on so every supported target picks up colours
from the wallpaper-derived base16 palette, and tears out the per-app
matugen plumbing it replaces:

- fred.nix: drop the matugen config.toml block and the .keep files;
  move btop and ghostty to programs.* with the colour-bearing options
  removed (stylix owns those).
- gnome.nix: remove the matugen and jq packages, the hand-written
  gtk.css home.file overrides (replaced by gtk.gtk{3,4}.extraCss layered
  on top of stylix's theme), the WallpaperShell user-themes override,
  and the gtk-theme/cursor-theme/accent-color dconf entries that stylix
  now writes.
- stylix.nix: add a home.activation hook that recolours Adwaita folder
  SVGs using stylix.colors.base0D and pulls in Papirus mimetypes —
  same outcome as the old matugen post-hook but driven by stylix.
- common.nix: drop the matugen invocation from the `update` alias.

Leftover matugen-only behaviour intentionally dropped: Vesktop CSS,
the GNOME accent hue-mapping, the VSCodium colour-merge (stylix's
vscode target handles that natively). Templates in templates/ are kept
on disk for now; can be removed in a follow-up.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 19:44:19 +01:00
cc4216117a stylix: phase 1 — add input and target waybar/fuzzel/mako/hyprlock/hyprland
Adds nix-community/stylix on its release-25.11 branch (master references
options that don't exist in 25.11's nixpkgs). autoEnable=false so
matugen keeps owning every app it currently themes; we only opt in to
the five targets matugen doesn't cover.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 13:32:18 +01:00