87 lines
1.7 KiB
Nix
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}
|
|
'';
|
|
};
|
|
}
|