2024-12-18 09:40:11 +03:00
|
|
|
{ lib, ... }:
|
|
|
|
let
|
|
|
|
storage = "/storage/hot/data";
|
2024-12-02 21:12:45 +03:00
|
|
|
|
2024-12-18 09:40:11 +03:00
|
|
|
binds = [
|
|
|
|
(mkBind "change" "/var/lib/changedetection-io")
|
|
|
|
(mkBind "cups" "/var/lib/cups")
|
|
|
|
(mkBind "deluge" "/var/lib/deluge/.config/deluge")
|
|
|
|
(mkBind "dkim" "/var/dkim")
|
|
|
|
(mkBind "dovecot_index" "/var/lib/dovecot/indices")
|
|
|
|
(mkBind "forgejo" "/var/lib/forgejo")
|
|
|
|
(mkBind "grocy" "/var/lib/grocy")
|
|
|
|
(mkBind "hass" "/var/lib/hass")
|
|
|
|
(mkBind "jellyfin" "/var/lib/jellyfin")
|
|
|
|
(mkBind "jellyfin_cache" "/var/cache/jellyfin")
|
|
|
|
(mkBind "kavita" "/var/lib/kavita")
|
|
|
|
(mkBind "letsencrypt" "/etc/letsencrypt")
|
|
|
|
(mkBind "murmur" "/var/lib/murmur")
|
|
|
|
(mkBind "nextcloud" "/var/lib/nextcloud")
|
|
|
|
(mkBind "ovpn" "/var/lib/ovpn")
|
|
|
|
(mkBind "paperless" "/var/lib/paperless")
|
|
|
|
(mkBind "postgres" "/var/lib/postgresql")
|
|
|
|
(mkBind "rabbitmq" "/var/lib/rabbitmq")
|
|
|
|
(mkBind "sieve" "/var/sieve")
|
|
|
|
(mkBind "terraria" "/var/lib/terraria")
|
|
|
|
(mkBind "uptime_kuma" "/var/lib/uptime-kuma")
|
|
|
|
(mkBind "vaultwarden" "/var/lib/vaultwarden")
|
|
|
|
(mkBind "vmail" "/var/vmail")
|
|
|
|
];
|
2024-12-02 21:12:45 +03:00
|
|
|
|
2024-12-18 09:40:11 +03:00
|
|
|
mkBind = name: path: {
|
|
|
|
${path} = {
|
|
|
|
device = "${storage}/${name}";
|
|
|
|
options = [
|
|
|
|
"bind"
|
|
|
|
"nofail"
|
|
|
|
"X-mount.mkdir=1777"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
|
|
fileSystems = lib.foldl' (acc: bind: acc // bind) { } binds;
|
2024-12-02 21:12:45 +03:00
|
|
|
}
|