feat: fixed actual install

This commit is contained in:
Leyla Becker 2025-10-26 14:24:18 -05:00
parent 7ad6a83dfa
commit f72a6da013
3 changed files with 18 additions and 8 deletions

View file

@ -6,14 +6,18 @@
const = import ./const.nix;
dataDirectory = const.dataDirectory;
in {
options.services.actual = {
port = lib.mkOption {
type = lib.types.port;
description = "The port to listen on";
default = 5006;
};
};
config = lib.mkIf config.services.actual.enable {
systemd.tmpfiles.rules = [
"d ${dataDirectory} 2770 actual actual"
];
services.actual = {
settings = {
ACTUAL_DATA_DIR = dataDirectory;
port = config.services.actual.port;
dataDir = dataDirectory;
};
};
};

View file

@ -1,3 +1,3 @@
{
dataDirectory = "/var/lib/actual/";
dataDirectory = "/var/lib/private/actual";
}

View file

@ -5,6 +5,8 @@
}: let
const = import ./const.nix;
dataDirectory = const.dataDirectory;
# Strip /private from dataDirectory for assertion check (systemd DynamicUser adds /private automatically)
configDataDirectory = lib.strings.replaceStrings ["/var/lib/private"] ["/var/lib"] dataDirectory;
in {
options.services.actual = {
impermanence.enable = lib.mkOption {
@ -16,8 +18,12 @@ in {
config = lib.mkIf config.services.actual.impermanence.enable {
assertions = [
{
assertion = config.services.actual.settings.ACTUAL_DATA_DIR == dataDirectory;
message = "actual data location does not match persistence";
assertion = config.services.actual.settings.dataDir == dataDirectory;
message = "actual data location does not match persistence\nconfig directory: ${config.services.actual.settings.dataDir}\npersistence directory: ${dataDirectory}";
}
{
assertion = config.systemd.services.actual.serviceConfig.DynamicUser or false;
message = "actual systemd service must have DynamicUser enabled to use private directory";
}
];
environment.persistence."/persist/system/root" = {