helm/hosts/profiles/archivebox/default.nix
2022-12-14 01:05:56 +10:00

76 lines
1.6 KiB
Nix

{ config, options, lib, pkgs, ... }:
with lib;
let
# cfg = config.services.archivebox;
dataDir = "/var/lib/archivebox";
user = "archivebox";
port = "8123";
in
{
nixpkgs.config.permittedInsecurePackages = [
"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}
'';
};
}