From 1c90c0dd73b5b74612be736ac8deeaa4547e2c26 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Mon, 10 Jun 2024 13:13:11 +0200 Subject: [PATCH] Migrate to borg backup --- deploy/flake.lock | 140 ++++----- flake.lock | 140 ++++----- flakes/flake.lock | 138 ++++----- flakes/private/chatons/flake.lock | 2 +- flakes/private/environment/flake.nix | 41 ++- flakes/private/mail-relay/flake.lock | 2 +- flakes/private/milters/flake.lock | 2 +- flakes/private/monitoring/flake.lock | 2 +- flakes/private/opendmarc/flake.lock | 2 +- flakes/private/ssh/flake.lock | 2 +- flakes/private/system/flake.lock | 2 +- .../databases/mariadb_replication.nix | 1 - systems/backup-2/flake.lock | 26 +- systems/dilion/flake.lock | 10 +- systems/eldiron/base.nix | 14 + systems/eldiron/borg_backup.nix | 241 +++++++++++++++ .../eldiron/databases/openldap/default.nix | 3 + systems/eldiron/duply_backup.nix | 278 +++++++++++++----- systems/eldiron/flake.lock | 26 +- systems/eldiron/ftp.nix | 4 + systems/eldiron/gitolite/default.nix | 16 + systems/eldiron/pub/default.nix | 3 + systems/eldiron/websites/cloud/default.nix | 9 + systems/eldiron/websites/commento/default.nix | 3 + systems/eldiron/websites/cryptpad/default.nix | 3 + systems/eldiron/websites/tools/default.nix | 15 + systems/monitoring-1/flake.lock | 18 +- systems/monitoring-1/monitoring-master.nix | 6 +- systems/quatresaisons/flake.lock | 10 +- systems/zoldene/flake.lock | 6 +- 30 files changed, 817 insertions(+), 348 deletions(-) create mode 100644 systems/eldiron/borg_backup.nix diff --git a/deploy/flake.lock b/deploy/flake.lock index 6242197..eb767b5 100644 --- a/deploy/flake.lock +++ b/deploy/flake.lock @@ -150,7 +150,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -165,7 +165,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -565,7 +565,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -577,7 +577,7 @@ "environment_10": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -589,7 +589,7 @@ "environment_11": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -601,7 +601,7 @@ "environment_12": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -613,7 +613,7 @@ "environment_13": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -625,7 +625,7 @@ "environment_14": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -637,7 +637,7 @@ "environment_15": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -649,7 +649,7 @@ "environment_16": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -661,7 +661,7 @@ "environment_17": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -673,7 +673,7 @@ "environment_18": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -685,7 +685,7 @@ "environment_19": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -697,7 +697,7 @@ "environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -709,7 +709,7 @@ "environment_20": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -721,7 +721,7 @@ "environment_21": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -733,7 +733,7 @@ "environment_22": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -745,7 +745,7 @@ "environment_23": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -757,7 +757,7 @@ "environment_24": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -769,7 +769,7 @@ "environment_25": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -781,7 +781,7 @@ "environment_26": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -793,7 +793,7 @@ "environment_27": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -805,7 +805,7 @@ "environment_28": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -817,7 +817,7 @@ "environment_29": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -829,7 +829,7 @@ "environment_3": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -841,7 +841,7 @@ "environment_30": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -853,7 +853,7 @@ "environment_31": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -865,7 +865,7 @@ "environment_32": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -877,7 +877,7 @@ "environment_4": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -889,7 +889,7 @@ "environment_5": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -901,7 +901,7 @@ "environment_6": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -913,7 +913,7 @@ "environment_7": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -925,7 +925,7 @@ "environment_8": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -937,7 +937,7 @@ "environment_9": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -2708,7 +2708,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "../../flakes/private/mail-relay", "type": "path" }, @@ -2724,7 +2724,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "../../flakes/private/mail-relay", "type": "path" }, @@ -2783,7 +2783,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-bmglD7CvrNkfOtMTTLlDAGhmY4YPcZD3Qrxv0CBk5B8=", + "narHash": "sha256-SDGk4cPZd8Io+ludWjpvu+LCK24STcYb77x9wMOIomQ=", "path": "../flakes", "type": "path" }, @@ -2876,7 +2876,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "../../flakes/private/milters", "type": "path" }, @@ -2894,7 +2894,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -2912,7 +2912,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -2930,7 +2930,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -2948,7 +2948,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -3832,7 +3832,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-90nIfmXTv1DCJThIjtlNtnkMxefYJMHLp0CHmIekgDc=", + "narHash": "sha256-TxR75+H0GF5b7jczbvnQi1FltOmOQctMaW5o2Zd7aUI=", "path": "../systems/backup-2", "type": "path" }, @@ -3855,7 +3855,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-kUhSjG2OtbZMeIEykJGKUC2RovZ1prxXc8aIckE0auI=", + "narHash": "sha256-w85YTOSyrw/C1rEp0O9jAONCKbuiHej3Q95OU21WNKo=", "path": "../systems/dilion", "type": "path" }, @@ -3903,7 +3903,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-20vFVAd2/24Q0Lewy0eNXf94eTY96cFE8mPeKtvT5jY=", + "narHash": "sha256-rJy4sjNt6TIB+FhVEbAWEXcRq0vm0IV0PiDJKy9BHC0=", "path": "../systems/eldiron", "type": "path" }, @@ -3929,7 +3929,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-BHpsgdt0NuJHTVvfTrsnNlOZdSBtPy/cTidd8sEIhx4=", + "narHash": "sha256-yfTJOJJc+bOYgXNcY1ardOEfpT+lRSojgiHi68LKgqU=", "path": "../systems/monitoring-1", "type": "path" }, @@ -3954,7 +3954,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-lT2cXjUGDFOzRtqF4p0oyFCR4gv+VEjthk4FMbOzrL0=", + "narHash": "sha256-cbrcKbfMRDK4ukn4FpwwfVNtK0JZF0pr8s1PFm1AEyY=", "path": "../systems/quatresaisons", "type": "path" }, @@ -3974,7 +3974,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Q+U6JxtY67jVPjuzfwrjSGmIM73kIRrjKm0ihbUxPGQ=", + "narHash": "sha256-2w+JMDIUudMpqNQ5IJhrSRlY8EDAOaf+sBfYUSGfepY=", "path": "../systems/zoldene", "type": "path" }, @@ -7141,7 +7141,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "../../flakes/private/opendmarc", "type": "path" }, @@ -7480,7 +7480,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -7492,7 +7492,7 @@ "private-environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -7504,7 +7504,7 @@ "private-environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -7523,7 +7523,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "../../flakes/private/milters", "type": "path" }, @@ -7541,7 +7541,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -7576,7 +7576,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "../../flakes/private/opendmarc", "type": "path" }, @@ -7637,7 +7637,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-gjapO6CZFeLMHUlhqBVZu5P+IJzJaPu4pnuTep4ZSuM=", + "narHash": "sha256-uqftr7R3cVYwWuu8Xl6VbPVL2pqapv1bfmMJpq3LnZ4=", "path": "../../flakes/private/ssh", "type": "path" }, @@ -7656,7 +7656,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -7675,7 +7675,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -8347,7 +8347,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "./private/chatons", "type": "path" }, @@ -8359,7 +8359,7 @@ "s-private-environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "./private/environment", "type": "path" }, @@ -8375,7 +8375,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "./private/mail-relay", "type": "path" }, @@ -8394,7 +8394,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "./private/milters", "type": "path" }, @@ -8412,7 +8412,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "./private/monitoring", "type": "path" }, @@ -8447,7 +8447,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "./private/opendmarc", "type": "path" }, @@ -8508,7 +8508,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-gjapO6CZFeLMHUlhqBVZu5P+IJzJaPu4pnuTep4ZSuM=", + "narHash": "sha256-uqftr7R3cVYwWuu8Xl6VbPVL2pqapv1bfmMJpq3LnZ4=", "path": "./private/ssh", "type": "path" }, @@ -8527,7 +8527,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "./private/system", "type": "path" }, @@ -9140,7 +9140,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -9159,7 +9159,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -9178,7 +9178,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -9197,7 +9197,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, diff --git a/flake.lock b/flake.lock index 260f1e4..f252167 100644 --- a/flake.lock +++ b/flake.lock @@ -150,7 +150,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -165,7 +165,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -565,7 +565,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -577,7 +577,7 @@ "environment_10": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -589,7 +589,7 @@ "environment_11": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -601,7 +601,7 @@ "environment_12": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -613,7 +613,7 @@ "environment_13": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -625,7 +625,7 @@ "environment_14": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -637,7 +637,7 @@ "environment_15": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -649,7 +649,7 @@ "environment_16": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -661,7 +661,7 @@ "environment_17": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -673,7 +673,7 @@ "environment_18": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -685,7 +685,7 @@ "environment_19": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -697,7 +697,7 @@ "environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -709,7 +709,7 @@ "environment_20": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -721,7 +721,7 @@ "environment_21": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -733,7 +733,7 @@ "environment_22": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -745,7 +745,7 @@ "environment_23": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -757,7 +757,7 @@ "environment_24": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -769,7 +769,7 @@ "environment_25": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -781,7 +781,7 @@ "environment_26": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -793,7 +793,7 @@ "environment_27": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -805,7 +805,7 @@ "environment_28": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -817,7 +817,7 @@ "environment_29": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -829,7 +829,7 @@ "environment_3": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -841,7 +841,7 @@ "environment_30": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -853,7 +853,7 @@ "environment_31": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -865,7 +865,7 @@ "environment_32": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -877,7 +877,7 @@ "environment_4": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -889,7 +889,7 @@ "environment_5": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -901,7 +901,7 @@ "environment_6": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -913,7 +913,7 @@ "environment_7": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -925,7 +925,7 @@ "environment_8": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -937,7 +937,7 @@ "environment_9": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -2664,7 +2664,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-bmglD7CvrNkfOtMTTLlDAGhmY4YPcZD3Qrxv0CBk5B8=", + "narHash": "sha256-SDGk4cPZd8Io+ludWjpvu+LCK24STcYb77x9wMOIomQ=", "path": "./flakes", "type": "path" }, @@ -2783,7 +2783,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "../../flakes/private/mail-relay", "type": "path" }, @@ -2799,7 +2799,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "../../flakes/private/mail-relay", "type": "path" }, @@ -2892,7 +2892,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "../../flakes/private/milters", "type": "path" }, @@ -2910,7 +2910,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -2928,7 +2928,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -2946,7 +2946,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -2964,7 +2964,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -3848,7 +3848,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-90nIfmXTv1DCJThIjtlNtnkMxefYJMHLp0CHmIekgDc=", + "narHash": "sha256-TxR75+H0GF5b7jczbvnQi1FltOmOQctMaW5o2Zd7aUI=", "path": "../systems/backup-2", "type": "path" }, @@ -3871,7 +3871,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-kUhSjG2OtbZMeIEykJGKUC2RovZ1prxXc8aIckE0auI=", + "narHash": "sha256-w85YTOSyrw/C1rEp0O9jAONCKbuiHej3Q95OU21WNKo=", "path": "../systems/dilion", "type": "path" }, @@ -3919,7 +3919,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-20vFVAd2/24Q0Lewy0eNXf94eTY96cFE8mPeKtvT5jY=", + "narHash": "sha256-rJy4sjNt6TIB+FhVEbAWEXcRq0vm0IV0PiDJKy9BHC0=", "path": "../systems/eldiron", "type": "path" }, @@ -3945,7 +3945,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-BHpsgdt0NuJHTVvfTrsnNlOZdSBtPy/cTidd8sEIhx4=", + "narHash": "sha256-yfTJOJJc+bOYgXNcY1ardOEfpT+lRSojgiHi68LKgqU=", "path": "../systems/monitoring-1", "type": "path" }, @@ -3970,7 +3970,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-lT2cXjUGDFOzRtqF4p0oyFCR4gv+VEjthk4FMbOzrL0=", + "narHash": "sha256-cbrcKbfMRDK4ukn4FpwwfVNtK0JZF0pr8s1PFm1AEyY=", "path": "../systems/quatresaisons", "type": "path" }, @@ -3990,7 +3990,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Q+U6JxtY67jVPjuzfwrjSGmIM73kIRrjKm0ihbUxPGQ=", + "narHash": "sha256-2w+JMDIUudMpqNQ5IJhrSRlY8EDAOaf+sBfYUSGfepY=", "path": "../systems/zoldene", "type": "path" }, @@ -7157,7 +7157,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "../../flakes/private/opendmarc", "type": "path" }, @@ -7496,7 +7496,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -7508,7 +7508,7 @@ "private-environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -7520,7 +7520,7 @@ "private-environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -7539,7 +7539,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "../../flakes/private/milters", "type": "path" }, @@ -7557,7 +7557,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -7592,7 +7592,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "../../flakes/private/opendmarc", "type": "path" }, @@ -7653,7 +7653,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-gjapO6CZFeLMHUlhqBVZu5P+IJzJaPu4pnuTep4ZSuM=", + "narHash": "sha256-uqftr7R3cVYwWuu8Xl6VbPVL2pqapv1bfmMJpq3LnZ4=", "path": "../../flakes/private/ssh", "type": "path" }, @@ -7672,7 +7672,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -7691,7 +7691,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -8363,7 +8363,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "./private/chatons", "type": "path" }, @@ -8375,7 +8375,7 @@ "s-private-environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "./private/environment", "type": "path" }, @@ -8391,7 +8391,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "./private/mail-relay", "type": "path" }, @@ -8410,7 +8410,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "./private/milters", "type": "path" }, @@ -8428,7 +8428,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "./private/monitoring", "type": "path" }, @@ -8463,7 +8463,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "./private/opendmarc", "type": "path" }, @@ -8524,7 +8524,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-gjapO6CZFeLMHUlhqBVZu5P+IJzJaPu4pnuTep4ZSuM=", + "narHash": "sha256-uqftr7R3cVYwWuu8Xl6VbPVL2pqapv1bfmMJpq3LnZ4=", "path": "./private/ssh", "type": "path" }, @@ -8543,7 +8543,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "./private/system", "type": "path" }, @@ -9149,7 +9149,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -9168,7 +9168,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -9187,7 +9187,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -9206,7 +9206,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, diff --git a/flakes/flake.lock b/flakes/flake.lock index 991a73b..b954e98 100644 --- a/flakes/flake.lock +++ b/flakes/flake.lock @@ -150,7 +150,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -165,7 +165,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -545,7 +545,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -557,7 +557,7 @@ "environment_10": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -569,7 +569,7 @@ "environment_11": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -581,7 +581,7 @@ "environment_12": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -593,7 +593,7 @@ "environment_13": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -605,7 +605,7 @@ "environment_14": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -617,7 +617,7 @@ "environment_15": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -629,7 +629,7 @@ "environment_16": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -641,7 +641,7 @@ "environment_17": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -653,7 +653,7 @@ "environment_18": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -665,7 +665,7 @@ "environment_19": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -677,7 +677,7 @@ "environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -689,7 +689,7 @@ "environment_20": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -701,7 +701,7 @@ "environment_21": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -713,7 +713,7 @@ "environment_22": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -725,7 +725,7 @@ "environment_23": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -737,7 +737,7 @@ "environment_24": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -749,7 +749,7 @@ "environment_25": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -761,7 +761,7 @@ "environment_26": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -773,7 +773,7 @@ "environment_27": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -785,7 +785,7 @@ "environment_28": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -797,7 +797,7 @@ "environment_29": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -809,7 +809,7 @@ "environment_3": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -821,7 +821,7 @@ "environment_30": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -833,7 +833,7 @@ "environment_31": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -845,7 +845,7 @@ "environment_32": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -857,7 +857,7 @@ "environment_4": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -869,7 +869,7 @@ "environment_5": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -881,7 +881,7 @@ "environment_6": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -893,7 +893,7 @@ "environment_7": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -905,7 +905,7 @@ "environment_8": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -917,7 +917,7 @@ "environment_9": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -2688,7 +2688,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "../../flakes/private/mail-relay", "type": "path" }, @@ -2704,7 +2704,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "../../flakes/private/mail-relay", "type": "path" }, @@ -2797,7 +2797,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "../../flakes/private/milters", "type": "path" }, @@ -2815,7 +2815,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -2833,7 +2833,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -2851,7 +2851,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -2869,7 +2869,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -3753,7 +3753,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-90nIfmXTv1DCJThIjtlNtnkMxefYJMHLp0CHmIekgDc=", + "narHash": "sha256-TxR75+H0GF5b7jczbvnQi1FltOmOQctMaW5o2Zd7aUI=", "path": "../systems/backup-2", "type": "path" }, @@ -3776,7 +3776,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-kUhSjG2OtbZMeIEykJGKUC2RovZ1prxXc8aIckE0auI=", + "narHash": "sha256-w85YTOSyrw/C1rEp0O9jAONCKbuiHej3Q95OU21WNKo=", "path": "../systems/dilion", "type": "path" }, @@ -3824,7 +3824,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-20vFVAd2/24Q0Lewy0eNXf94eTY96cFE8mPeKtvT5jY=", + "narHash": "sha256-rJy4sjNt6TIB+FhVEbAWEXcRq0vm0IV0PiDJKy9BHC0=", "path": "../systems/eldiron", "type": "path" }, @@ -3850,7 +3850,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-BHpsgdt0NuJHTVvfTrsnNlOZdSBtPy/cTidd8sEIhx4=", + "narHash": "sha256-yfTJOJJc+bOYgXNcY1ardOEfpT+lRSojgiHi68LKgqU=", "path": "../systems/monitoring-1", "type": "path" }, @@ -3875,7 +3875,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-lT2cXjUGDFOzRtqF4p0oyFCR4gv+VEjthk4FMbOzrL0=", + "narHash": "sha256-cbrcKbfMRDK4ukn4FpwwfVNtK0JZF0pr8s1PFm1AEyY=", "path": "../systems/quatresaisons", "type": "path" }, @@ -3895,7 +3895,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Q+U6JxtY67jVPjuzfwrjSGmIM73kIRrjKm0ihbUxPGQ=", + "narHash": "sha256-2w+JMDIUudMpqNQ5IJhrSRlY8EDAOaf+sBfYUSGfepY=", "path": "../systems/zoldene", "type": "path" }, @@ -6984,7 +6984,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "../../flakes/private/opendmarc", "type": "path" }, @@ -7323,7 +7323,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -7335,7 +7335,7 @@ "private-environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -7347,7 +7347,7 @@ "private-environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -7366,7 +7366,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "../../flakes/private/milters", "type": "path" }, @@ -7384,7 +7384,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -7419,7 +7419,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "../../flakes/private/opendmarc", "type": "path" }, @@ -7480,7 +7480,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-gjapO6CZFeLMHUlhqBVZu5P+IJzJaPu4pnuTep4ZSuM=", + "narHash": "sha256-uqftr7R3cVYwWuu8Xl6VbPVL2pqapv1bfmMJpq3LnZ4=", "path": "../../flakes/private/ssh", "type": "path" }, @@ -7499,7 +7499,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -7518,7 +7518,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -8229,7 +8229,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "./private/chatons", "type": "path" }, @@ -8241,7 +8241,7 @@ "s-private-environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "./private/environment", "type": "path" }, @@ -8257,7 +8257,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "./private/mail-relay", "type": "path" }, @@ -8276,7 +8276,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "./private/milters", "type": "path" }, @@ -8294,7 +8294,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "./private/monitoring", "type": "path" }, @@ -8329,7 +8329,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "./private/opendmarc", "type": "path" }, @@ -8390,7 +8390,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-gjapO6CZFeLMHUlhqBVZu5P+IJzJaPu4pnuTep4ZSuM=", + "narHash": "sha256-uqftr7R3cVYwWuu8Xl6VbPVL2pqapv1bfmMJpq3LnZ4=", "path": "./private/ssh", "type": "path" }, @@ -8409,7 +8409,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "./private/system", "type": "path" }, @@ -9015,7 +9015,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -9034,7 +9034,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -9053,7 +9053,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, @@ -9072,7 +9072,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, diff --git a/flakes/private/chatons/flake.lock b/flakes/private/chatons/flake.lock index 5e84cc2..2925f6c 100644 --- a/flakes/private/chatons/flake.lock +++ b/flakes/private/chatons/flake.lock @@ -3,7 +3,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, diff --git a/flakes/private/environment/flake.nix b/flakes/private/environment/flake.nix index 24cbb7a..49b203e 100644 --- a/flakes/private/environment/flake.nix +++ b/flakes/private/environment/flake.nix @@ -369,6 +369,36 @@ }; }; }; + borg_backup = mkOption { + description = '' + Remote backup with borg/borgmatic + ''; + type = submodule { + options = { + password = mkOption { type = str; description = "Password for encrypting files"; }; + remotes = mkOption { + type = attrsOf (submodule { + options = { + remote = mkOption { + type = functionTo str; + example = literalExample '' + bucket: "ssh://some_host/${bucket}"; + ''; + description = '' + Function. + Takes a bucket name as argument and returns a url + ''; + }; + sshRsyncPort = mkOption { type = str; default = "22"; description = "SSH port"; }; + sshRsyncHost = mkOption { type = nullOr str; default = null; description = "SSH host"; }; + + sshKnownHosts = mkOption { type = nullOr str; default = null; description = "Ssh known hosts"; }; + }; + }); + }; + }; + }; + }; backup = mkOption { description = '' Remote backup with duplicity @@ -379,6 +409,9 @@ remotes = mkOption { type = attrsOf (submodule { options = { + remote_type = mkOption { + type = enum [ "s3" "rsync" ]; + }; remote = mkOption { type = functionTo str; example = literalExample '' @@ -389,8 +422,12 @@ Takes a bucket name as argument and returns a url ''; }; - accessKeyId = mkOption { type = str; description = "Remote access-key"; }; - secretAccessKey = mkOption { type = str; description = "Remote access secret"; }; + sshRsyncPort = mkOption { type = str; default = "22"; description = "SSH port for rsync"; }; + sshRsyncHost = mkOption { type = nullOr str; default = null; description = "SSH host for rsync"; }; + + sshKnownHosts = mkOption { type = nullOr str; default = null; description = "Ssh known hosts"; }; + s3AccessKeyId = mkOption { type = nullOr str; default = null; description = "Remote access-key"; }; + s3SecretAccessKey = mkOption { type = nullOr str; default = null; description = "Remote access secret"; }; }; }); }; diff --git a/flakes/private/mail-relay/flake.lock b/flakes/private/mail-relay/flake.lock index d1447b7..69406f1 100644 --- a/flakes/private/mail-relay/flake.lock +++ b/flakes/private/mail-relay/flake.lock @@ -3,7 +3,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, diff --git a/flakes/private/milters/flake.lock b/flakes/private/milters/flake.lock index e2366fa..31d3d4c 100644 --- a/flakes/private/milters/flake.lock +++ b/flakes/private/milters/flake.lock @@ -3,7 +3,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, diff --git a/flakes/private/monitoring/flake.lock b/flakes/private/monitoring/flake.lock index e76ca08..ed94c2b 100644 --- a/flakes/private/monitoring/flake.lock +++ b/flakes/private/monitoring/flake.lock @@ -3,7 +3,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, diff --git a/flakes/private/opendmarc/flake.lock b/flakes/private/opendmarc/flake.lock index a2eea1a..e9a1014 100644 --- a/flakes/private/opendmarc/flake.lock +++ b/flakes/private/opendmarc/flake.lock @@ -3,7 +3,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, diff --git a/flakes/private/ssh/flake.lock b/flakes/private/ssh/flake.lock index d1447b7..69406f1 100644 --- a/flakes/private/ssh/flake.lock +++ b/flakes/private/ssh/flake.lock @@ -3,7 +3,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, diff --git a/flakes/private/system/flake.lock b/flakes/private/system/flake.lock index 49fb3b5..ec1b023 100644 --- a/flakes/private/system/flake.lock +++ b/flakes/private/system/flake.lock @@ -19,7 +19,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, diff --git a/systems/backup-2/databases/mariadb_replication.nix b/systems/backup-2/databases/mariadb_replication.nix index 6616de0..f113219 100644 --- a/systems/backup-2/databases/mariadb_replication.nix +++ b/systems/backup-2/databases/mariadb_replication.nix @@ -161,7 +161,6 @@ in --gtid \ --master-data \ --flush-privileges \ - --ignore-database=netdata \ --all-databases > $filename ${pkgs.gzip}/bin/gzip $filename ''; diff --git a/systems/backup-2/flake.lock b/systems/backup-2/flake.lock index 7d5992e..645214d 100644 --- a/systems/backup-2/flake.lock +++ b/systems/backup-2/flake.lock @@ -22,7 +22,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -74,7 +74,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -86,7 +86,7 @@ "environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -98,7 +98,7 @@ "environment_3": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -110,7 +110,7 @@ "environment_4": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -122,7 +122,7 @@ "environment_5": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -134,7 +134,7 @@ "environment_6": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -146,7 +146,7 @@ "environment_7": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -352,7 +352,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "../../flakes/private/mail-relay", "type": "path" }, @@ -371,7 +371,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "../../flakes/private/milters", "type": "path" }, @@ -389,7 +389,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -925,7 +925,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "../../flakes/private/opendmarc", "type": "path" }, @@ -1104,7 +1104,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, diff --git a/systems/dilion/flake.lock b/systems/dilion/flake.lock index ce8bb8f..a20d25b 100644 --- a/systems/dilion/flake.lock +++ b/systems/dilion/flake.lock @@ -59,7 +59,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -71,7 +71,7 @@ "environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -83,7 +83,7 @@ "environment_3": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -207,7 +207,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -599,7 +599,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, diff --git a/systems/eldiron/base.nix b/systems/eldiron/base.nix index a77a438..5308ddb 100644 --- a/systems/eldiron/base.nix +++ b/systems/eldiron/base.nix @@ -118,6 +118,7 @@ ./buildbot ./coturn.nix ./dns.nix + ./borg_backup.nix ./duply_backup.nix ./gemini ./gitolite @@ -132,6 +133,19 @@ ./vpn ]; + services.borgBackup.enable = true; + services.borgBackup.profiles.global = { + bucket = "global"; + hash = false; + remotes = [ "attilax" ]; + ignoredPaths = [ + "udev" + "portables" + "machines" + "nixos" + "nixos-containers" + ]; + }; myServices.buildbot.enable = true; myServices.databases.enable = true; myServices.gitolite.enable = true; diff --git a/systems/eldiron/borg_backup.nix b/systems/eldiron/borg_backup.nix new file mode 100644 index 0000000..9956a46 --- /dev/null +++ b/systems/eldiron/borg_backup.nix @@ -0,0 +1,241 @@ +{ lib, pkgs, config, name, ... }: + +let + cfg = config.myEnv.borg_backup; + varDir = "/var/lib/borgbackup"; + borg_args = "--encryption repokey --make-parent-dirs init create prune compact check"; + borg_backup_full_with_ignored = pkgs.writeScriptBin "borg_full_with_ignored" '' + #!${pkgs.stdenv.shell} + + if [ -z "$1" -o "$1" = "-h" -o "$1" = "--help" ]; then + echo "borg_full_with_ignored /path/to/borgmatic.yaml" + echo "Does a full backup including directories with .duplicity-ignore" + exit 1 + fi + ${pkgs.borgmatic}/bin/borgmatic -c "$1" --override 'storage.archive_name_format="{hostname}-with-ignored-{now:%Y-%m-%dT%H:%M:%S.%f}"' --override 'location.exclude_if_present=[]' ${borg_args} + ''; + borg_backup = pkgs.writeScriptBin "borg_backup" '' + #!${pkgs.stdenv.shell} + + declare -a profiles + profiles=() + ${builtins.concatStringsSep "\n" (lib.flatten (lib.mapAttrsToList (k: v: map (remote: [ + ''profiles+=("${remote}_${k}")'' + ]) v.remotes) config.services.borgBackup.profiles))} + + if [ -f "${varDir}/last_backup_profile" ]; then + last_backup=$(cat ${varDir}/last_backup_profile) + for i in "''${!profiles[@]}"; do + if [[ "''${profiles[$i]}" = "$last_backup" ]]; then + break + fi + done + ((i+=1)) + profiles=("''${profiles[@]:$i}" "''${profiles[@]:0:$i}") + fi + + # timeout in minutes + timeout="''${1:-180}" + timeout_timestamp=$(date +%s -d "$timeout minutes") + for profile in "''${profiles[@]}"; do + if [ $(date +%s -d "now") -ge "$timeout_timestamp" ]; then + break + fi + + touch "${varDir}/$profile.log" + ${pkgs.borgmatic}/bin/borgmatic -c "${config.secrets.location}/borg_backup/$profile/borgmatic.yaml" ${borg_args} >> ${varDir}/$profile.log + [[ $? = 0 ]] || echo -e "Error when doing backup for $profile, see above or logs in ${varDir}/$profile.log\n---------------------------------------" >&2 + echo "$profile" > ${varDir}/last_backup_profile + done + ''; + + check_backups = pkgs.writeScriptBin "borg_list_not_backuped" '' + #!${pkgs.stdenv.shell} + + do_check() { + local dir="$1" path ignored_path + find "$dir" -mindepth 1 -maxdepth 1 | while IFS= read -r path; do + if ${pkgs.gnugrep}/bin/grep -qFx "$path" ${config.secrets.fullPaths."borg_backup/backuped_list"}; then + continue + elif ${pkgs.gnugrep}/bin/grep -q "^$path/" ${config.secrets.fullPaths."borg_backup/backuped_list"}; then + do_check "$path" + else + while IFS= read -r ignored_path; do + if [[ "$path" =~ ^$ignored_path$ ]]; then + continue 2 + fi + done < ${config.secrets.fullPaths."borg_backup/ignored_list"} + printf '%s\n' "$path" + fi + done + } + + do_check /var/lib + ''; + borgProfile = profile: remote: bucket: builtins.toJSON { + location = { + source_directories = map (p: "${profile.rootDir}/${p}") profile.includedPaths; + repositories = [ + { path = cfg.remotes.${remote}.remote bucket; label = "backupserver"; } + ]; + one_file_system = false; + exclude_if_present = [".duplicity-ignore"]; + source_directories_must_exist = profile.directoriesMustExist; + borgmatic_source_directory = "${varDir}/${profile.bucket}/.borgmatic"; + }; + storage = { + encryption_passphrase = profile.password; + ssh_command = "ssh -i ${config.secrets.fullPaths."borg_backup/identity"}"; + compression = "zlib"; + borg_base_directory = "${varDir}/${profile.bucket}"; + }; + retention = { + keep_within = "10d"; + keep_daily = 30; + }; + }; +in +{ + options = { + services.borgBackup.enable = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Whether to enable remote backups. + ''; + }; + services.borgBackup.profiles = lib.mkOption { + type = lib.types.attrsOf (lib.types.submodule { + options = { + hash = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Hash bucket and directory names + ''; + }; + rootDir = lib.mkOption { + type = lib.types.path; + default = "/var/lib"; + description = '' + Path to backup + ''; + }; + password = lib.mkOption { + type = lib.types.str; + default = cfg.password; + description = '' + password to use to encrypt data + ''; + }; + directoriesMustExist = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Raise error if backuped directory doesn't exist + ''; + }; + bucket = lib.mkOption { + type = lib.types.str; + description = '' + Bucket to use + ''; + }; + remotes = lib.mkOption { + type = lib.types.listOf lib.types.str; + description = '' + Remotes to use for backup + ''; + }; + includedPaths = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = []; + description = '' + Included paths (subdirs of rootDir) + ''; + }; + excludeFile = lib.mkOption { + type = lib.types.lines; + default = ""; + description = '' + Content to put in exclude file + ''; + }; + ignoredPaths = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = []; + description = '' + List of paths to ignore when checking non-backed-up directories + Can use (POSIX extended) regex + ''; + }; + }; + }); + }; + }; + + config = lib.mkIf config.services.borgBackup.enable { + system.activationScripts.borg_backup = '' + install -m 0700 -o root -g root -d ${varDir} + ''; + secrets.keys = lib.listToAttrs (lib.flatten (lib.mapAttrsToList (k: v: + let + bucket = if v.hash or true then builtins.hashString "sha256" v.bucket else v.bucket; + in map (remote: [ + (lib.nameValuePair "borg_backup/${remote}_${k}/borgmatic.yaml" { + permissions = "0400"; + text = borgProfile v remote bucket; + }) + (lib.nameValuePair "borg_backup/${remote}_${k}" { + permissions = "0700"; + isDir = true; + }) + ]) v.remotes) config.services.borgBackup.profiles)) // { + "borg_backup/identity" = { + permissions = "0400"; + text = "{{ .ssl_keys.borg_backup }}"; + }; + "borg_backup/ignored_list" = { + permissions = "0400"; + text = let + ignored = map + (v: map (p: "${v.rootDir}/${p}") v.ignoredPaths) + (builtins.attrValues config.services.borgBackup.profiles); + in builtins.concatStringsSep "\n" (lib.flatten ignored); + }; + "borg_backup/backuped_list" = { + permissions = "0400"; + text = let + included = map + (v: map (p: "${v.rootDir}/${p}") v.includedPaths) + (builtins.attrValues config.services.borgBackup.profiles); + in builtins.concatStringsSep "\n" (lib.flatten included); + }; + }; + + programs.ssh.knownHostsFiles = [ + (pkgs.writeText + "borg_backup_known_hosts" + (builtins.concatStringsSep + "\n" + (builtins.filter + (v: v != null) + (builtins.map + (v: v.sshKnownHosts) + (builtins.attrValues cfg.remotes) + ) + ) + ) + ) + ]; + environment.systemPackages = [ pkgs.borgbackup pkgs.borgmatic borg_backup_full_with_ignored borg_backup check_backups ]; + services.cron = { + enable = true; + systemCronJobs = [ + "0 0 * * * root ${borg_backup}/bin/borg_backup 300" + ]; + + }; + + }; +} diff --git a/systems/eldiron/databases/openldap/default.nix b/systems/eldiron/databases/openldap/default.nix index 7cd15da..fcab337 100644 --- a/systems/eldiron/databases/openldap/default.nix +++ b/systems/eldiron/databases/openldap/default.nix @@ -103,6 +103,9 @@ in }; users.users.openldap.extraGroups = [ "keys" ]; networking.firewall.allowedTCPPorts = [ 636 389 ]; + services.borgBackup.profiles.global.includedPaths = [ + "openldap" + ]; security.acme.certs."ldap" = { group = "openldap"; diff --git a/systems/eldiron/duply_backup.nix b/systems/eldiron/duply_backup.nix index 590d125..5143302 100644 --- a/systems/eldiron/duply_backup.nix +++ b/systems/eldiron/duply_backup.nix @@ -3,29 +3,108 @@ let cfg = config.myEnv.backup; varDir = "/var/lib/duply"; - duplyProfile = profile: remote: prefix: '' - GPG_PW="${cfg.password}" - TARGET="${cfg.remotes.${remote}.remote profile.bucket}${prefix}" - export AWS_ACCESS_KEY_ID="${cfg.remotes.${remote}.accessKeyId}" - export AWS_SECRET_ACCESS_KEY="${cfg.remotes.${remote}.secretAccessKey}" + default_action = "pre_bkp_purge_purgeFull_purgeIncr"; + duply_backup_full_with_ignored = pkgs.writeScriptBin "duply_full_with_ignored" '' + #!${pkgs.stdenv.shell} + + export DUPLY_FULL_BACKUP_WITH_IGNORED=yes + if [ -z "$1" -o "$1" = "-h" -o "$1" = "--help" ]; then + echo "duply_full_with_ignored /path/to/profile" + echo "Does a full backup including directories with .duplicity-ignore" + exit 1 + fi + ${pkgs.duply}/bin/duply "$1" pre_full --force + ''; + duply_backup = pkgs.writeScriptBin "duply_backup" '' + #!${pkgs.stdenv.shell} + + declare -a profiles + profiles=() + ${builtins.concatStringsSep "\n" (lib.flatten (lib.mapAttrsToList (k: v: map (remote: [ + ''profiles+=("${remote}_${k}")'' + ]) v.remotes) config.services.duplyBackup.profiles))} + + if [ -f "${varDir}/last_backup_profile" ]; then + last_backup=$(cat ${varDir}/last_backup_profile) + for i in "''${!profiles[@]}"; do + if [[ "''${profiles[$i]}" = "$last_backup" ]]; then + break + fi + done + ((i+=1)) + profiles=("''${profiles[@]:$i}" "''${profiles[@]:0:$i}") + fi + + # timeout in minutes + timeout="''${1:-180}" + timeout_timestamp=$(date +%s -d "$timeout minutes") + for profile in "''${profiles[@]}"; do + if [ $(date +%s -d "now") -ge "$timeout_timestamp" ]; then + break + fi + + touch "${varDir}/$profile.log" + ${pkgs.duply}/bin/duply ${config.secrets.location}/backup/$profile/ ${default_action} --force >> ${varDir}/$profile.log + [[ $? = 0 ]] || echo -e "Error when doing backup for $profile, see above or logs in ${varDir}/$profile.log\n---------------------------------------" >&2 + echo "$profile" > ${varDir}/last_backup_profile + done + ''; + + check_backups = pkgs.writeScriptBin "duply_list_not_backuped" '' + #!${pkgs.stdenv.shell} + + do_check() { + local dir="$1" path ignored_path + find "$dir" -mindepth 1 -maxdepth 1 | while IFS= read -r path; do + if ${pkgs.gnugrep}/bin/grep -qFx "$path" ${config.secrets.fullPaths."backup/backuped_list"}; then + continue + elif ${pkgs.gnugrep}/bin/grep -q "^$path/" ${config.secrets.fullPaths."backup/backuped_list"}; then + do_check "$path" + else + while IFS= read -r ignored_path; do + if [[ "$path" =~ ^$ignored_path$ ]]; then + continue 2 + fi + done < ${config.secrets.fullPaths."backup/ignored_list"} + printf '%s\n' "$path" + fi + done + } + + do_check /var/lib + ''; + duplyProfile = profile: remote: bucket: let + remote' = cfg.remotes.${remote}; + in '' + if [ -z "$DUPLY_FULL_BACKUP_WITH_IGNORED" ]; then + GPG_PW="${cfg.password}" + fi + TARGET="${remote'.remote bucket}" + ${lib.optionalString (remote'.remote_type == "s3") '' + export AWS_ACCESS_KEY_ID="${remote'.s3AccessKeyId}" + export AWS_SECRET_ACCESS_KEY="${remote'.s3SecretAccessKey}" + ''} + ${lib.optionalString (remote'.remote_type == "rsync") '' + DUPL_PARAMS="$DUPL_PARAMS --ssh-options=-oIdentityFile='${config.secrets.fullPaths."backup/identity"}' " + ''} SOURCE="${profile.rootDir}" - FILENAME=".duplicity-ignore" - DUPL_PARAMS="$DUPL_PARAMS --exclude-if-present '$FILENAME'" + if [ -z "$DUPLY_FULL_BACKUP_WITH_IGNORED" ]; then + FILENAME=".duplicity-ignore" + DUPL_PARAMS="$DUPL_PARAMS --exclude-if-present '$FILENAME'" + fi VERBOSITY=4 ARCH_DIR="${varDir}/caches" + DUPL_PYTHON_BIN="" - # Do a full backup after 1 month - MAX_FULLBKP_AGE=1M - DUPL_PARAMS="$DUPL_PARAMS --allow-source-mismatch --exclude-other-filesystems --full-if-older-than $MAX_FULLBKP_AGE " - # Backups older than 2months are deleted - MAX_AGE=2M - # Keep 2 full backups - MAX_FULL_BACKUPS=2 - MAX_FULLS_WITH_INCRS=2 + # Do a full backup after 6 month + MAX_FULLBKP_AGE=6M + DUPL_PARAMS="$DUPL_PARAMS --allow-source-mismatch --full-if-older-than $MAX_FULLBKP_AGE " + # Backups older than 1months are deleted + MAX_AGE=1M + # Keep 1 full backup + MAX_FULL_BACKUPS=1 + MAX_FULLS_WITH_INCRS=1 ''; - action = "bkp_purge_purgeFull_purgeIncr"; - varName = k: remoteName: - if remoteName == "eriomem" then k else remoteName + "_" + k; in { options = { @@ -39,26 +118,46 @@ in services.duplyBackup.profiles = lib.mkOption { type = lib.types.attrsOf (lib.types.submodule { options = { + hash = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Hash bucket and directory names + ''; + }; + excludeRootDir = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Exclude root dir in exclusion file + ''; + }; rootDir = lib.mkOption { type = lib.types.path; + default = "/var/lib"; description = '' Path to backup ''; }; bucket = lib.mkOption { type = lib.types.str; - default = "immae-${name}"; description = '' Bucket to use ''; }; remotes = lib.mkOption { type = lib.types.listOf lib.types.str; - default = ["eriomem"]; description = '' Remotes to use for backup ''; }; + includedPaths = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = []; + description = '' + Included paths (subdirs of rootDir) + ''; + }; excludeFile = lib.mkOption { type = lib.types.lines; default = ""; @@ -66,6 +165,14 @@ in Content to put in exclude file ''; }; + ignoredPaths = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = []; + description = '' + List of paths to ignore when checking non-backed-up directories + Can use (POSIX extended) regex + ''; + }; }; }); }; @@ -76,76 +183,91 @@ in install -m 0700 -o root -g root -d ${varDir} ${varDir}/caches ''; secrets.keys = lib.listToAttrs (lib.flatten (lib.mapAttrsToList (k: v: - map (remote: [ - (lib.nameValuePair "backup/${varName k remote}/conf" { + let + bucket = if v.hash or true then builtins.hashString "sha256" v.bucket else v.bucket; + in map (remote: [ + (lib.nameValuePair "backup/${remote}_${k}/conf" { permissions = "0400"; - text = duplyProfile v remote "${k}/"; + text = duplyProfile v remote bucket; }) - (lib.nameValuePair "backup/${varName k remote}/exclude" { + (lib.nameValuePair "backup/${remote}_${k}/exclude" { permissions = "0400"; - text = v.excludeFile; + text = v.excludeFile + (builtins.concatStringsSep "\n" (map (p: "+ ${v.rootDir}/${p}") v.includedPaths)) + (lib.optionalString v.excludeRootDir '' + + - ** + ''); }) - (lib.nameValuePair "backup/${varName k remote}" { + (lib.nameValuePair "backup/${remote}_${k}/pre" { + keyDependencies = [ + pkgs.bash + pkgs.rsync + ]; permissions = "0500"; + text = let + remote' = cfg.remotes.${remote}; + in '' + #!${pkgs.stdenv.shell} + + ${lib.optionalString (remote'.remote_type == "rsync") '' + # Recreate directory structure before synchronizing + mkdir -p ${varDir}/rsync_remotes/${remote}/${bucket} + ${pkgs.rsync}/bin/rsync -av -e \ + "ssh -p ${remote'.sshRsyncPort} -oIdentityFile=${config.secrets.fullPaths."backup/identity"}" \ + "${varDir}/rsync_remotes/${remote}/" \ + ${remote'.sshRsyncHost}: + ''} + ''; + }) + (lib.nameValuePair "backup/${remote}_${k}" { + permissions = "0700"; isDir = true; }) - ]) v.remotes) config.services.duplyBackup.profiles)); + ]) v.remotes) config.services.duplyBackup.profiles)) // { + "backup/identity" = { + permissions = "0400"; + text = "{{ .ssl_keys.duply_backup }}"; + }; + "backup/ignored_list" = { + permissions = "0400"; + text = let + ignored = map + (v: map (p: "${v.rootDir}/${p}") v.ignoredPaths) + (builtins.attrValues config.services.duplyBackup.profiles); + in builtins.concatStringsSep "\n" (lib.flatten ignored); + }; + "backup/backuped_list" = { + permissions = "0400"; + text = let + included = map + (v: map (p: "${v.rootDir}/${p}") v.includedPaths) + (builtins.attrValues config.services.duplyBackup.profiles); + in builtins.concatStringsSep "\n" (lib.flatten included); + }; + }; + programs.ssh.knownHostsFiles = [ + (pkgs.writeText + "duply_backup_known_hosts" + (builtins.concatStringsSep + "\n" + (builtins.filter + (v: v != null) + (builtins.map + (v: v.sshKnownHosts) + (builtins.attrValues cfg.remotes) + ) + ) + ) + ) + ]; + environment.systemPackages = [ pkgs.duply check_backups duply_backup_full_with_ignored duply_backup ]; services.cron = { enable = true; - systemCronJobs = let - backups = pkgs.writeScript "backups" '' - #!${pkgs.stdenv.shell} - - ${builtins.concatStringsSep "\n" (lib.flatten (lib.mapAttrsToList (k: v: - map (remote: [ - '' - touch ${varDir}/${varName k remote}.log - ${pkgs.duply}/bin/duply ${config.secrets.fullPaths."backup/${varName k remote}"}/ ${action} --force >> ${varDir}/${varName k remote}.log - [[ $? = 0 ]] || echo -e "Error when doing backup for ${varName k remote}, see above\n---------------------------------------" >&2 - '' - ]) v.remotes - ) config.services.duplyBackup.profiles))} - ''; - in - [ - "0 2 * * * root ${backups}" - ]; + systemCronJobs = [ + "0 0 * * * root ${duply_backup}/bin/duply_backup 90" + ]; }; - security.pki.certificateFiles = [ - (pkgs.fetchurl { - url = "http://downloads.e.eriomem.net/eriomemca.pem"; - sha256 = "1ixx4c6j3m26j8dp9a3dkvxc80v1nr5aqgmawwgs06bskasqkvvh"; - }) - ]; - - myServices.monitoring.fromMasterActivatedPlugins = [ "eriomem" ]; - myServices.monitoring.fromMasterObjects.service = [ - { - service_description = "eriomem backup is up and not full"; - host_name = config.hostEnv.fqdn; - use = "external-service"; - check_command = "check_backup_eriomem"; - - check_interval = 120; - notification_interval = "1440"; - - servicegroups = "webstatus-backup"; - } - - { - service_description = "ovh backup is up and not full"; - host_name = config.hostEnv.fqdn; - use = "external-service"; - check_command = "check_ok"; - - check_interval = 120; - notification_interval = "1440"; - - servicegroups = "webstatus-backup"; - } - ]; }; } diff --git a/systems/eldiron/flake.lock b/systems/eldiron/flake.lock index 27d4d5b..58291c5 100644 --- a/systems/eldiron/flake.lock +++ b/systems/eldiron/flake.lock @@ -129,7 +129,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -141,7 +141,7 @@ "environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -153,7 +153,7 @@ "environment_3": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -165,7 +165,7 @@ "environment_4": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -177,7 +177,7 @@ "environment_5": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -189,7 +189,7 @@ "environment_6": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -1989,7 +1989,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -2001,7 +2001,7 @@ "private-environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -2020,7 +2020,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-VhRXb3AAlSKwkq4BfVmoKzkLxEaAFGjYLAFETTZuhjE=", + "narHash": "sha256-bWNhkERypwoog3lphO0xURJ4xt58CZEWKn7So7A5mtM=", "path": "../../flakes/private/milters", "type": "path" }, @@ -2038,7 +2038,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -2073,7 +2073,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-/vQ6FGFc53r79yiQrzF0NWTbRd4RKf8QiPSDhmiCciU=", + "narHash": "sha256-fntajNe0urhuR0NbTOQZLTMhtHnd7p6PVuuEf0oAoFg=", "path": "../../flakes/private/opendmarc", "type": "path" }, @@ -2134,7 +2134,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-gjapO6CZFeLMHUlhqBVZu5P+IJzJaPu4pnuTep4ZSuM=", + "narHash": "sha256-uqftr7R3cVYwWuu8Xl6VbPVL2pqapv1bfmMJpq3LnZ4=", "path": "../../flakes/private/ssh", "type": "path" }, @@ -2153,7 +2153,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, diff --git a/systems/eldiron/ftp.nix b/systems/eldiron/ftp.nix index 6aa1afc..e5bc0f5 100644 --- a/systems/eldiron/ftp.nix +++ b/systems/eldiron/ftp.nix @@ -30,6 +30,10 @@ in }; config = lib.mkIf config.myServices.ftp.enable { + services.borgBackup.profiles.global.ignoredPaths = [ + "ftp/test_ftp" + "proftpd/authorized_keys" + ]; myServices.dns.zones."immae.eu".subdomains.ftp = with config.myServices.dns.helpers; ips servers.eldiron.ips.main; diff --git a/systems/eldiron/gitolite/default.nix b/systems/eldiron/gitolite/default.nix index 1885234..0882c18 100644 --- a/systems/eldiron/gitolite/default.nix +++ b/systems/eldiron/gitolite/default.nix @@ -11,6 +11,22 @@ in { }; config = lib.mkIf cfg.enable { + services.borgBackup.profiles.global.ignoredPaths = [ + "gitolite/.nix-.*" + "gitolite/.ssh" + "gitolite/.vim.*" + "gitolite/.bash_history" + ]; + services.borgBackup.profiles.global.includedPaths = [ + "gitolite/gitolite_ldap_groups.sh" + "gitolite/projects.list" + "gitolite/.gitolite.rc" + "gitolite/.gitolite" + "gitolite/repositories/github" + "gitolite/repositories/testing.git" + "gitolite/repositories/gitolite-admin.git" + + ]; myServices.dns.zones."immae.eu".subdomains.git = with config.myServices.dns.helpers; ips servers.eldiron.ips.main; diff --git a/systems/eldiron/pub/default.nix b/systems/eldiron/pub/default.nix index ca8122a..847e9d0 100644 --- a/systems/eldiron/pub/default.nix +++ b/systems/eldiron/pub/default.nix @@ -40,6 +40,9 @@ in }; config = lib.mkIf config.myServices.pub.enable { + services.borgBackup.profiles.global.ignoredPaths = [ + "pub/.nix-.*" + ]; myServices.dns.zones."immae.eu".subdomains.pub = with config.myServices.dns.helpers; ips servers.eldiron.ips.main; diff --git a/systems/eldiron/websites/cloud/default.nix b/systems/eldiron/websites/cloud/default.nix index e1df883..c859f32 100644 --- a/systems/eldiron/websites/cloud/default.nix +++ b/systems/eldiron/websites/cloud/default.nix @@ -9,6 +9,15 @@ in { }; config = lib.mkIf cfg.enable { + services.borgBackup.profiles.global.includedPaths = [ + "nextcloud/appdata_occ80acffb591" + "nextcloud/files_external" + "nextcloud/config" + #"nextcloud/gpxpod" + "nextcloud/.ocdata" + "nextcloud/.htaccess" + "nextcloud/index.html" + ]; myServices.dns.zones."immae.eu".subdomains.cloud = with config.myServices.dns.helpers; ips servers.eldiron.ips.main; diff --git a/systems/eldiron/websites/commento/default.nix b/systems/eldiron/websites/commento/default.nix index c5131b8..9abc180 100644 --- a/systems/eldiron/websites/commento/default.nix +++ b/systems/eldiron/websites/commento/default.nix @@ -12,6 +12,9 @@ in enable = lib.mkEnableOption "Enable commento website"; }; config = lib.mkIf cfg.enable { + services.borgBackup.profiles.global.includedPaths = [ + "vhost/tools.immae.eu/commento" + ]; myServices.dns.zones."immae.eu".subdomains.commento = with config.myServices.dns.helpers; ips servers.eldiron.ips.main; diff --git a/systems/eldiron/websites/cryptpad/default.nix b/systems/eldiron/websites/cryptpad/default.nix index 4635548..34a51cd 100644 --- a/systems/eldiron/websites/cryptpad/default.nix +++ b/systems/eldiron/websites/cryptpad/default.nix @@ -75,6 +75,9 @@ in inherit domain port; config = configFile; }; + services.borgBackup.profiles.global.includedPaths = [ + "cryptpad/immaeEu" + ]; services.websites.env.tools.modules = [ "proxy_wstunnel" ]; security.acme.certs.eldiron.extraDomainNames = [ domain ]; services.websites.env.tools.vhostConfs.cryptpad = { diff --git a/systems/eldiron/websites/tools/default.nix b/systems/eldiron/websites/tools/default.nix index b591190..46e6a9f 100644 --- a/systems/eldiron/websites/tools/default.nix +++ b/systems/eldiron/websites/tools/default.nix @@ -110,6 +110,21 @@ in { ]; }; + services.borgBackup.profiles.global.ignoredPaths = [ + "duply" + "kanboard" + "ntfy" + ]; + services.borgBackup.profiles.global.includedPaths = [ + "paste" + "dokuwiki/conf" + "dokuwiki/data" + "phpbb" + "shaarli/cache" + "shaarli/pagecache" + "shaarli/tmp" + ]; + myServices.chatonsProperties.services = { adminer = adminer.chatonsProperties; dokuwiki = dokuwiki.chatonsProperties; diff --git a/systems/monitoring-1/flake.lock b/systems/monitoring-1/flake.lock index c69d09a..28d2415 100644 --- a/systems/monitoring-1/flake.lock +++ b/systems/monitoring-1/flake.lock @@ -22,7 +22,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-ptLDqa3BTCX2orio9YgGsOwYa5bsz2DWn6TrtR2B45w=", + "narHash": "sha256-Deh1qsi1UFskPSAwq2sUGyPeh7hVVHct8hhy4o6fEzE=", "path": "../../flakes/private/chatons", "type": "path" }, @@ -74,7 +74,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -86,7 +86,7 @@ "environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -98,7 +98,7 @@ "environment_3": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -110,7 +110,7 @@ "environment_4": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -122,7 +122,7 @@ "environment_5": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -259,7 +259,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-1sEwMNWSytfyn4Rh5gUJACwCNgaTLdMDkO9hEr5OB7M=", + "narHash": "sha256-XdgjCex3Izb2hID+EBVj0YsEE5xvc+I416I2fHpi1LE=", "path": "../../flakes/private/mail-relay", "type": "path" }, @@ -277,7 +277,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -735,7 +735,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, diff --git a/systems/monitoring-1/monitoring-master.nix b/systems/monitoring-1/monitoring-master.nix index 09319b8..e9362d9 100644 --- a/systems/monitoring-1/monitoring-master.nix +++ b/systems/monitoring-1/monitoring-master.nix @@ -74,11 +74,11 @@ in group = "naemon"; permissions = "0400"; text = '' - export AWS_ACCESS_KEY_ID="${v.accessKeyId}" - export AWS_SECRET_ACCESS_KEY="${v.secretAccessKey}" + export AWS_ACCESS_KEY_ID="${v.s3AccessKeyId}" + export AWS_SECRET_ACCESS_KEY="${v.s3SecretAccessKey}" export BASE_URL="${v.remote "immae-eldiron"}" ''; - }) config.myEnv.backup.remotes; + }) (lib.filterAttrs (k: v: v.remote_type == "s3") config.myEnv.backup.remotes); services.naemon.extraConfig = '' broker_module=${pkgs.naemon-livestatus}/lib/naemon-livestatus/livestatus.so ${config.services.naemon.runDir}/live diff --git a/systems/quatresaisons/flake.lock b/systems/quatresaisons/flake.lock index 4cb49da..5534558 100644 --- a/systems/quatresaisons/flake.lock +++ b/systems/quatresaisons/flake.lock @@ -59,7 +59,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -71,7 +71,7 @@ "environment_2": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -83,7 +83,7 @@ "environment_3": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -239,7 +239,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-Lpe56lKWhlMQiQoCgvMJuqJtJ8+szDldjqMAGyt2U3U=", + "narHash": "sha256-VZjf9fXcyeS3LpVW6NvzJpiJuEtJsGlOOfH8XwL8CdI=", "path": "../../flakes/private/monitoring", "type": "path" }, @@ -712,7 +712,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, diff --git a/systems/zoldene/flake.lock b/systems/zoldene/flake.lock index 86e91e6..fb95d03 100644 --- a/systems/zoldene/flake.lock +++ b/systems/zoldene/flake.lock @@ -59,7 +59,7 @@ "environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../environment", "type": "path" }, @@ -436,7 +436,7 @@ "private-environment": { "locked": { "lastModified": 1, - "narHash": "sha256-VO82m/95IcX3xxJ63wcLh3hXzXDRFKUohYil/18pBSY=", + "narHash": "sha256-Kj3j/3B8V8IHbeSZ3ho33C7ktOcTle2h6dKEWWfVuvU=", "path": "../../flakes/private/environment", "type": "path" }, @@ -455,7 +455,7 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-+s9C1mPCXRA44AC0Fg+B2uD6UiK0JfUA0F8fhceH0lQ=", + "narHash": "sha256-ufaclDTTnoB7xLOCOY4EretrBp70rSmk0YzcVfglbLA=", "path": "../../flakes/private/system", "type": "path" }, -- 2.41.0