Files
helm/hosts/profiles/archivebox/default.nix
T
Anish Lakhwara d0cde973e7 box zfs
2026-01-19 22:37:30 -08:00

87 lines
1.7 KiB
Nix

{
config,
options,
lib,
pkgs,
...
}:
with lib;
let
# cfg = config.services.archivebox;
dataDir = "/var/lib/archivebox";
user = "archivebox";
port = "8123";
in
{
# Note: permittedInsecurePackages must be set in flake.nix nixpkgsFor config
# if archivebox still requires python3.10-django-3.1.14
services.nginx.virtualHosts."archive.mossnet.lan" = {
enableACME = false;
forceSSL = false;
locations."/" = {
extraConfig = ''
proxy_pass http://localhost:${port}/;
proxy_set_header X-Forwarded-Host $host;
'';
};
};
systemd.services.archivebox-install = {
description = "archivebox install service";
wantedBy = [ "multi-user.target" ];
path = with pkgs; [
coreutils
archivebox
];
serviceConfig = {
User = user;
Type = "oneshot";
RemainAfterExit = "yes";
PermissionsStartOnly = true;
};
preStart = ''
mkdir -p "${dataDir}"
chown ${user} "${dataDir}"
'';
script = ''
echo "Setting up archivebox files in ${dataDir} ..."
cd "${dataDir}"
archivebox init
'';
};
systemd.services.archivebox-server = {
description = "archivebox server service";
wantedBy = [ "multi-user.target" ];
path = with pkgs; [
coreutils
archivebox
];
serviceConfig = {
User = user;
Type = "oneshot";
RemainAfterExit = "yes";
PermissionsStartOnly = true;
};
preStart = ''
mkdir -p "${dataDir}"
chown ${user} "${dataDir}"
'';
script = ''
echo "Setting up wallabag files in ${dataDir} ..."
cd "${dataDir}"
archivebox server 0.0.0.0:${port}
'';
};
}