Compare commits
29 commits
5563a1718f
...
38268c61ea
Author | SHA1 | Date | |
---|---|---|---|
Bruno BELANYI | 38268c61ea | ||
Bruno BELANYI | 7b9a04ba86 | ||
Bruno BELANYI | 906299a1ef | ||
Bruno BELANYI | f41f974e5f | ||
Bruno BELANYI | 380991d5a7 | ||
Bruno BELANYI | 6091c0ccd6 | ||
Bruno BELANYI | 9fca6c2011 | ||
Bruno BELANYI | 53a0a1f613 | ||
Bruno BELANYI | d1521a4a85 | ||
Bruno BELANYI | a8f3a5b6cc | ||
Bruno BELANYI | 576f18e083 | ||
Bruno BELANYI | e5e9769f5c | ||
Bruno BELANYI | 740432cd90 | ||
Bruno BELANYI | 738c50c05e | ||
Bruno BELANYI | 2f0d9cf70d | ||
Bruno BELANYI | 2c51cb52c6 | ||
Bruno BELANYI | 74b1c5a83d | ||
Bruno BELANYI | 463aa0a80c | ||
Bruno BELANYI | 1d8c10ecf5 | ||
Bruno BELANYI | c108c04ff8 | ||
Bruno BELANYI | da9d84da3d | ||
Bruno BELANYI | 270c3a560d | ||
Bruno BELANYI | 136de66291 | ||
Bruno BELANYI | 04439f1d95 | ||
Bruno BELANYI | 0744d8ea86 | ||
Bruno BELANYI | a877570e4d | ||
Bruno BELANYI | aedd0798e8 | ||
Bruno BELANYI | 5a0197922e | ||
Bruno BELANYI | 26495fc8b2 |
17
flake.lock
17
flake.lock
|
@ -150,6 +150,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"impermanence": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1697303681,
|
||||||
|
"narHash": "sha256-caJ0rXeagaih+xTgRduYtYKL1rZ9ylh06CIrt1w5B4g=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"rev": "0f317c2e9e56550ce12323eb39302d251618f5b5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730785428,
|
"lastModified": 1730785428,
|
||||||
|
@ -214,6 +230,7 @@
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"futils": "futils",
|
"futils": "futils",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"impermanence": "impermanence",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
|
|
|
@ -43,6 +43,13 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
impermanence = {
|
||||||
|
type = "github";
|
||||||
|
owner = "nix-community";
|
||||||
|
repo = "impermanence";
|
||||||
|
ref = "master";
|
||||||
|
};
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
type = "github";
|
type = "github";
|
||||||
owner = "NixOS";
|
owner = "NixOS";
|
||||||
|
|
|
@ -18,6 +18,13 @@ in
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Persist bluetooth files
|
||||||
|
{
|
||||||
|
my.system.persist.directories = [
|
||||||
|
"/var/lib/bluetooth"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
# Support for additional bluetooth codecs
|
# Support for additional bluetooth codecs
|
||||||
(lib.mkIf cfg.loadExtraCodecs {
|
(lib.mkIf cfg.loadExtraCodecs {
|
||||||
hardware.pulseaudio = {
|
hardware.pulseaudio = {
|
||||||
|
|
|
@ -22,6 +22,11 @@ in
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf cfg.wireless.enable {
|
(lib.mkIf cfg.wireless.enable {
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
# Persist NetworkManager files
|
||||||
|
my.system.persist.directories = [
|
||||||
|
"/etc/NetworkManager/system-connections"
|
||||||
|
];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,6 +71,8 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# FIXME: persistence?
|
||||||
|
|
||||||
# NOTE: unfortunately aria2 does not log connection failures for fail2ban
|
# NOTE: unfortunately aria2 does not log connection failures for fail2ban
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,8 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# FIXME: persistence?
|
||||||
|
|
||||||
services.fail2ban.jails = {
|
services.fail2ban.jails = {
|
||||||
audiobookshelf = ''
|
audiobookshelf = ''
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
|
@ -41,5 +41,12 @@ in
|
||||||
|
|
||||||
# Those are all subdomains, no problem
|
# Those are all subdomains, no problem
|
||||||
my.services.nginx.virtualHosts = hostsInfo;
|
my.services.nginx.virtualHosts = hostsInfo;
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
"/var/www/blog"
|
||||||
|
"/var/www/cv"
|
||||||
|
"/var/www/dev"
|
||||||
|
"/var/www/key"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,11 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
"/var/lib/${config.services.calibre-web.dataDir}"
|
||||||
|
cfg.libraryPath
|
||||||
|
];
|
||||||
|
|
||||||
services.fail2ban.jails = {
|
services.fail2ban.jails = {
|
||||||
calibre-web = ''
|
calibre-web = ''
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
|
@ -28,6 +28,8 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# FIXME: persistence?
|
||||||
|
|
||||||
# NOTE: unfortunately flood does not log connection failures for fail2ban
|
# NOTE: unfortunately flood does not log connection failures for fail2ban
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,6 +147,11 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
config.services.gitea.lfs.contentDir
|
||||||
|
config.services.gitea.repositoryRoot
|
||||||
|
];
|
||||||
|
|
||||||
services.fail2ban.jails = {
|
services.fail2ban.jails = {
|
||||||
forgejo = ''
|
forgejo = ''
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
|
@ -131,6 +131,11 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
config.services.gitea.lfs.contentDir
|
||||||
|
config.services.gitea.repositoryRoot
|
||||||
|
];
|
||||||
|
|
||||||
services.fail2ban.jails = {
|
services.fail2ban.jails = {
|
||||||
gitea = ''
|
gitea = ''
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
|
@ -37,6 +37,9 @@ in
|
||||||
useACMEHost = config.networking.domain;
|
useACMEHost = config.networking.domain;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# FIXME: backup
|
||||||
|
# FIXME: persistence
|
||||||
|
|
||||||
# NOTE: unfortunately grocy does not log connection failures for fail2ban
|
# NOTE: unfortunately grocy does not log connection failures for fail2ban
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,10 @@ in
|
||||||
port = jackettPort;
|
port = jackettPort;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
config.services.jackett.dataDir
|
||||||
|
];
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.mkIf cfg.nzbhydra.enable {
|
(lib.mkIf cfg.nzbhydra.enable {
|
||||||
|
@ -45,6 +49,10 @@ in
|
||||||
port = nzbhydraPort;
|
port = nzbhydraPort;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
config.services.nzbhydra2.dataDir
|
||||||
|
];
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.mkIf cfg.prowlarr.enable {
|
(lib.mkIf cfg.prowlarr.enable {
|
||||||
|
@ -58,6 +66,10 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
"/var/lib/${config.systemd.services.prowlarr.serviceConfig.StateDirectory}"
|
||||||
|
];
|
||||||
|
|
||||||
services.fail2ban.jails = {
|
services.fail2ban.jails = {
|
||||||
prowlarr = ''
|
prowlarr = ''
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
|
@ -42,6 +42,10 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
"/var/lib/${config.systemd.services.jellyfin.serviceConfig.StateDirectory}"
|
||||||
|
];
|
||||||
|
|
||||||
services.fail2ban.jails = {
|
services.fail2ban.jails = {
|
||||||
jellyfin = ''
|
jellyfin = ''
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
|
@ -107,5 +107,9 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
"/var/lib/${config.systemd.services.lohr.serviceConfig.StateDirectory}"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -214,5 +214,9 @@ in
|
||||||
config.services.matrix-synapse.dataDir
|
config.services.matrix-synapse.dataDir
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
config.services.matrix-synapse.dataDir
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,9 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# FIXME: backup
|
||||||
|
# FIXME: persistence
|
||||||
|
|
||||||
services.fail2ban.jails = {
|
services.fail2ban.jails = {
|
||||||
mealie = ''
|
mealie = ''
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
|
@ -49,6 +49,9 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# FIXME: backup
|
||||||
|
# FIXME: persistence
|
||||||
|
|
||||||
services.fail2ban.jails = {
|
services.fail2ban.jails = {
|
||||||
miniflux = ''
|
miniflux = ''
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
|
@ -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}"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -88,6 +88,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
|
||||||
|
|
|
@ -457,5 +457,9 @@ in
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
config.users.user.acme.home
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -166,5 +166,10 @@ in
|
||||||
config.services.paperless.mediaDir
|
config.services.paperless.mediaDir
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
config.services.paperless-ng.dataDir
|
||||||
|
config.services.paperless-ng.mediaDir
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 =
|
||||||
|
|
|
@ -53,6 +53,9 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# FIXME: backup
|
||||||
|
# FIXME: persistence
|
||||||
|
|
||||||
# FIXME: fail2ban
|
# FIXME: fail2ban
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -19,6 +19,11 @@ let
|
||||||
enable = true;
|
enable = true;
|
||||||
group = "media";
|
group = "media";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Thankfully those old style services all define users with homes
|
||||||
|
my.system.persist.directories = [
|
||||||
|
config.users.user.${service}.home
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
mkRedirection = service: {
|
mkRedirection = service: {
|
||||||
|
|
|
@ -20,6 +20,14 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Persist SSH keys
|
||||||
|
my.system.persist.files = [
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key"
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key.pub"
|
||||||
|
"/etc/ssh/ssh_host_rsa_key"
|
||||||
|
"/etc/ssh/ssh_host_rsa_key.pub"
|
||||||
|
];
|
||||||
|
|
||||||
# Opens the relevant UDP ports.
|
# Opens the relevant UDP ports.
|
||||||
programs.mosh.enable = true;
|
programs.mosh.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
@ -83,6 +83,9 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# FIXME: backup
|
||||||
|
# FIXME: persistence
|
||||||
|
|
||||||
# NOTE: unfortunately tandoor-recipes does not log connection failures for fail2ban
|
# NOTE: unfortunately tandoor-recipes does not log connection failures for fail2ban
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,6 +100,8 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# FIXME: persistence
|
||||||
|
|
||||||
# NOTE: unfortunately vikunja does not log connection failures for fail2ban
|
# NOTE: unfortunately vikunja does not log connection failures for fail2ban
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,5 +61,7 @@ in
|
||||||
port = cfg.rpcPort;
|
port = cfg.rpcPort;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# FIXME: persistence
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
./language
|
./language
|
||||||
./nix
|
./nix
|
||||||
./packages
|
./packages
|
||||||
|
./persist
|
||||||
./podman
|
./podman
|
||||||
./polkit
|
./polkit
|
||||||
./printing
|
./printing
|
||||||
|
|
|
@ -23,5 +23,9 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
"/var/lib/docker"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
65
modules/nixos/system/persist/default.nix
Normal file
65
modules/nixos/system/persist/default.nix
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
# Ephemeral root configuration
|
||||||
|
{ config, inputs, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.system.persist;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.impermanence.nixosModules.impermanence
|
||||||
|
];
|
||||||
|
|
||||||
|
options.my.system.persist = with lib; {
|
||||||
|
enable = mkEnableOption "stateless system configuration";
|
||||||
|
|
||||||
|
mountPoint = lib.mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "/persistent";
|
||||||
|
example = "/etc/nix/persist";
|
||||||
|
description = ''
|
||||||
|
Which mount point should be used to persist this system's files and
|
||||||
|
directories.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
files = lib.mkOption {
|
||||||
|
type = with types; listOf str;
|
||||||
|
default = [ ];
|
||||||
|
example = [
|
||||||
|
"/etc/nix/id_rsa"
|
||||||
|
];
|
||||||
|
description = ''
|
||||||
|
Additional files in the root to link to persistent storage.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
directories = lib.mkOption {
|
||||||
|
type = with types; listOf str;
|
||||||
|
default = [ ];
|
||||||
|
example = [
|
||||||
|
"/var/lib/libvirt"
|
||||||
|
];
|
||||||
|
description = ''
|
||||||
|
Additional directories in the root to link to persistent storage.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.persistence."${cfg.mountPoint}" = {
|
||||||
|
files = [
|
||||||
|
"/etc/machine-id"
|
||||||
|
]
|
||||||
|
++ cfg.files
|
||||||
|
;
|
||||||
|
|
||||||
|
directories = [
|
||||||
|
"/etc/nixos"
|
||||||
|
"/var/log"
|
||||||
|
"/var/lib/nixos"
|
||||||
|
"/var/lib/systemd/coredump"
|
||||||
|
]
|
||||||
|
++ cfg.directories
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -44,5 +44,9 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.system.persist.directories = [
|
||||||
|
"/var/lib/containers"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue