This commit is contained in:
@@ -7,25 +7,55 @@
|
|||||||
environmentFile = config.age.secrets.atticd-credentials.path;
|
environmentFile = config.age.secrets.atticd-credentials.path;
|
||||||
settings = {
|
settings = {
|
||||||
listen = "[::]:28338";
|
listen = "[::]:28338";
|
||||||
|
database.url = "postgresql:///atticd?host=/run/postgresql";
|
||||||
|
require-proof-of-possession = false;
|
||||||
|
|
||||||
|
# Disable chunking — the dedup savings don't justify the CPU/IO
|
||||||
|
# overhead for local storage, especially on ZFS which already
|
||||||
|
# does block-level compression.
|
||||||
chunking = {
|
chunking = {
|
||||||
nar-size-threshold = 64 * 1024; # 64 KiB
|
nar-size-threshold = 0;
|
||||||
|
min-size = 16 * 1024;
|
||||||
# The preferred minimum size of a chunk, in bytes
|
avg-size = 64 * 1024;
|
||||||
min-size = 16 * 1024; # 16 KiB
|
max-size = 256 * 1024;
|
||||||
|
|
||||||
# The preferred average size of a chunk, in bytes
|
|
||||||
avg-size = 64 * 1024; # 64 KiB
|
|
||||||
|
|
||||||
# The preferred maximum size of a chunk, in bytes
|
|
||||||
max-size = 256 * 1024; # 256 KiB
|
|
||||||
};
|
};
|
||||||
|
|
||||||
compression.type = "zstd";
|
# Let ZFS handle compression instead of double-compressing.
|
||||||
|
compression.type = "none";
|
||||||
|
|
||||||
garbage-collection.default-retention-period = "6 months";
|
garbage-collection.default-retention-period = "6 months";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# PostgreSQL for atticd
|
||||||
|
services.postgresql = {
|
||||||
|
enable = true;
|
||||||
|
ensureDatabases = [ "atticd" ];
|
||||||
|
ensureUsers = [{
|
||||||
|
name = "atticd";
|
||||||
|
ensureDBOwnership = true;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Use a static user so the ZFS mountpoint at /var/lib/atticd works
|
||||||
|
# (DynamicUser conflicts with ZFS mountpoints)
|
||||||
|
users.users.atticd = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "atticd";
|
||||||
|
home = "/var/lib/atticd";
|
||||||
|
};
|
||||||
|
users.groups.atticd = { };
|
||||||
|
|
||||||
|
systemd.services.atticd = {
|
||||||
|
after = [ "postgresql.service" ];
|
||||||
|
requires = [ "postgresql.service" ];
|
||||||
|
serviceConfig = {
|
||||||
|
DynamicUser = lib.mkForce false;
|
||||||
|
User = "atticd";
|
||||||
|
Group = "atticd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
age.secrets.atticd-credentials.file = ../../secrets/atticd-credentials.age;
|
age.secrets.atticd-credentials.file = ../../secrets/atticd-credentials.age;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,12 @@
|
|||||||
fsType = "zfs";
|
fsType = "zfs";
|
||||||
options = [ "zfsutil" "X-mount.mkdir" ];
|
options = [ "zfsutil" "X-mount.mkdir" ];
|
||||||
};
|
};
|
||||||
|
fileSystems."/var/lib/atticd" =
|
||||||
|
{
|
||||||
|
device = "rpool/nixos/var/lib/atticd";
|
||||||
|
fsType = "zfs";
|
||||||
|
options = [ "zfsutil" "X-mount.mkdir" ];
|
||||||
|
};
|
||||||
fileSystems."/var/log" =
|
fileSystems."/var/log" =
|
||||||
{
|
{
|
||||||
device = "rpool/nixos/var/log";
|
device = "rpool/nixos/var/log";
|
||||||
@@ -72,5 +78,5 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = "powersave";
|
powerManagement.cpuFreqGovernor = "schedutil";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user