pi/services/kiwix.nix
Katharina Heidenreich ecf10628c3 feat: try rework
2026-04-04 16:34:02 +02:00

40 lines
931 B
Nix

{ config, pkgs, lib, ... }:
let
serviceValidation = import ../validation/service/kiwix.nix;
service_data = import ../config/services.nix;
kiwix = serviceValidation.getKiwix service_data;
rootDir = kiwix.root_dir;
webPort = kiwix.port;
in {
systemd.tmpfiles.rules = [
"d ${rootDir} 0755 root root - -"
"d ${rootDir}/data 0755 root root - -"
];
virtualisation.oci-containers.containers = {
kiwix-serve = {
image = "ghcr.io/kiwix/kiwix-serve:3.8.2";
ports = ["${toString webPort}:8080"];
volumes = ["${rootDir}/:/data:ro"];
cmd = [
"--monitorLibrary"
"--library" "/data/library.xml"
];
environment = {
TZ = "Europe/Berlin";
};
extraOptions = [
"--memory=512m"
"--memory-swap=512m"
"--cpus=1"
];
autoStart = true;
};
};
networking.firewall = {
allowedTCPPorts = [ webPort ];
};
}