Commit graph

237 commits

Author SHA1 Message Date
9f0b220427 Corrected sensors. 2026-04-20 11:34:49 +01:00
50b66a3262 Adding sensors 2026-04-20 11:33:29 +01:00
83eed3f8a0 Merge branch 'main' of github.com:ediblerope/nixos-config 2026-04-20 11:20:11 +01:00
97e4cd49d7 Adding usbutils 2026-04-20 11:19:11 +01:00
Claude
2b09eae3fb
facetimehd: fix overlay to extend linuxPackages_latest directly
Overriding linuxPackagesFor doesn't affect the already-evaluated
linuxPackages_latest attribute. Extend it directly so the patched
facetimehd is picked up by boot.kernelPackages = pkgs.linuxPackages_latest.

https://claude.ai/code/session_01XEMg2HskwRaQW3nrCd1q2z
2026-04-19 11:25:26 +00:00
Claude
293e3306b3
facetimehd: patch out wait_prepare/wait_finish for Linux 7.0
struct vb2_ops dropped wait_prepare and wait_finish in Linux 6.8.
Add a nixpkgs overlay to sed them out of fthd_v4l2.c at build time.

https://claude.ai/code/session_01XEMg2HskwRaQW3nrCd1q2z
2026-04-19 11:18:58 +00:00
806adcfde7 Add gamescope to FredOS-Gaming for per-game FSR upscaling
Lets 7DTD (and other native titles lacking built-in FSR) render
internally at a lower resolution and upscale to the 3440x1440
display via gamescope's FSR filter.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 21:53:15 +01:00
f57c6e99ec Add Last Update widget to Homepage via record-update script
record-update parses nvd diff after switch and writes latest.json;
Homepage polls a local-only nginx listener and renders date/changes/
closure/kernel via a customapi widget.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-16 20:58:19 +01:00
2096330eb8 Theme btop and Homepage via matugen on the mediaserver
Share the wallpaper symlink across all hosts by moving it from gnome.nix
into home-manager/fred.nix, and add matugen templates for btop and the
Homepage dashboard.

The Homepage NixOS module writes custom.css into /etc (read-only), so
bind-mount /var/lib/homepage-custom-css/custom.css over it. A systemd
path unit restarts homepage-dashboard whenever matugen rewrites the
file, so regeneration works without sudo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 20:17:38 +01:00
cb92db7ad8 Revert VSCodium title bar CSS override
Wayland/Mutter forces server-side decorations when the custom title bar
is collapsed, which looked worse than the slim custom bar. Reverting to
stock VSCodium with compact menu + no command center handled in user
settings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 19:51:43 +01:00
362f3b3d86 Collapse VSCodium title bar via height instead of display:none
Using display:none removed the drag region entirely, which caused
GNOME/Mutter to fall back to server-side decorations. Collapsing the
title bar to 0 height keeps VSCodium's frameless state intact.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 19:46:04 +01:00
43a8cb976c Hide VSCodium title bar via workbench.html CSS injection
Override vscodium with a postFixup step that appends a style tag to
workbench.html hiding the titlebar part, so the window sits flush
against GNOME's edge without native or custom decorations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 19:40:31 +01:00
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