nixfiles/services/actual.nix

38 lines
1 KiB
Nix

{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkIf mkOption mkEnableOption types;
cfg = config.qenya.services.actual;
in
{
options.qenya.services.actual = {
enable = mkEnableOption "Actual Budget";
domain = mkOption {
type = types.str;
};
};
config = mkIf cfg.enable {
services.nginx = {
enable = true;
virtualHosts = {
${cfg.domain} = {
forceSSL = true;
enableACME = true;
locations."/".proxyPass = "http://127.0.0.1:5006/";
};
};
};
networking.firewall.allowedTCPPorts = [ 80 443 ];
services.actual = {
enable = true;
# nixos 25.05 is on actual-server 25.6.1 which contains an annoying bug
# nixpkgs maintainers declined to backport a newer version, so get this from unstable for now
# ref. https://github.com/NixOS/nixpkgs/issues/423541
package = (import inputs.nixpkgs-unstable-small { system = "x86_64-linux"; }).actual-server;
settings.port = 5006;
};
};
}