Compare commits

...

21 commits

Author SHA1 Message Date
Bruno BELANYI 376a622549 WIP: add note about 'iwd'
Some checks failed
ci/woodpecker/push/check Pipeline failed
2024-11-28 23:41:27 +00:00
Bruno BELANYI 5d56a8ddf0 WIP: even more directories? Maybe? 2024-11-28 23:41:27 +00:00
Bruno BELANYI 11bd7b30c1 WIP: add notes for missing persistence/backup
TODO:
* Do home-manager
* Look at for more inspiration github.com:nix-community/impermanence/pull/108
* Common files github.com:nix-community/impermanence/issues/10
* Useful config: github.com:chayleaf/dotfiles/blob/f77271b249e0c08368573c22a5c34f0737d3a766/system/modules/impermanence.nix
2024-11-28 23:41:27 +00:00
Bruno BELANYI 4eb7d0cd38 nixos: services: vikunja: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI 9b0c8c1910 nixos: services: transmission: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI 0ccc4b576b nixos: services: tandoor-recipes: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI 9b9f55081e nixos: services: sabnzbd: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI f4c15a1e3b nixos: services: rss-bridge: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI 7bdf6ce35e nixos: services: quassel: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI 6450545bd9 nixos: services: pyload: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI f0d0c06276 nixos: services: postgresql-backup: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI df809a24f8 nixos: services: postgresql: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI e68aa49f29 nixos: services: podgrab: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI df917ad9f0 nixos: services: pirate: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI 3068850c5c nixos: services: pdf-edit: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI 0842666f67 nixos: services: paperless: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI 420ea0dbbf nixos: services: nextcloud: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI 18b078ae09 nixos: services: nginx: persist SSL certificates 2024-11-28 23:41:27 +00:00
Bruno BELANYI 2854952f0b nixos: services: navidrome: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI f09db97960 nixos: services: monitoring: persist data 2024-11-28 23:41:27 +00:00
Bruno BELANYI fce6fd6e79 nixos: services: mealie: persist data 2024-11-28 23:41:27 +00:00
28 changed files with 123 additions and 0 deletions

View file

@ -23,6 +23,8 @@ in
(lib.mkIf cfg.wireless.enable { (lib.mkIf cfg.wireless.enable {
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# IWD needs persistence if enabled
# Persist NetworkManager files # Persist NetworkManager files
my.system.persist.files = [ my.system.persist.files = [
"/var/lib/NetworkManager/secret_key" "/var/lib/NetworkManager/secret_key"

View file

@ -39,5 +39,7 @@ in
extraGroups = [ "docker" ]; # Give access to the daemon extraGroups = [ "docker" ]; # Give access to the daemon
}; };
users.groups.drone-runner-docker = { }; users.groups.drone-runner-docker = { };
# FIXME: persistence?
}; };
} }

View file

@ -63,5 +63,7 @@ in
group = "drone-runner-exec"; group = "drone-runner-exec";
}; };
users.groups.drone-runner-exec = { }; users.groups.drone-runner-exec = { };
# FIXME: persistence?
}; };
} }

View file

@ -50,5 +50,7 @@ in
inherit (cfg) port; inherit (cfg) port;
}; };
}; };
# FIXME: persistence?
}; };
} }

View file

@ -72,6 +72,16 @@ in
}; };
}; };
my.services.backup = {
paths = [
config.systemd.services.mealie.environment.DATA_DIR
];
};
my.system.persist.directories = [
config.systemd.services.mealie.environment.DATA_DIR
];
services.fail2ban.jails = { services.fail2ban.jails = {
mealie = '' mealie = ''
enabled = true enabled = true

View file

@ -130,5 +130,10 @@ in
inherit (cfg.grafana) port; inherit (cfg.grafana) port;
}; };
}; };
my.system.persist.directories = [
config.services.grafana.dataDir
"/var/lib/${config.services.prometheus.stateDir}"
];
}; };
} }

View file

@ -53,6 +53,10 @@ in
}; };
}; };
my.system.persist.directories = [
"/var/lib/${config.systemd.services.navidrome.serviceConfig.StateDirectory}"
];
services.fail2ban.jails = { services.fail2ban.jails = {
navidrome = '' navidrome = ''
enabled = true enabled = true

View file

@ -46,5 +46,7 @@ in
]; ];
}; };
}; };
# FIXME: persistence?
}; };
} }

View file

@ -92,6 +92,11 @@ in
]; ];
}; };
my.system.persist.directories = [
config.services.nextcloud.home
config.services.nextcloud.datadir
];
services.fail2ban.jails = { services.fail2ban.jails = {
nextcloud = '' nextcloud = ''
enabled = true enabled = true

View file

@ -486,5 +486,9 @@ in
} }
]; ];
}; };
my.system.persist.directories = [
config.users.user.acme.home
];
}; };
} }

View file

@ -146,5 +146,10 @@ in
config.services.paperless.mediaDir config.services.paperless.mediaDir
]; ];
}; };
my.system.persist.directories = [
config.services.paperless-ng.dataDir
config.services.paperless-ng.mediaDir
];
}; };
} }

View file

@ -54,6 +54,10 @@ in
}; };
}; };
my.system.persist.directories = [
"/var/lib/${config.systemd.services.stirling-pdf.serviceConfig.StateDirectory}"
];
services.fail2ban.jails = { services.fail2ban.jails = {
stirling-pdf = '' stirling-pdf = ''
enabled = true enabled = true

View file

@ -51,5 +51,10 @@ in
inherit (cfg) port; inherit (cfg) port;
}; };
}; };
my.system.persist.directories = [
config.systemd.services.podgrab.environment.CONFIG
config.systemd.services.podgrab.environment.DATA
];
}; };
} }

View file

@ -24,5 +24,9 @@ in
(config.services.postgresqlBackup.location + "/*.prev.sql.gz") (config.services.postgresqlBackup.location + "/*.prev.sql.gz")
]; ];
}; };
my.system.persist.directories = [
config.services.postgresqlBackup.location
];
}; };
} }

View file

@ -18,6 +18,13 @@ in
}; };
}) })
# Only persist directory if the actual service is enabled
(lib.mkIf config.services.postgresql.enable {
my.system.persist.directories = [
config.services.postgresql.dataDir
];
})
# Taken from the manual # Taken from the manual
(lib.mkIf cfg.upgradeScript { (lib.mkIf cfg.upgradeScript {
environment.systemPackages = environment.systemPackages =

View file

@ -53,6 +53,11 @@ in
}; };
}; };
my.system.persist.directories = [
cfg.downloadDirectory
"/var/lib/${config.systemd.services.pyload.StateDirectory}"
];
services.fail2ban.jails = { services.fail2ban.jails = {
pyload = '' pyload = ''
enabled = true enabled = true

View file

@ -46,5 +46,9 @@ in
# Because Quassel does not use the socket, I simply trust its connection # Because Quassel does not use the socket, I simply trust its connection
authentication = "host quassel quassel localhost trust"; authentication = "host quassel quassel localhost trust";
}; };
my.system.persist.directories = [
config.services.quassel.dataDir
];
}; };
} }

View file

@ -22,5 +22,9 @@ in
forceSSL = true; forceSSL = true;
useACMEHost = config.networking.domain; useACMEHost = config.networking.domain;
}; };
my.system.persist.directories = [
config.services.rss-bridge.dataDir
];
}; };
} }

View file

@ -24,6 +24,10 @@ in
}; };
}; };
my.system.persist.files = [
config.services.sabnzbd.configFile
];
services.fail2ban.jails = { services.fail2ban.jails = {
sabnzbd = '' sabnzbd = ''
enabled = true enabled = true

View file

@ -19,6 +19,16 @@ let
enable = true; enable = true;
group = "media"; group = "media";
}; };
my.system.persist.directories =
let
# Bazarr breaks the mold unfortunately
dataDir =
if service != "bazarr"
then config.services.${service}.dataDir
else config.users.user.${service}.home;
in
[ dataDir ];
}; };
mkRedirection = service: { mkRedirection = service: {

View file

@ -83,6 +83,19 @@ in
}; };
}; };
my.services.backup = {
paths = [
"/var/lib/${config.systemd.services.tandoor-recipes.StateDirectory}"
config.systemd.services.tandoor-recipes.environment.MEDIA_ROOT
];
};
my.system.persist.directories = [
"/var/lib/${config.systemd.services.tandoor-recipes.StateDirectory}"
config.systemd.services.tandoor-recipes.environment.MEDIA_ROOT
];
# NOTE: unfortunately tandoor-recipes does not log connection failures for fail2ban # NOTE: unfortunately tandoor-recipes does not log connection failures for fail2ban
}; };
} }

View file

@ -91,6 +91,10 @@ in
allowedUDPPorts = [ cfg.peerPort ]; allowedUDPPorts = [ cfg.peerPort ];
}; };
my.system.persist.directories = [
config.services.transmission.home
];
# NOTE: unfortunately transmission does not log connection failures for fail2ban # NOTE: unfortunately transmission does not log connection failures for fail2ban
}; };
} }

View file

@ -100,6 +100,10 @@ in
]; ];
}; };
my.system.persist.directories = [
config.services.vikunja.settings.files.basepath
];
# NOTE: unfortunately vikunja does not log connection failures for fail2ban # NOTE: unfortunately vikunja does not log connection failures for fail2ban
}; };
} }

View file

@ -38,5 +38,7 @@ in
]; ];
}; };
}; };
# FIXME: persistence?
}; };
} }

View file

@ -62,5 +62,7 @@ in
]; ];
}; };
}; };
# FIXME: persistence?
}; };
} }

View file

@ -61,5 +61,7 @@ in
port = cfg.rpcPort; port = cfg.rpcPort;
}; };
}; };
# FIXME: persistence
}; };
} }

View file

@ -58,6 +58,10 @@ in
"/var/log" # Logs "/var/log" # Logs
"/var/lib/nixos" # UID/GID maps "/var/lib/nixos" # UID/GID maps
"/var/lib/systemd/coredump" # Coredumps "/var/lib/systemd/coredump" # Coredumps
"/var/lib/systemd" # FIXME: needed?
"/var/spool" # FIXME: needed?
"/var/tmp" # FIXME: needed?
] ]
++ cfg.directories ++ cfg.directories
; ;

View file

@ -65,5 +65,7 @@ in
# Allow resolution of '.local' addresses # Allow resolution of '.local' addresses
nssmdns4 = true; nssmdns4 = true;
}; };
# FIXME: persistence?
}; };
} }