This commit is contained in:
marty 2026-05-19 12:48:51 +02:00
parent ce82b29a96
commit 9cac325698
9 changed files with 110 additions and 61 deletions

89
flake.lock generated
View file

@ -146,6 +146,24 @@
} }
}, },
"flake-utils": { "flake-utils": {
"inputs": {
"systems": "systems_5"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": { "inputs": {
"systems": [ "systems": [
"swayfx", "swayfx",
@ -695,6 +713,22 @@
} }
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": {
"lastModified": 1773375660,
"narHash": "sha256-SEzUWw2Rf5Ki3bcM26nSKgbeoqi2uYy8IHVBqOKjX3w=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "3e20095fe3c6cbb1ddcef89b26969a69a1570776",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1775710090, "lastModified": 1775710090,
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
@ -812,6 +846,7 @@
"nixos-cli": "nixos-cli", "nixos-cli": "nixos-cli",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_5",
"noctalia": "noctalia", "noctalia": "noctalia",
"stump-nix": "stump-nix",
"swayfx": "swayfx", "swayfx": "swayfx",
"walker": "walker", "walker": "walker",
"zen-browser": "zen-browser" "zen-browser": "zen-browser"
@ -827,7 +862,7 @@
"swayfx", "swayfx",
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_5" "systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1771859266, "lastModified": 1771859266,
@ -843,14 +878,33 @@
"type": "github" "type": "github"
} }
}, },
"swayfx": { "stump-nix": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1774882209,
"narHash": "sha256-H7NI8B3NsZRJEb8a4v2MK3UTc39oGT4XB1PtLoE7Af8=",
"owner": "bct",
"repo": "stump-nix",
"rev": "d9fa412abd927a45890460d371c25f22aa99feb5",
"type": "github"
},
"original": {
"owner": "bct",
"repo": "stump-nix",
"type": "github"
}
},
"swayfx": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"scenefx": "scenefx", "scenefx": "scenefx",
"systems": "systems_6" "systems": "systems_7"
}, },
"locked": { "locked": {
"lastModified": 1776138006, "lastModified": 1776138006,
@ -928,16 +982,16 @@
}, },
"systems_5": { "systems_5": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1681028828,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default-linux", "repo": "default",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default-linux", "repo": "default",
"type": "github" "type": "github"
} }
}, },
@ -971,6 +1025,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_8": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"treefmt-nix": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -998,8 +1067,8 @@
"elephant": [ "elephant": [
"elephant" "elephant"
], ],
"nixpkgs": "nixpkgs_6", "nixpkgs": "nixpkgs_7",
"systems": "systems_7" "systems": "systems_8"
}, },
"locked": { "locked": {
"lastModified": 1775815794, "lastModified": 1775815794,

View file

@ -34,6 +34,9 @@
url = "github:noctalia-dev/noctalia-shell"; url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
stump-nix = {
url = "github:bct/stump-nix";
};
}; };
outputs = outputs =
@ -46,6 +49,7 @@
zen-browser, zen-browser,
agenix, agenix,
swayfx, swayfx,
stump-nix,
... ...
}: }:
let let

View file

@ -54,6 +54,7 @@ let
(extension "peertube-companion" "peertube-companion@booteille") (extension "peertube-companion" "peertube-companion@booteille")
(extension "peertubeify" "{01175c8e-4506-4263-bad9-d3ddfd4f5a5f}") (extension "peertubeify" "{01175c8e-4506-4263-bad9-d3ddfd4f5a5f}")
(extension "peertube-picks" "{937c0767-0608-41e2-917a-8bf06601275a}") (extension "peertube-picks" "{937c0767-0608-41e2-917a-8bf06601275a}")
(extension "vimium-ff" "{d7742d87-e61d-4b78-b8a1-b469842139fa}")
# ... # ...
]; ];

View file

@ -6,6 +6,9 @@
}: }:
{ {
imports = [
../../modules/device/laptop.nix
];
config = { config = {
user = { user = {
userName = "marty"; userName = "marty";

View file

@ -20,6 +20,7 @@
locale = "de_DE.UTF-8"; locale = "de_DE.UTF-8";
hostname = "marty-pc"; hostname = "marty-pc";
}; };
server.media.stump.enable = true;
apps = { apps = {
audio = { audio = {
base.enable = true; base.enable = true;

View file

@ -30,7 +30,7 @@
enable = true; enable = true;
public = false; public = false;
}; };
kavita = { stump = {
enable = true; enable = true;
public = false; public = false;
}; };

View file

@ -8,7 +8,7 @@
{ {
imports = [ imports = [
./jellyfin.nix ./jellyfin.nix
./kavita.nix ./stump.nix
./navidrome.nix ./navidrome.nix
]; ];
} }

View file

@ -1,49 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
server.media.kavita = {
enable = lib.mkEnableOption "enable kavita";
port = lib.mkOption {
default = 3812;
description = "kavita port";
};
public = lib.mkEnableOption "make kavita public";
subdomain = lib.mkOption {
default = "books";
description = "kavita subdomain";
};
};
};
config = {
services = {
kavita = {
enable = config.server.media.kavita.enable;
tokenKeyFile = "/home/${config.user.userName}/secrets/kavita";
settings = {
Port = config.server.media.kavita.port;
};
};
nginx = {
virtualHosts = {
"${config.server.media.kavita.subdomain}.${config.networking.domain}" =
if config.server.media.kavita.public then
{
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:${toString config.server.media.kavita.port}";
};
}
else
{ };
};
};
};
};
}

View file

@ -0,0 +1,20 @@
{ inputs, ... }:
{
options = {
server.media.stump = {
enable = lib.mkEnableOption "enable stump";
public = lib.mkEnableOption "make stump public";
};
};
imports = [ inputs.stump-nix.nixosModules.stump ];
config = {
services.stump = {
enable = true;
environment = {
STUMP_PORT = "10801";
};
};
};
}