Commit graph

225 commits

Author SHA1 Message Date
5f31149565 Skip actively seeded files in transcode-hevc via qBittorrent API
Queries qBittorrent for individual file sizes of all active torrents.
Files whose size matches a seeded torrent file are skipped, catching
cross-filesystem copies where hardlink detection doesn't work.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 19:31:37 +01:00
7fe1ccb8a7 Add transcode-hevc script for bulk H.264 to HEVC conversion
Resumable batch script that finds H.264 files, re-encodes to HEVC
(libx265 CRF 24), verifies duration, and replaces originals.
Tracks completed files in /var/lib/transcode-hevc/completed.log.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 10:25:36 +01:00
c8066a1ecb Use legacy 580.xx NVIDIA driver for Quadro M2000 (Maxwell)
The latest 595.x driver dropped Maxwell GPU support. The Quadro M2000
(GM206) requires the legacy_580 branch for CUDA/NVENC to function.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 09:30:17 +01:00
e1f073969b Fix reboot alias auth prompt and minor formatting
Add sudo to reboot alias so it doesn't prompt for password.
Add blank line before networking.hostName in hardware config.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 09:23:12 +01:00
Claude
a42d906758
mediaserver: explicitly load NVIDIA kernel modules at boot
On a headless system, services.xserver.videoDrivers doesn't guarantee
the NVIDIA modules load. Add nvidia, nvidia_modeset, nvidia_uvm, and
nvidia_drm to boot.kernelModules explicitly.

nvidia_uvm is particularly critical — without it, CUDA initialisation
fails with CUDA_ERROR_NO_DEVICE, which is exactly what broke Jellyfin
NVENC transcoding.

https://claude.ai/code/session_016jJU8ZtWLSnJQBdbMr5pxK
2026-04-15 07:32:04 +00:00
Claude
98cc3de7bc
jellyfin: enable NVENC hardware transcoding via Quadro M2000
- Add NVIDIA proprietary driver config to FredOS-Mediaserver hardware
  (Maxwell/GM206, open=false, modesetting enabled, headless)
- Enable hardware.graphics for DRM/KMS infrastructure
- Add jellyfin user to video and render groups for device access

After deploying, enable NVENC in Jellyfin: Dashboard → Playback →
Transcoding → Hardware acceleration: Nvidia NVENC.

https://claude.ai/code/session_016jJU8ZtWLSnJQBdbMr5pxK
2026-04-15 07:17:09 +00:00
f90fe5a41e Add data disks and mergerfs pool to new mediaserver
Three data disks (down from four) with mergerfs pool at /mnt/storage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 21:54:09 +01:00
f63d6d4195 Add new mediaserver hardware config for UEFI server
New server uses systemd-boot instead of GRUB. Data disks and
mergerfs pool to be added after physical disk migration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 15:50:59 +01:00
b06b2b04e3 Strip mediaserver hardware config for new server migration
Clear old disk UUIDs, boot config, and filesystem mounts.
Add backup script for migrating service state to new hardware.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 15:33:07 +01:00
1a8dd02b46
Update FredOS-Gaming.nix 2026-04-09 20:13:54 +01:00
0e94c3a975
Update FredOS-Gaming.nix 2026-04-09 20:10:02 +01:00
6b868fba9e
Update FredOS-Gaming.nix 2026-04-09 20:06:55 +01:00
ca4178d3ba Fix GoofCord desktop matching with lowercase StartupWMClass
Electron sets the Wayland app_id from the package name (lowercase
"goofcord") but the desktop file had StartupWMClass=GoofCord
(capitalized), causing GNOME to not match the window to its icon.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 20:04:48 +01:00
9fb0c0a792 Fix GoofCord identity by enabling native Wayland mode
Set NIXOS_OZONE_WL=1 so Electron runs on Wayland natively and sets
the correct app_id, matching the .desktop file's StartupWMClass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 19:55:37 +01:00
f28f6ecbdf Fix GoofCord --class flag placement after electron binary
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 19:47:08 +01:00
a914726ca9 Fix GoofCord launching as 'electron' by passing --class flag
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 19:36:59 +01:00
5d033a55ec 2026-04-09 10:09:24 +01:00
a14cc55921 Revert nixpkgs.stdenv.hostPlatform back to nixpkgs.hostPlatform
nixpkgs.stdenv.hostPlatform is not a valid NixOS option. The
deprecation warning comes from nixpkgs internals and is harmless.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 09:27:34 +01:00
f1f2afaace Fix deprecated nixpkgs.hostPlatform -> nixpkgs.stdenv.hostPlatform
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 09:26:26 +01:00
8b62397037 Remove Docker, add server migration checklist to readme
- Remove virtualisation.docker.enable (no longer used after native
  migration of Authelia, go2rtc, and nginx)
- Add migration checklist documenting which state directories and
  secrets to back up when moving to new hardware

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 22:54:33 +01:00
39450ca786 Remove Suricata/ELK; add SSH key auth and disable password login
Adds authorised keys for FredOS-Gaming and phone. Disables SSH password
authentication on FredOS-Mediaserver — key auth only going forward.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 21:48:08 +01:00
Claude
16363dc887
fail2ban: add jails for SSH, nginx proxy manager, and Jellyfin
Replaces bare enable flag with a dedicated service module covering:
- SSH brute force via journald
- Nginx Proxy Manager auth failures via Docker log files
- Jellyfin auth failures via journald
Includes incremental ban times (up to 1 week) and LAN ignore rules.

https://claude.ai/code/session_01PwAXuaoJx7qD5FhVLsn7Sn
2026-04-06 08:21:23 +00:00
3f8addd5bf Remove easyeffects from FredOS-Gaming packages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 22:15:14 +01:00
488016aaed Add easyeffects to FredOS-Gaming packages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 21:59:16 +01:00
4a952db006 Add CachyOS kernel (BORE scheduler) for FredOS-Gaming 2026-04-04 20:38:56 +01:00
93ea194da4 Reorganise hardware vs host config, tidy settings and services 2026-04-01 21:16:59 +01:00
effc4da3a6
2026-04-01 15:58:10 +01:00
c81bf4f54d
2026-04-01 14:15:38 +01:00
81d4bff052
2026-04-01 14:14:38 +01:00
4bcfd3d970
2026-03-31 14:20:45 +01:00
901c9ee3b0
2026-03-30 21:43:15 +01:00
f256f145fd
2026-03-30 21:34:12 +01:00
e50696290c
2026-03-30 21:17:27 +01:00
c5a8722f1a
2026-03-30 20:49:30 +01:00
041664eac7
2026-03-28 16:21:20 +00:00
79c7e0213a
2026-03-28 16:09:17 +00:00
f6fb6ceba1
2026-03-28 15:57:10 +00:00
0d29ecb0dd
2026-03-28 15:37:15 +00:00
5c96b6fa02
2026-03-28 15:28:37 +00:00
816eeb6c3a
2026-03-28 14:57:46 +00:00
d0ed3fe5c8
2026-03-28 14:54:56 +00:00
6b2b8ee7c0
2026-03-28 13:42:35 +00:00
679f77f201
2026-03-28 13:41:45 +00:00
f6675bd84d
2026-03-28 13:39:44 +00:00
1c51cc375e
2026-03-28 12:37:43 +00:00
fde91d3f9e
2026-03-28 12:36:10 +00:00
9c2ca00bfe
Update FredOS-Macbook.nix 2026-03-28 10:23:53 +00:00
2aeea4b759
Update FredOS-Gaming.nix 2026-03-27 22:04:12 +00:00
e520e77982
Update FredOS-Gaming.nix 2026-03-25 10:03:30 +00:00
082f7d39e6
Update FredOS-Gaming.nix 2026-03-25 09:28:08 +00:00