feat: fixed actual install
This commit is contained in:
parent
7ad6a83dfa
commit
f72a6da013
3 changed files with 18 additions and 8 deletions
|
|
@ -6,14 +6,18 @@
|
||||||
const = import ./const.nix;
|
const = import ./const.nix;
|
||||||
dataDirectory = const.dataDirectory;
|
dataDirectory = const.dataDirectory;
|
||||||
in {
|
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 {
|
config = lib.mkIf config.services.actual.enable {
|
||||||
systemd.tmpfiles.rules = [
|
|
||||||
"d ${dataDirectory} 2770 actual actual"
|
|
||||||
];
|
|
||||||
|
|
||||||
services.actual = {
|
services.actual = {
|
||||||
settings = {
|
settings = {
|
||||||
ACTUAL_DATA_DIR = dataDirectory;
|
port = config.services.actual.port;
|
||||||
|
dataDir = dataDirectory;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
{
|
{
|
||||||
dataDirectory = "/var/lib/actual/";
|
dataDirectory = "/var/lib/private/actual";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@
|
||||||
}: let
|
}: let
|
||||||
const = import ./const.nix;
|
const = import ./const.nix;
|
||||||
dataDirectory = const.dataDirectory;
|
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 {
|
in {
|
||||||
options.services.actual = {
|
options.services.actual = {
|
||||||
impermanence.enable = lib.mkOption {
|
impermanence.enable = lib.mkOption {
|
||||||
|
|
@ -16,8 +18,12 @@ in {
|
||||||
config = lib.mkIf config.services.actual.impermanence.enable {
|
config = lib.mkIf config.services.actual.impermanence.enable {
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = config.services.actual.settings.ACTUAL_DATA_DIR == dataDirectory;
|
assertion = config.services.actual.settings.dataDir == dataDirectory;
|
||||||
message = "actual data location does not match persistence";
|
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" = {
|
environment.persistence."/persist/system/root" = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue