diff --git a/flake.lock b/flake.lock index 6a86393..9faf921 100644 --- a/flake.lock +++ b/flake.lock @@ -113,11 +113,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", + "lastModified": 1772408722, + "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", + "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", "type": "github" }, "original": { @@ -171,11 +171,11 @@ ] }, "locked": { - "lastModified": 1770726378, - "narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=", + "lastModified": 1772893680, + "narHash": "sha256-JDqZMgxUTCq85ObSaFw0HhE+lvdOre1lx9iI6vYyOEs=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae", + "rev": "8baab586afc9c9b57645a734c820e4ac0a604af9", "type": "github" }, "original": { @@ -276,11 +276,11 @@ ] }, "locked": { - "lastModified": 1771744638, - "narHash": "sha256-EDLi+YAsEEAmMeZe1v6GccuGRbCkpSZp/+A6g+pivR8=", + "lastModified": 1773264488, + "narHash": "sha256-rK0507bDuWBrZo+0zts9bCs/+RRUEHuvFE5DHWPxX/Q=", "owner": "nix-community", "repo": "home-manager", - "rev": "cb6c151f5c9db4df0b69d06894dc8484de1f16a0", + "rev": "5c0f63f8d55040a7eed69df7e3fcdd15dfb5a04c", "type": "github" }, "original": { @@ -297,11 +297,11 @@ ] }, "locked": { - "lastModified": 1771750122, - "narHash": "sha256-+JYMGE6Z4O7GoaBFHByl22XcyeStu56GE1eu3+2sVjI=", + "lastModified": 1773422513, + "narHash": "sha256-MPjR48roW7CUMU6lu0+qQGqj92Kuh3paIulMWFZy+NQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "603626a8da9e1b622e55251a90ef486b8179334c", + "rev": "ef12a9a2b0f77c8fa3dda1e7e494fca668909056", "type": "github" }, "original": { @@ -333,11 +333,11 @@ ] }, "locked": { - "lastModified": 1771734689, - "narHash": "sha256-/phvMgr1yutyAMjKnZlxkVplzxHiz60i4rc+gKzpwhg=", + "lastModified": 1772945408, + "narHash": "sha256-PMt48sEQ8cgCeljQ9I/32uoBq/8t8y+7W/nAZhf72TQ=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "8f590b832326ab9699444f3a48240595954a4b10", + "rev": "1c1d8ea87b047788fd7567adf531418c5da321ec", "type": "github" }, "original": { @@ -410,11 +410,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1771423359, - "narHash": "sha256-yRKJ7gpVmXbX2ZcA8nFi6CMPkJXZGjie2unsiMzj3Ig=", + "lastModified": 1772972630, + "narHash": "sha256-mUJxsNOrBMNOUJzN0pfdVJ1r2pxeqm9gI/yIKXzVVbk=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "740a22363033e9f1bb6270fbfb5a9574067af15b", + "rev": "3966ce987e1a9a164205ac8259a5fe8a64528f72", "type": "github" }, "original": { @@ -441,11 +441,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1769909678, - "narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=", + "lastModified": 1772328832, + "narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "72716169fe93074c333e8d0173151350670b824c", + "rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742", "type": "github" }, "original": { @@ -486,11 +486,11 @@ }, "nixpkgs-s": { "locked": { - "lastModified": 1771714954, - "narHash": "sha256-nhZJPnBavtu40/L2aqpljrfUNb2rxmWTmSjK2c9UKds=", + "lastModified": 1773423183, + "narHash": "sha256-DWTHAXCWF9Et9B1P/sWZYTqKBPXoYZ54AQpX/ysBKdg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "afbbf774e2087c3d734266c22f96fca2e78d3620", + "rev": "c128715845ca39d44c4e5839323475b62a72ccd9", "type": "github" }, "original": { @@ -502,11 +502,11 @@ }, "nixpkgs-u": { "locked": { - "lastModified": 1771369470, - "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", + "lastModified": 1773282481, + "narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0182a361324364ae3f436a63005877674cf45efb", + "rev": "fe416aaedd397cacb33a610b33d60ff2b431b127", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 28e3853..a176f3e 100644 --- a/flake.nix +++ b/flake.nix @@ -506,6 +506,7 @@ ./nixos/forgejo.nix # Git hosting (Forgejo/Gitea fork) ./nixos/garage.nix # Object storage service ./nixos/ollama.nix # AI/LLM service + ./nixos/jellyfin.nix # Jellyfin media server # Cloud storage and secrets self.nixosModules.bertof-rclone diff --git a/hm/mcp.nix b/hm/mcp.nix index 74d8a2b..2a378f5 100644 --- a/hm/mcp.nix +++ b/hm/mcp.nix @@ -9,7 +9,7 @@ }; mcp-ctrl = { command = "nix"; - args = [ "run" "gitlab:fberto/llm-agent-tests?host=gitlab.cern.ch" ]; + args = [ "run" "gitlab:fberto/mcp-ctrl?host=gitlab.cern.ch" ]; }; }; }; @@ -32,15 +32,12 @@ "deepseek-r1:8b".name = "deepseek-r1:8b"; "gemma3n:e2b".name = "gemma3n:e2b"; "gemma3:latest".name = "gemma3:latest"; - "qwen3:4b".name = "qwen3:4b"; - "qwen3-vl:4b".name = "qwen3-vl:4b"; - "qwen3-vl:8b".name = "qwen3-vl:8b"; - "qwen3:14b".name = "qwen3:14b"; - "qwen3:8b".name = "qwen3:8b"; + "qwen3.5:4b".name = "qwen3.5:4b"; + "qwen3.5:9b".name = "qwen3.5:9b"; "gemma3:12b".name = "gemma3:12b"; "gemma3n:e4b".name = "gemma3n:e4b"; "granite3.3:8b".name = "granite3.3:8b"; - "glm-4.6:cloud".name = "glm-4.6:cloud"; + "glm-4.7:cloud".name = "glm-4.7:cloud"; }; }; diff --git a/hm/pro_audio.nix b/hm/pro_audio.nix index 838189c..38e5c62 100644 --- a/hm/pro_audio.nix +++ b/hm/pro_audio.nix @@ -1,7 +1,7 @@ { pkgs, ... }: let systemLibFolder = "/run/current-system/sw/lib/"; - userLibFolder = "$HOME/.local/state/nix/profiles/home-manager/home-path/lib"; + userLibFolder = "$HOME/.local/state/home-manager/gcroots/current-home/home-path/lib"; variables = { DSSI_PATH = "$HOME/.dssi:${userLibFolder}/dssi:${systemLibFolder}/dssi"; LADSPA_PATH = "$HOME/.ladspa:${userLibFolder}/ladspa:${systemLibFolder}/ladspa"; @@ -25,7 +25,7 @@ in # mamba aeolus ardour - # artyFX + artyFX autotalent boops # breeze-icons @@ -36,7 +36,7 @@ in gxplugins-lv2 geonkick giada - # hydrogen + hydrogen neural-amp-modeler-lv2 # proteus ninjas2 @@ -46,7 +46,7 @@ in samplv1 sfizz # surge - # surge-XT + surge-XT talentedhack vital vocproc diff --git a/hm/rclone-mount.nix b/hm/rclone-mount.nix index b34fe79..5fa1d3e 100644 --- a/hm/rclone-mount.nix +++ b/hm/rclone-mount.nix @@ -32,7 +32,7 @@ let cfg = config.rclone-mount; in { Type = "simple"; Environment = [ "PATH=${ lib.makeBinPath [ pkgs.rclone pkgs.coreutils pkgs.fuse ]}:/run/wrappers/bin/:$PATH" ]; ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p ${path}"; - ExecStart = "${pkgs.rclone}/bin/rclone --config '${cfg.configPath}' mount ${name}:/ ${path} -vv --vfs-cache-mode=writes --s3-upload-concurrency 32 --s3-chunk-size 128000"; + ExecStart = "${pkgs.rclone}/bin/rclone --config '${cfg.configPath}' mount ${name}:/ ${path} -vv --allow-other --vfs-cache-mode=writes --s3-upload-concurrency 32 --s3-chunk-size 128000"; Restart = "on-failure"; RestartSec = "30s"; }; diff --git a/hm/waybar.nix b/hm/waybar.nix index 9fefda0..de9a178 100644 --- a/hm/waybar.nix +++ b/hm/waybar.nix @@ -36,7 +36,7 @@ in modules-right = [ # "hyprland/language" # "custom/media" - "pulseaudio" + "wireplumber" # "network" "cpu" "memory" @@ -155,7 +155,7 @@ in "format-disconnected" = "Disconnected ⚠"; "format-alt" = "{ifname}= {ipaddr}/{cidr}"; }; - "pulseaudio" = { + "wireplumber" = { # "scroll-step"= 1; # %; can be a float "format" = "{icon} {volume} {format_source}"; "format-muted" = " {format_source}"; diff --git a/instances/thor/hm.nix b/instances/thor/hm.nix index 990a229..df0fa67 100644 --- a/instances/thor/hm.nix +++ b/instances/thor/hm.nix @@ -53,7 +53,6 @@ # slack # spotify telegram-desktop - thunderbird transmission_4 # wineFull wireguard-tools diff --git a/nixos/jellyfin.nix b/nixos/jellyfin.nix new file mode 100644 index 0000000..6702985 --- /dev/null +++ b/nixos/jellyfin.nix @@ -0,0 +1,33 @@ +{ pkgs, config, ... }: { + age.secrets.rclone_jellyfin = { + file = ../secrets/rclone_jellyfin.age; + owner = "jellyfin"; + }; + + services.jellyfin = { + enable = true; + openFirewall = true; + group = "users"; + }; + + environment.systemPackages = [ pkgs.rclone ]; + + fileSystems."/var/lib/jellyfin/media" = { + device = "garage:/"; + fsType = "rclone"; + options = [ + "nodev" + "nofail" + "_netdev" + "allow_other" + "uid=jellyfin" + "gid=users" + "X-mount.mkdir" + "args2env" + "vfs_cache_mode=writes" + "s3_upload_concurrency=32" + "s3_chunk_size=128000" + "config=${config.age.secrets.rclone_jellyfin.path}" + ]; + }; +} diff --git a/nixos/torrentbox.nix b/nixos/torrentbox.nix index f567dd9..e93bae6 100644 --- a/nixos/torrentbox.nix +++ b/nixos/torrentbox.nix @@ -5,7 +5,7 @@ in { services = { bazarr = { enable = true; openFirewall = true; group = "users"; }; - # jellyseerr = { enable = true; openFirewall = true; }; + jellyseerr = { enable = true; openFirewall = true; }; lidarr = { enable = true; openFirewall = true; group = "users"; }; ombi = { enable = true; openFirewall = true; }; prowlarr = { enable = true; openFirewall = true; }; diff --git a/secrets/rclone_jellyfin.age b/secrets/rclone_jellyfin.age new file mode 100644 index 0000000..5cd323f --- /dev/null +++ b/secrets/rclone_jellyfin.age @@ -0,0 +1,23 @@ +-----BEGIN AGE ENCRYPTED FILE----- +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDRiZWhGQSBpdmxQ +QU9MRlV3L00reFo0REZ2alZiRUN6ZGNlQXRCVk96S1J4cWNSRUIwCitBYUxPbjZM +N2NLejBjeWRZemZLVmVWWmVLdnNsdUwxaU55TmpvWXhnZ0kKLT4gc3NoLWVkMjU1 +MTkgZXZMbEl3IGNHSW9VWHZnZFU5K1dYbFl0UUk0amttVngvdlJSNjBkRTJYZ3Jj +NjZtWE0KUXhZYU9IYXlKTElYRmxyMkNaZkdia2QyWnVERW5udXVjY2t0WWpGcGJZ +WQotPiBzc2gtZWQyNTUxOSBqdjNlancgNEowelpNNExyajNJeDZMekU0V1dtbXFJ +d3dObkJhVXZVclVJU0ppcTlndwo5TzdvczFjYVRBR1dlRkpaSks0VEFTeGpUNmZz +WjB1TXN0MkRobDJpdXJNCi0+IHNzaC1lZDI1NTE5IHlpWW9YZyBEcFFHNzF3UEJx +MFRESFNyRkRZVFUvaFEwOU5kbG1jTGtEbjlGZUdmd2hVCmE2dzFyVG1Gais4enFn +T2VGVVA0Qmd4aWV4S1RmVzJBdytwT0NmWDE1MTQKLT4gZHFKLWdyZWFzZQp0bFhB +Vlp4M0tTNDRvYXhNWkJoQmhjOU1RUDFQcDJOSUs0RnJ1ODdJejk3enRHZ1ZhSjZC +NnlYRFhDUU9pMzBlCmh3MXE0ZGFKRjdRNWtsL0xKeG9TUHFmUDQ4VzJFWC9hSWhL +WUM5bk5KMDNNaGRVeVVwVnhENEovQUEKLS0tIEtkZXVxd08zYXF5S1lsSzJiUGVv +enZybjdGUzQ0RTZUQlNSRVR6RmZHUHcKwx8Zu0Gnq8p7uOvawnZdkdFHaTmFDq9+ +BfP9osczw1/mMTAXyVjrPHZltlqXJXoxcdWD1CwEO0kJ5JsAjjPmX/v8DTZIoty5 +EU5Wd6LgykD1AeLHo1XZESmys6ljyASwO7shNOlNscAujaiqmD9NXenr1811duj3 +pfkCGK0CzDcLFjMIflCBtCviBOgZEUctjJfA9FT4Cgh3M0jYdDgLboH7e416Vnxa +08845ZpjDqIywCmtSap9jPL4gcYzLLapU6ccAmlLqAGvMRCnmcpiEZNEJiwHJBzZ +rVelOLVxjYgu7rPTY19BJZuSp7E4HV5pvpZqqhKlLlu6U43I1gci04jeIbJO3tmV +slfNsIP/m+bUj3LfPfTqCtKEkft2nR+300xxe1Xk6EkUINyYuy/vV8oWctScASBU +lr+mUH5CYInNcR9xwWpsZeI11FQZ1ldt9x9Q5fM= +-----END AGE ENCRYPTED FILE----- diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 41b4b1d..a861879 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -46,6 +46,7 @@ in "thor_wg_priv.age".publicKeys = devUsers ++ [ thor ]; "wg_psk.age".publicKeys = devUsers ++ systems; "rclone_bertof.age".publicKeys = devUsers ++ [ baldur heimdall odin sif thor ]; + "rclone_jellyfin.age".publicKeys = devUsers ++ [ baldur heimdall ]; "rclone_tiziano.age".publicKeys = devUsers ++ [ odin ]; "ollama.age".publicKeys = devUsers ++ [ thor ]; "heimdall-gitlab-runner-nix.age".publicKeys = devUsers ++ [ heimdall ];