{ 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} ''; }; }