zfs: HEAVILY REFACTOR subvolume handling

This commit is contained in:
2025-11-20 16:06:29 -05:00
parent dd9042ae95
commit ae5189b6c6
12 changed files with 157 additions and 95 deletions

View File

@@ -7,16 +7,14 @@
}:
{
imports = [
(lib.serviceMountDeps "vaultwarden" [
(lib.serviceMountWithZpool "vaultwarden" service_configs.zpool_ssds [
service_configs.vaultwarden.path
config.services.vaultwarden.backupDir
])
(lib.serviceMountDeps "backup-vaultwarden" [
(lib.serviceMountWithZpool "backup-vaultwarden" service_configs.zpool_ssds [
service_configs.vaultwarden.path
config.services.vaultwarden.backupDir
])
(lib.serviceDependZpool "vaultwarden" service_configs.zpool_ssds)
(lib.serviceDependZpool "backup-vaultwarden" service_configs.zpool_ssds)
];
services.vaultwarden = {

View File

@@ -44,10 +44,9 @@ let
in
{
imports = [
(lib.serviceMountDeps "caddy" [
(lib.serviceMountWithZpool "caddy" service_configs.zpool_ssds [
config.services.caddy.dataDir
])
(lib.serviceDependZpool "caddy" service_configs.zpool_ssds)
];
services.caddy = {

View File

@@ -7,8 +7,7 @@
}:
{
imports = [
(lib.serviceMountDeps "gitea" [ config.services.gitea.stateDir ])
(lib.serviceDependZpool "gitea" service_configs.zpool_ssds)
(lib.serviceMountWithZpool "gitea" service_configs.zpool_ssds [ config.services.gitea.stateDir ])
];
services.gitea = {

View File

@@ -7,10 +7,12 @@
}:
{
imports = [
(lib.serviceMountDeps "immich-server" [ config.services.immich.mediaLocation ])
(lib.serviceMountDeps "immich-machine-learning" [ config.services.immich.mediaLocation ])
(lib.serviceDependZpool "immich-server" service_configs.zpool_ssds)
(lib.serviceDependZpool "immich-machine-learning" service_configs.zpool_ssds)
(lib.serviceMountWithZpool "immich-server" service_configs.zpool_ssds [
config.services.immich.mediaLocation
])
(lib.serviceMountWithZpool "immich-machine-learning" service_configs.zpool_ssds [
config.services.immich.mediaLocation
])
];
services.immich = {

View File

@@ -7,11 +7,10 @@
}:
{
imports = [
(lib.serviceMountDeps "jellyfin" [
(lib.serviceMountWithZpool "jellyfin" service_configs.zpool_ssds [
config.services.jellyfin.dataDir
config.services.jellyfin.cacheDir
])
(lib.serviceDependZpool "jellyfin" service_configs.zpool_ssds)
];
services.jellyfin = {

View File

@@ -7,10 +7,12 @@
}:
{
imports = [
(lib.serviceMountDeps "minecraft-server-${service_configs.minecraft.server_name}" [
"${service_configs.minecraft.parent_dir}/${service_configs.minecraft.server_name}"
])
(lib.serviceDependZpool "minecraft-server-${service_configs.minecraft.server_name}" service_configs.zpool_ssds)
(lib.serviceMountWithZpool "minecraft-server-${service_configs.minecraft.server_name}"
service_configs.zpool_ssds
[
"${service_configs.minecraft.parent_dir}/${service_configs.minecraft.server_name}"
]
)
];
environment.systemPackages = [

View File

@@ -5,10 +5,9 @@
}:
{
imports = [
(lib.serviceMountDeps "monero" [
(lib.serviceMountWithZpool "monero" service_configs.zpool_hdds [
service_configs.monero.dataDir
])
(lib.serviceDependZpool "monero" service_configs.zpool_hdds)
];
services.monero = {

View File

@@ -7,8 +7,9 @@
}:
{
imports = [
(lib.serviceMountDeps "postgresql" [ config.services.postgresql.dataDir ])
(lib.serviceDependZpool "postgresql" service_configs.zpool_ssds)
(lib.serviceMountWithZpool "postgresql" service_configs.zpool_ssds [
config.services.postgresql.dataDir
])
];
services.postgresql = {

View File

@@ -8,13 +8,12 @@
}:
{
imports = [
(lib.serviceMountDeps "qbittorrent" [
(lib.serviceMountWithZpool "qbittorrent" service_configs.zpool_hdds [
service_configs.torrents_path
config.services.qbittorrent.serverConfig.Preferences.Downloads.TempPath
"${config.services.qbittorrent.profileDir}/qBittorrent"
])
(lib.vpnNamespaceOpenPort config.services.qbittorrent.webuiPort "qbittorrent")
(lib.serviceDependZpool "qbittorrent" service_configs.zpool_hdds)
];
services.qbittorrent = {

View File

@@ -11,13 +11,11 @@ let
in
{
imports = [
(lib.serviceMountDeps "slskd" [
(lib.serviceMountWithZpool "slskd" "" [
service_configs.slskd.base
service_configs.slskd.downloads
service_configs.slskd.incomplete
])
(lib.serviceDependZpool "slskd" service_configs.zpool_ssds)
(lib.serviceDependZpool "slskd" service_configs.zpool_hdds)
];
users.groups."music" = { };