diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2024-10-30 10:26:09 +0100 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2025-03-14 00:55:50 +0100 |
commit | f1d05e52d9c52b9e9ecb0e76d81e2c0e4645dd9c (patch) | |
tree | 4e8ad2b999e7c9fbadcffe5047a7ed383ae27364 /systems | |
parent | 3695009c683596c1e8edd05fa68777de9eaa4c7f (diff) | |
download | Nix-f1d05e52d9c52b9e9ecb0e76d81e2c0e4645dd9c.tar.gz Nix-f1d05e52d9c52b9e9ecb0e76d81e2c0e4645dd9c.tar.zst Nix-f1d05e52d9c52b9e9ecb0e76d81e2c0e4645dd9c.zip |
Configure borg backup for zoldene
Diffstat (limited to 'systems')
-rw-r--r-- | systems/backup-2/base.nix | 1 | ||||
-rw-r--r-- | systems/backup-2/flake.lock | 2 | ||||
-rw-r--r-- | systems/eldiron/flake.lock | 2 | ||||
-rw-r--r-- | systems/zoldene/base.nix | 3 | ||||
-rw-r--r-- | systems/zoldene/flake.lock | 43 | ||||
-rw-r--r-- | systems/zoldene/flake.nix | 2 | ||||
-rw-r--r-- | systems/zoldene/virtualisation.nix | 18 |
7 files changed, 67 insertions, 4 deletions
diff --git a/systems/backup-2/base.nix b/systems/backup-2/base.nix index 61eecc9..cdaebd3 100644 --- a/systems/backup-2/base.nix +++ b/systems/backup-2/base.nix | |||
@@ -93,6 +93,7 @@ | |||
93 | }; | 93 | }; |
94 | 94 | ||
95 | services.borgBackup.enable = true; | 95 | services.borgBackup.enable = true; |
96 | services.borgBackup.cronSpec = "30 3 * * *"; | ||
96 | 97 | ||
97 | services.rsyncBackup = { | 98 | services.rsyncBackup = { |
98 | mountpoint = "/backup2"; | 99 | mountpoint = "/backup2"; |
diff --git a/systems/backup-2/flake.lock b/systems/backup-2/flake.lock index 83e1cad..c2a087b 100644 --- a/systems/backup-2/flake.lock +++ b/systems/backup-2/flake.lock | |||
@@ -23,7 +23,7 @@ | |||
23 | }, | 23 | }, |
24 | "locked": { | 24 | "locked": { |
25 | "lastModified": 1, | 25 | "lastModified": 1, |
26 | "narHash": "sha256-8fef5NmMlX9+iOpw1/qXEtJ6cAWFvV/SO6YJs1e3D4U=", | 26 | "narHash": "sha256-Kt/2cr2zTi341YxLHDQAc5aYfEyuoVLpZQ9pJFDjwrc=", |
27 | "path": "../../flakes/private/borg_backup", | 27 | "path": "../../flakes/private/borg_backup", |
28 | "type": "path" | 28 | "type": "path" |
29 | }, | 29 | }, |
diff --git a/systems/eldiron/flake.lock b/systems/eldiron/flake.lock index bb961b0..8392aa7 100644 --- a/systems/eldiron/flake.lock +++ b/systems/eldiron/flake.lock | |||
@@ -1985,7 +1985,7 @@ | |||
1985 | }, | 1985 | }, |
1986 | "locked": { | 1986 | "locked": { |
1987 | "lastModified": 1, | 1987 | "lastModified": 1, |
1988 | "narHash": "sha256-8fef5NmMlX9+iOpw1/qXEtJ6cAWFvV/SO6YJs1e3D4U=", | 1988 | "narHash": "sha256-Kt/2cr2zTi341YxLHDQAc5aYfEyuoVLpZQ9pJFDjwrc=", |
1989 | "path": "../../flakes/private/borg_backup", | 1989 | "path": "../../flakes/private/borg_backup", |
1990 | "type": "path" | 1990 | "type": "path" |
1991 | }, | 1991 | }, |
diff --git a/systems/zoldene/base.nix b/systems/zoldene/base.nix index 947859a..187eb11 100644 --- a/systems/zoldene/base.nix +++ b/systems/zoldene/base.nix | |||
@@ -16,6 +16,9 @@ in | |||
16 | ./synapse.nix | 16 | ./synapse.nix |
17 | ]; | 17 | ]; |
18 | 18 | ||
19 | services.borgBackup.enable = true; | ||
20 | services.borgBackup.cronSpec = "0 20 * * *"; | ||
21 | |||
19 | programs.ssh.package = pkgs.openssh; | 22 | programs.ssh.package = pkgs.openssh; |
20 | services.openssh = { | 23 | services.openssh = { |
21 | settings.KbdInteractiveAuthentication = false; | 24 | settings.KbdInteractiveAuthentication = false; |
diff --git a/systems/zoldene/flake.lock b/systems/zoldene/flake.lock index e8389c6..bd8fc48 100644 --- a/systems/zoldene/flake.lock +++ b/systems/zoldene/flake.lock | |||
@@ -68,6 +68,18 @@ | |||
68 | "type": "path" | 68 | "type": "path" |
69 | } | 69 | } |
70 | }, | 70 | }, |
71 | "environment_2": { | ||
72 | "locked": { | ||
73 | "lastModified": 1, | ||
74 | "narHash": "sha256-PQ5694ARRlpj00lk/C/T0UPGhPO+n0TEcLR1mde0s8M=", | ||
75 | "path": "../environment", | ||
76 | "type": "path" | ||
77 | }, | ||
78 | "original": { | ||
79 | "path": "../environment", | ||
80 | "type": "path" | ||
81 | } | ||
82 | }, | ||
71 | "flake-compat": { | 83 | "flake-compat": { |
72 | "flake": false, | 84 | "flake": false, |
73 | "locked": { | 85 | "locked": { |
@@ -433,6 +445,22 @@ | |||
433 | "type": "github" | 445 | "type": "github" |
434 | } | 446 | } |
435 | }, | 447 | }, |
448 | "private-borg-backup": { | ||
449 | "inputs": { | ||
450 | "environment": "environment", | ||
451 | "secrets": "secrets" | ||
452 | }, | ||
453 | "locked": { | ||
454 | "lastModified": 1, | ||
455 | "narHash": "sha256-Kt/2cr2zTi341YxLHDQAc5aYfEyuoVLpZQ9pJFDjwrc=", | ||
456 | "path": "../../flakes/private/borg_backup", | ||
457 | "type": "path" | ||
458 | }, | ||
459 | "original": { | ||
460 | "path": "../../flakes/private/borg_backup", | ||
461 | "type": "path" | ||
462 | } | ||
463 | }, | ||
436 | "private-environment": { | 464 | "private-environment": { |
437 | "locked": { | 465 | "locked": { |
438 | "lastModified": 1, | 466 | "lastModified": 1, |
@@ -448,7 +476,7 @@ | |||
448 | "private-system": { | 476 | "private-system": { |
449 | "inputs": { | 477 | "inputs": { |
450 | "backports": "backports", | 478 | "backports": "backports", |
451 | "environment": "environment", | 479 | "environment": "environment_2", |
452 | "mypackages": "mypackages", | 480 | "mypackages": "mypackages", |
453 | "myuids": "myuids", | 481 | "myuids": "myuids", |
454 | "secrets-public": "secrets-public" | 482 | "secrets-public": "secrets-public" |
@@ -481,11 +509,24 @@ | |||
481 | "impermanence": "impermanence", | 509 | "impermanence": "impermanence", |
482 | "my-lib": "my-lib", | 510 | "my-lib": "my-lib", |
483 | "nixpkgs": "nixpkgs_5", | 511 | "nixpkgs": "nixpkgs_5", |
512 | "private-borg-backup": "private-borg-backup", | ||
484 | "private-environment": "private-environment", | 513 | "private-environment": "private-environment", |
485 | "private-system": "private-system", | 514 | "private-system": "private-system", |
486 | "public-secrets": "public-secrets" | 515 | "public-secrets": "public-secrets" |
487 | } | 516 | } |
488 | }, | 517 | }, |
518 | "secrets": { | ||
519 | "locked": { | ||
520 | "lastModified": 1, | ||
521 | "narHash": "sha256-5AakznhrJFmwCD7lr4JEh55MtdAJL6WA/YuBks6ISSE=", | ||
522 | "path": "../../secrets", | ||
523 | "type": "path" | ||
524 | }, | ||
525 | "original": { | ||
526 | "path": "../../secrets", | ||
527 | "type": "path" | ||
528 | } | ||
529 | }, | ||
489 | "secrets-public": { | 530 | "secrets-public": { |
490 | "locked": { | 531 | "locked": { |
491 | "lastModified": 1, | 532 | "lastModified": 1, |
diff --git a/systems/zoldene/flake.nix b/systems/zoldene/flake.nix index 7b7b4b7..52db1c4 100644 --- a/systems/zoldene/flake.nix +++ b/systems/zoldene/flake.nix | |||
@@ -6,6 +6,7 @@ | |||
6 | public-secrets.url = "path:../../flakes/secrets"; | 6 | public-secrets.url = "path:../../flakes/secrets"; |
7 | private-environment.url = "path:../../flakes/private/environment"; | 7 | private-environment.url = "path:../../flakes/private/environment"; |
8 | private-system.url = "path:../../flakes/private/system"; | 8 | private-system.url = "path:../../flakes/private/system"; |
9 | private-borg-backup.url = "path:../../flakes/private/borg_backup"; | ||
9 | }; | 10 | }; |
10 | outputs = inputs@{ self, nixpkgs, my-lib, ... }: | 11 | outputs = inputs@{ self, nixpkgs, my-lib, ... }: |
11 | my-lib.lib.mkColmenaFlake { | 12 | my-lib.lib.mkColmenaFlake { |
@@ -25,6 +26,7 @@ | |||
25 | 26 | ||
26 | secrets = public-secrets.nixosModule; | 27 | secrets = public-secrets.nixosModule; |
27 | 28 | ||
29 | borg-backup = private-borg-backup.nixosModule; | ||
28 | environment = private-environment.nixosModule; | 30 | environment = private-environment.nixosModule; |
29 | system = private-system.nixosModule; | 31 | system = private-system.nixosModule; |
30 | }; | 32 | }; |
diff --git a/systems/zoldene/virtualisation.nix b/systems/zoldene/virtualisation.nix index d2212fe..424f43f 100644 --- a/systems/zoldene/virtualisation.nix +++ b/systems/zoldene/virtualisation.nix | |||
@@ -6,6 +6,14 @@ | |||
6 | virtualisation.docker.enable = true; | 6 | virtualisation.docker.enable = true; |
7 | disko.devices.zpool.zfast.datasets."root/persist/var/lib/docker" = | 7 | disko.devices.zpool.zfast.datasets."root/persist/var/lib/docker" = |
8 | { type = "zfs_fs"; mountpoint = "/persist/zfast/var/lib/docker"; options.mountpoint = "legacy"; }; | 8 | { type = "zfs_fs"; mountpoint = "/persist/zfast/var/lib/docker"; options.mountpoint = "legacy"; }; |
9 | systemd.services.docker.after = [ | ||
10 | "var-lib-docker.mount" | ||
11 | "persist-zfast-var-lib-docker.mount" | ||
12 | ]; | ||
13 | systemd.services.docker.unitConfig.BindsTo = [ | ||
14 | "var-lib-docker.mount" | ||
15 | "persist-zfast-var-lib-docker.mount" | ||
16 | ]; | ||
9 | 17 | ||
10 | ### Enable LXC | 18 | ### Enable LXC |
11 | disko.devices.zpool.zfast.datasets."root/persist/var/lib/lxc" = | 19 | disko.devices.zpool.zfast.datasets."root/persist/var/lib/lxc" = |
@@ -14,12 +22,21 @@ | |||
14 | enable = true; | 22 | enable = true; |
15 | lxcfs.enable = true; | 23 | lxcfs.enable = true; |
16 | }; | 24 | }; |
25 | systemd.services.lxc.after = [ | ||
26 | "var-lib-lxc.mount" | ||
27 | "persist-zfast-var-lib-lxc.mount" | ||
28 | ]; | ||
29 | systemd.services.lxc.unitConfig.BindsTo = [ | ||
30 | "var-lib-lxc.mount" | ||
31 | "persist-zfast-var-lib-lxc.mount" | ||
32 | ]; | ||
17 | 33 | ||
18 | ### Enable libvirtd | 34 | ### Enable libvirtd |
19 | virtualisation.libvirtd = { | 35 | virtualisation.libvirtd = { |
20 | enable = true; | 36 | enable = true; |
21 | qemu.package = pkgs-no-overlay.qemu; | 37 | qemu.package = pkgs-no-overlay.qemu; |
22 | }; | 38 | }; |
39 | # No persistence for libvirtd: config is supposed to be persisted via config | ||
23 | 40 | ||
24 | ### Persistence for LXC / Docker | 41 | ### Persistence for LXC / Docker |
25 | environment.persistence."/persist/zfast".directories = [ | 42 | environment.persistence."/persist/zfast".directories = [ |
@@ -43,4 +60,3 @@ | |||
43 | "net.ipv4.conf.default.forwarding" = true; | 60 | "net.ipv4.conf.default.forwarding" = true; |
44 | }; | 61 | }; |
45 | } | 62 | } |
46 | |||