Compare commits

..

10 commits

11 changed files with 97 additions and 43 deletions

54
flake.lock generated
View file

@ -113,11 +113,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1769996383, "lastModified": 1772408722,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381", "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -171,11 +171,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770726378, "lastModified": 1772893680,
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=", "narHash": "sha256-JDqZMgxUTCq85ObSaFw0HhE+lvdOre1lx9iI6vYyOEs=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae", "rev": "8baab586afc9c9b57645a734c820e4ac0a604af9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -276,11 +276,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771744638, "lastModified": 1773264488,
"narHash": "sha256-EDLi+YAsEEAmMeZe1v6GccuGRbCkpSZp/+A6g+pivR8=", "narHash": "sha256-rK0507bDuWBrZo+0zts9bCs/+RRUEHuvFE5DHWPxX/Q=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "cb6c151f5c9db4df0b69d06894dc8484de1f16a0", "rev": "5c0f63f8d55040a7eed69df7e3fcdd15dfb5a04c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -297,11 +297,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771750122, "lastModified": 1773422513,
"narHash": "sha256-+JYMGE6Z4O7GoaBFHByl22XcyeStu56GE1eu3+2sVjI=", "narHash": "sha256-MPjR48roW7CUMU6lu0+qQGqj92Kuh3paIulMWFZy+NQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "603626a8da9e1b622e55251a90ef486b8179334c", "rev": "ef12a9a2b0f77c8fa3dda1e7e494fca668909056",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -333,11 +333,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771734689, "lastModified": 1772945408,
"narHash": "sha256-/phvMgr1yutyAMjKnZlxkVplzxHiz60i4rc+gKzpwhg=", "narHash": "sha256-PMt48sEQ8cgCeljQ9I/32uoBq/8t8y+7W/nAZhf72TQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "8f590b832326ab9699444f3a48240595954a4b10", "rev": "1c1d8ea87b047788fd7567adf531418c5da321ec",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -410,11 +410,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1771423359, "lastModified": 1772972630,
"narHash": "sha256-yRKJ7gpVmXbX2ZcA8nFi6CMPkJXZGjie2unsiMzj3Ig=", "narHash": "sha256-mUJxsNOrBMNOUJzN0pfdVJ1r2pxeqm9gI/yIKXzVVbk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "740a22363033e9f1bb6270fbfb5a9574067af15b", "rev": "3966ce987e1a9a164205ac8259a5fe8a64528f72",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -441,11 +441,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1769909678, "lastModified": 1772328832,
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=", "narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "72716169fe93074c333e8d0173151350670b824c", "rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -486,11 +486,11 @@
}, },
"nixpkgs-s": { "nixpkgs-s": {
"locked": { "locked": {
"lastModified": 1771714954, "lastModified": 1773423183,
"narHash": "sha256-nhZJPnBavtu40/L2aqpljrfUNb2rxmWTmSjK2c9UKds=", "narHash": "sha256-DWTHAXCWF9Et9B1P/sWZYTqKBPXoYZ54AQpX/ysBKdg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "afbbf774e2087c3d734266c22f96fca2e78d3620", "rev": "c128715845ca39d44c4e5839323475b62a72ccd9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -502,11 +502,11 @@
}, },
"nixpkgs-u": { "nixpkgs-u": {
"locked": { "locked": {
"lastModified": 1771369470, "lastModified": 1773282481,
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", "narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "0182a361324364ae3f436a63005877674cf45efb", "rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -506,6 +506,7 @@
./nixos/forgejo.nix # Git hosting (Forgejo/Gitea fork) ./nixos/forgejo.nix # Git hosting (Forgejo/Gitea fork)
./nixos/garage.nix # Object storage service ./nixos/garage.nix # Object storage service
./nixos/ollama.nix # AI/LLM service ./nixos/ollama.nix # AI/LLM service
./nixos/jellyfin.nix # Jellyfin media server
# Cloud storage and secrets # Cloud storage and secrets
self.nixosModules.bertof-rclone self.nixosModules.bertof-rclone

View file

@ -9,7 +9,7 @@
}; };
mcp-ctrl = { mcp-ctrl = {
command = "nix"; 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"; "deepseek-r1:8b".name = "deepseek-r1:8b";
"gemma3n:e2b".name = "gemma3n:e2b"; "gemma3n:e2b".name = "gemma3n:e2b";
"gemma3:latest".name = "gemma3:latest"; "gemma3:latest".name = "gemma3:latest";
"qwen3:4b".name = "qwen3:4b"; "qwen3.5:4b".name = "qwen3.5:4b";
"qwen3-vl:4b".name = "qwen3-vl:4b"; "qwen3.5:9b".name = "qwen3.5:9b";
"qwen3-vl:8b".name = "qwen3-vl:8b";
"qwen3:14b".name = "qwen3:14b";
"qwen3:8b".name = "qwen3:8b";
"gemma3:12b".name = "gemma3:12b"; "gemma3:12b".name = "gemma3:12b";
"gemma3n:e4b".name = "gemma3n:e4b"; "gemma3n:e4b".name = "gemma3n:e4b";
"granite3.3:8b".name = "granite3.3:8b"; "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";
}; };
}; };

View file

@ -1,7 +1,7 @@
{ pkgs, ... }: { pkgs, ... }:
let let
systemLibFolder = "/run/current-system/sw/lib/"; 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 = { variables = {
DSSI_PATH = "$HOME/.dssi:${userLibFolder}/dssi:${systemLibFolder}/dssi"; DSSI_PATH = "$HOME/.dssi:${userLibFolder}/dssi:${systemLibFolder}/dssi";
LADSPA_PATH = "$HOME/.ladspa:${userLibFolder}/ladspa:${systemLibFolder}/ladspa"; LADSPA_PATH = "$HOME/.ladspa:${userLibFolder}/ladspa:${systemLibFolder}/ladspa";
@ -25,7 +25,7 @@ in
# mamba # mamba
aeolus aeolus
ardour ardour
# artyFX artyFX
autotalent autotalent
boops boops
# breeze-icons # breeze-icons
@ -36,7 +36,7 @@ in
gxplugins-lv2 gxplugins-lv2
geonkick geonkick
giada giada
# hydrogen hydrogen
neural-amp-modeler-lv2 neural-amp-modeler-lv2
# proteus # proteus
ninjas2 ninjas2
@ -46,7 +46,7 @@ in
samplv1 samplv1
sfizz sfizz
# surge # surge
# surge-XT surge-XT
talentedhack talentedhack
vital vital
vocproc vocproc

View file

@ -32,7 +32,7 @@ let cfg = config.rclone-mount; in {
Type = "simple"; Type = "simple";
Environment = [ "PATH=${ lib.makeBinPath [ pkgs.rclone pkgs.coreutils pkgs.fuse ]}:/run/wrappers/bin/:$PATH" ]; Environment = [ "PATH=${ lib.makeBinPath [ pkgs.rclone pkgs.coreutils pkgs.fuse ]}:/run/wrappers/bin/:$PATH" ];
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p ${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"; Restart = "on-failure";
RestartSec = "30s"; RestartSec = "30s";
}; };

View file

@ -36,7 +36,7 @@ in
modules-right = [ modules-right = [
# "hyprland/language" # "hyprland/language"
# "custom/media" # "custom/media"
"pulseaudio" "wireplumber"
# "network" # "network"
"cpu" "cpu"
"memory" "memory"
@ -155,7 +155,7 @@ in
"format-disconnected" = "Disconnected "; "format-disconnected" = "Disconnected ";
"format-alt" = "{ifname}= {ipaddr}/{cidr}"; "format-alt" = "{ifname}= {ipaddr}/{cidr}";
}; };
"pulseaudio" = { "wireplumber" = {
# "scroll-step"= 1; # %; can be a float # "scroll-step"= 1; # %; can be a float
"format" = "{icon} {volume} {format_source}"; "format" = "{icon} {volume} {format_source}";
"format-muted" = " {format_source}"; "format-muted" = " {format_source}";

View file

@ -53,7 +53,6 @@
# slack # slack
# spotify # spotify
telegram-desktop telegram-desktop
thunderbird
transmission_4 transmission_4
# wineFull # wineFull
wireguard-tools wireguard-tools

33
nixos/jellyfin.nix Normal file
View file

@ -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}"
];
};
}

View file

@ -5,7 +5,7 @@ in
{ {
services = { services = {
bazarr = { enable = true; openFirewall = true; group = "users"; }; bazarr = { enable = true; openFirewall = true; group = "users"; };
# jellyseerr = { enable = true; openFirewall = true; }; jellyseerr = { enable = true; openFirewall = true; };
lidarr = { enable = true; openFirewall = true; group = "users"; }; lidarr = { enable = true; openFirewall = true; group = "users"; };
ombi = { enable = true; openFirewall = true; }; ombi = { enable = true; openFirewall = true; };
prowlarr = { enable = true; openFirewall = true; }; prowlarr = { enable = true; openFirewall = true; };

View file

@ -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-----

View file

@ -46,6 +46,7 @@ in
"thor_wg_priv.age".publicKeys = devUsers ++ [ thor ]; "thor_wg_priv.age".publicKeys = devUsers ++ [ thor ];
"wg_psk.age".publicKeys = devUsers ++ systems; "wg_psk.age".publicKeys = devUsers ++ systems;
"rclone_bertof.age".publicKeys = devUsers ++ [ baldur heimdall odin sif thor ]; "rclone_bertof.age".publicKeys = devUsers ++ [ baldur heimdall odin sif thor ];
"rclone_jellyfin.age".publicKeys = devUsers ++ [ baldur heimdall ];
"rclone_tiziano.age".publicKeys = devUsers ++ [ odin ]; "rclone_tiziano.age".publicKeys = devUsers ++ [ odin ];
"ollama.age".publicKeys = devUsers ++ [ thor ]; "ollama.age".publicKeys = devUsers ++ [ thor ];
"heimdall-gitlab-runner-nix.age".publicKeys = devUsers ++ [ heimdall ]; "heimdall-gitlab-runner-nix.age".publicKeys = devUsers ++ [ heimdall ];