From f901a0f775f42b3427728949eac894a458d2cc61 Mon Sep 17 00:00:00 2001
From: dadada <dadada@dadada.li>
Date: Sun, 10 Apr 2022 16:07:17 +0200
Subject: [PATCH] Update backup config
---
nixos/ifrit/configuration.nix | 68 ++++++++++++++---------------------
nixos/modules/backup.nix | 8 +----
2 files changed, 28 insertions(+), 48 deletions(-)
diff --git a/nixos/ifrit/configuration.nix b/nixos/ifrit/configuration.nix
index e94310f..20cac31 100644
--- a/nixos/ifrit/configuration.nix
+++ b/nixos/ifrit/configuration.nix
@@ -4,8 +4,33 @@ let
"ifrit.dadada.li"
"bs.vpn.dadada.li"
"media.dadada.li"
+ "backup.dadada.li"
];
backups = "/mnt/storage/backup";
+ ddns = hostname: {
+ timers."ddns-${hostname}" = {
+ wantedBy = [ "timers.target" ];
+ partOf = [ "ddns-${hostname}.service" ];
+ timerConfig.OnCalendar = "hourly";
+ };
+ services."ddns-${hostname}" = {
+ serviceConfig.Type = "oneshot";
+ script = ''
+ function url() {
+ echo "https://svc.joker.com/nic/update?username=$1&password=$2&hostname=$3"
+ }
+
+ IFS=':'
+ read -r user password < /var/lib/ddns/credentials
+ unset IFS
+
+ curl_url=$(url "$user" "$password" ${hostname})
+
+ ${pkgs.curl}/bin/curl -4 "$curl_url"
+ ${pkgs.curl}/bin/curl -6 "$curl_url"
+ '';
+ };
+ };
in
{
imports = [
@@ -49,6 +74,7 @@ in
};
};
+ users.users.borg.home = "/mnt/storage/backup";
services.borgbackup.repos = {
"metis" = {
allowSubRepos = false;
@@ -109,11 +135,6 @@ in
"::1" = hostAliases;
};
- networking.nameservers = [
- "1.1.1.1"
- "1.0.0.1"
- ];
-
# weird issues with crappy plastic router
networking.interfaces."ens3".tempAddress = "disabled";
@@ -143,19 +164,6 @@ in
allowPing = true;
allowedTCPPorts = [
22 # SSH
- 80
- 443 # HTTP(S)
- 111
- 2049 # NFS
- 139
- 445 # SMB
- ];
- allowedUDPPorts = [
- 137
- 138
- 111
- 2049 # NFS
- 51234 # Wireguard
];
};
@@ -188,30 +196,8 @@ in
};
environment.systemPackages = [ pkgs.curl ];
- systemd = {
- timers.ddns-joker = {
- wantedBy = [ "timers.target" ];
- partOf = [ "ddns-joker.service" ];
- timerConfig.OnCalendar = "hourly";
- };
- services.ddns-joker = {
- serviceConfig.Type = "oneshot";
- script = ''
- function url() {
- echo "https://svc.joker.com/nic/update?username=$1&password=$2&hostname=$3"
- }
- IFS=':'
- read -r user password < /var/lib/ddns/credentials
- unset IFS
-
- curl_url=$(url "$user" "$password" bs.vpn.dadada.li)
-
- ${pkgs.curl}/bin/curl -4 "$curl_url"
- ${pkgs.curl}/bin/curl -6 "$curl_url"
- '';
- };
- };
+ systemd = (ddns "bs.vpn.dadada.li") // (ddns "backup0.dadada.li");
system.stateVersion = "20.03";
}
diff --git a/nixos/modules/backup.nix b/nixos/modules/backup.nix
index 11c0908..eecddd8 100644
--- a/nixos/modules/backup.nix
+++ b/nixos/modules/backup.nix
@@ -60,16 +60,10 @@ in
startAt = "monthly";
};
- networking.hosts = mkIf cfg.bs {
- "fd42:dead:beef:0:5054:ff:fefb:7361" = [
- "media.dadada.li"
- ];
- };
-
services.borgbackup.jobs.bs = mkIf cfg.bs {
paths = "/";
exclude = backupExcludes;
- repo = "borg@media.dadada.li:/mnt/storage/backup/${config.networking.hostName}";
+ repo = "borg@backup0.dadada.li:${config.networking.hostName}";
doInit = false;
environment = {
BORG_RSH = "ssh -i /var/lib/borgbackup/bs/id_ed25519 -o 'StrictHostKeyChecking accept-new'";