36 lines
867 B
Nix
36 lines
867 B
Nix
{
|
|
fqdn ? null,
|
|
}:
|
|
{ config, ... }:
|
|
let
|
|
inherit (builtins) toString;
|
|
finalFqdn = if fqdn != null then fqdn else config.networking.fqdn;
|
|
in
|
|
{
|
|
services.actual = {
|
|
enable = true;
|
|
settings = {
|
|
port = 31000;
|
|
hostname = "127.0.0.1";
|
|
serverFiles = "/var/lib/actual/server-files";
|
|
userFiles = "/var/lib/actual/user-files";
|
|
loginMethod = "openid";
|
|
};
|
|
};
|
|
|
|
services.actual-budget-api = {
|
|
enable = true;
|
|
listenPort = 31001;
|
|
listenHost = "127.0.0.1";
|
|
serverURL = "https://${finalFqdn}";
|
|
};
|
|
|
|
services.nginx.virtualHosts."${finalFqdn}" = {
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
|
|
locations."/api/".proxyPass =
|
|
"http://localhost:${toString config.services.actual-budget-api.listenPort}/";
|
|
locations."/".proxyPass = "http://localhost:${toString config.services.actual.settings.port}";
|
|
};
|
|
}
|