From ca6fa66074cfc491ca796c6046f704e32d4e9760 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Fri, 8 Sep 2023 04:28:15 +0000 Subject: [PATCH 01/25] Add nix-du and tools --- hosts/linode/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hosts/linode/default.nix b/hosts/linode/default.nix index 8273b98..20b68c7 100644 --- a/hosts/linode/default.nix +++ b/hosts/linode/default.nix @@ -1,4 +1,4 @@ -{ ... }: +{ pkgs, ... }: { imports = [ @@ -16,4 +16,8 @@ greg.tailscale.enable = true; networking.hostName = "linode"; networking.domain = "thehellings.com"; + environment.systemPackages = with pkgs; [ + graphviz + nix-du + ]; } From feced1283b493e587181576a31d4e3a9cbd3b788 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 16 Oct 2023 14:29:51 +0000 Subject: [PATCH 02/25] Upgrade to nextcloud27 --- hosts/linode/nextcloud.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/linode/nextcloud.nix b/hosts/linode/nextcloud.nix index e257606..f923fbb 100644 --- a/hosts/linode/nextcloud.nix +++ b/hosts/linode/nextcloud.nix @@ -6,7 +6,7 @@ services.nextcloud = { enable = true; - package = pkgs.nextcloud26; + package = pkgs.nextcloud27; appstoreEnable = true; hostName = "next.${config.networking.domain}"; enableBrokenCiphersForSSE = false; From 103493082f2d01be1be0fde05a74d23cb660c46d Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 16 Oct 2023 14:42:13 +0000 Subject: [PATCH 03/25] Update nixstable --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 38f3c73..268b90c 100644 --- a/flake.lock +++ b/flake.lock @@ -336,11 +336,11 @@ }, "nixstable": { "locked": { - "lastModified": 1694048570, - "narHash": "sha256-PEQptwFCVaJ+jLFJgrZll2shQ9VI/7xVhrCYkJo8iIw=", + "lastModified": 1697226376, + "narHash": "sha256-cumLLb1QOUtWieUnLGqo+ylNt3+fU8Lcv5Zl+tYbRUE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4f77ea639305f1de0a14d9d41eef83313360638c", + "rev": "898cb2064b6e98b8c5499f37e81adbdf2925f7c5", "type": "github" }, "original": { From 134a2dd2bea4b25ecf90a65f65047f263bc5f712 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 11 Dec 2023 12:25:35 -0600 Subject: [PATCH 04/25] Move to Thelio boot --- home/xonsh.nix | 2 +- hosts/jude/boot.nix | 33 +++++++++++++++------------------ hosts/jude/default.nix | 4 ++++ 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/home/xonsh.nix b/home/xonsh.nix index 90e0fea..e79cf20 100644 --- a/home/xonsh.nix +++ b/home/xonsh.nix @@ -46,7 +46,7 @@ gazelle = "compass workspace exec bazel run :gazelle"; cfetch = "compass workspace exec bazel run src/go/compass.com/tools/circleci_results_cache:fetch"; - cleanup = "nix-collect-garbage --delete-older-than 30d && nix store optimise"; + cleanup = "sudo nix-collect-garbage --delete-older-than 30d && nix store optimise"; d = "vox deactivate"; devroles = "cd ~/src/ansible_collections/devroles"; dirflake = "nix flake new -t github:nix-community/nix-direnv"; diff --git a/hosts/jude/boot.nix b/hosts/jude/boot.nix index ba571c5..7e3df80 100644 --- a/hosts/jude/boot.nix +++ b/hosts/jude/boot.nix @@ -1,37 +1,34 @@ -{ lib, ... }: +{ lib, pkgs, ... }: { # Use the systemd-boot EFI boot loader. boot = { supportedFilesystems = [ "ntfs" ]; loader = { + timeout = 15; systemd-boot = { enable = true; - configurationLimit = 10; + configurationLimit = 20; extraEntries = { "Windows.conf" = (lib.strings.concatStringsSep "\n" [ "title Windows" "efi /EFI/Microsoft/EFI/bootmgfw.efi" ]); - "Pop.conf" = (lib.strings.concatStringsSep "\n" [ - "title Pop!_OS" - "linux /EFI/Pop_OS-e4918d10-538d-42ad-b35d-a1ee2ed2a433/vmlinuz.efi" - "initrd /EFI/Pop_OS-e4918d10-538d-42ad-b35d-a1ee2ed2a433/initrd.img" - "options root=UUID=e4918d10-538d-42ad-b35d-a1ee2ed2a433 ro quiet loglevel=0 systemd.show_status=false splash" + "Win2.conf" = (lib.strings.concatStringsSep "\n" [ + "title Windows 11" + "efi /shellx64.efi" + "options -nointerrupt -noconsolein -noconsoleout windows11.nsh" ]); - "Pop-oldkern.conf" = (lib.strings.concatStringsSep "\n" [ - "title Pop!_OS" - "linux /EFI/Pop_OS-e4918d10-538d-42ad-b35d-a1ee2ed2a433/vmlinuz-previous.efi" - "initrd /EFI/Pop_OS-e4918d10-538d-42ad-b35d-a1ee2ed2a433/initrd.img-previous" - "options root=UUID=e4918d10-538d-42ad-b35d-a1ee2ed2a433 ro quiet loglevel=0 systemd.show_status=false splash" - ]); - "Pop-recovery.conf" = (lib.strings.concatStringsSep "\n" [ - "title Pop!_OS Recovery" - "linux /EFI/Recovery-1E97-BC0F/vmlinuz.efi" - "initrd /EFI/Recovery-1E97-BC0F/initrd.gz" - "options boot=casper hostname=recovery userfullname=Recovery username=recovery live-media-path=/casper-1E97-BC0F noprompt " + "Shell.conf" = (lib.strings.concatStringsSep "\n" [ + "title EFI Shell" + "efi /shell.efi" ]); }; + extraFiles = { + "windows11.nsh" = (pkgs.writeText "windows11.nsh" (lib.strings.concatStringsSep "\n" [ + ])); + "shell.efi" = "${pkgs.edk2-uefi-shell}/shell.efi"; + }; }; grub = { enable = false; diff --git a/hosts/jude/default.nix b/hosts/jude/default.nix index fe8922b..010351e 100644 --- a/hosts/jude/default.nix +++ b/hosts/jude/default.nix @@ -61,6 +61,10 @@ device = "/dev/nvme0n1p5"; fsType = "ntfs-3g"; }; + "/windows11" = { + device = "/dev/nvme1n1p2"; + fsType = "ntfs-3g"; + }; }; # Let's do a sound thing From 014c3ce7c373efd813c02d87042e9ae6a433b029 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 11 Dec 2023 15:19:32 -0600 Subject: [PATCH 05/25] Enable NVidia and System76 drivers --- hosts/jude/default.nix | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/hosts/jude/default.nix b/hosts/jude/default.nix index 010351e..ed63cb2 100644 --- a/hosts/jude/default.nix +++ b/hosts/jude/default.nix @@ -68,14 +68,24 @@ }; # Let's do a sound thing - services.pipewire = { - enable = true; - alsa.enable = true; - audio.enable = true; - jack.enable = true; - pulse.enable = true; - - wireplumber.enable = true; + services = { + pipewire = { + enable = true; + alsa.enable = true; + audio.enable = true; + jack.enable = true; + pulse.enable = true; + wireplumber.enable = true; + }; + xserver.videoDrivers = [ "nvidia" ]; + }; + hardware = { + nvidia = { + modesetting.enable = true; + nvidiaSettings = true; + open = true; + }; + pulseaudio.enable = false; # This conflicts with pipewire + system76.enableAll = true; }; - hardware.pulseaudio.enable = false; # This conflicts with pipewire } From b150613ff132864e1d7b9e0a58aa6d475afe927a Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 11 Dec 2023 15:20:57 -0600 Subject: [PATCH 06/25] Update to 23.11 --- flake.lock | 16 ++++++++-------- flake.nix | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/flake.lock b/flake.lock index f4d2acc..cccbd38 100644 --- a/flake.lock +++ b/flake.lock @@ -159,16 +159,16 @@ ] }, "locked": { - "lastModified": 1695108154, - "narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=", + "lastModified": 1702195709, + "narHash": "sha256-+zRjWkm5rKqQ57PuLZ3JF3xi3vPMiOJzItb1m/43Cq4=", "owner": "nix-community", "repo": "home-manager", - "rev": "07682fff75d41f18327a871088d20af2710d4744", + "rev": "6761b8188b860f374b457eddfdb05c82eef9752f", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-23.05", + "ref": "release-23.11", "repo": "home-manager", "type": "github" } @@ -390,16 +390,16 @@ }, "nixstable": { "locked": { - "lastModified": 1694048570, - "narHash": "sha256-PEQptwFCVaJ+jLFJgrZll2shQ9VI/7xVhrCYkJo8iIw=", + "lastModified": 1702233072, + "narHash": "sha256-H5G2wgbim2Ku6G6w+NSaQaauv6B6DlPhY9fMvArKqRo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4f77ea639305f1de0a14d9d41eef83313360638c", + "rev": "781e2a9797ecf0f146e81425c822dca69fe4a348", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-23.05", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 581bd95..e309825 100644 --- a/flake.nix +++ b/flake.nix @@ -12,7 +12,7 @@ }; flake-utils.url = "github:numtide/flake-utils"; hm = { - url = "github:nix-community/home-manager/release-23.05"; + url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixstable"; }; hmunstable = { @@ -21,7 +21,7 @@ }; nixneovim.url = "github:NixNeovim/NixNeovim"; nixpy311.url = "github:NixOS/nixpkgs/nixos-23.05"; - nixstable.url = "github:nixos/nixpkgs/nixos-23.05"; + nixstable.url = "github:nixos/nixpkgs/nixos-23.11"; nixunstable.url = "github:nixos/nixpkgs/nixos-unstable"; nurpkgs.url = "github:nix-community/NUR"; wsl = { From 0e408cd1c10741fa980a7913f886e9e09f25accc Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 11 Dec 2023 15:25:50 -0600 Subject: [PATCH 07/25] Remove deprecated option --- hosts/linode/nextcloud.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/linode/nextcloud.nix b/hosts/linode/nextcloud.nix index e257606..7725c7e 100644 --- a/hosts/linode/nextcloud.nix +++ b/hosts/linode/nextcloud.nix @@ -9,7 +9,6 @@ package = pkgs.nextcloud26; appstoreEnable = true; hostName = "next.${config.networking.domain}"; - enableBrokenCiphersForSSE = false; https = true; config = { adminpassFile = config.age.secrets.nextcloudadmin.path; From 2df2310926f07914eb785da0c38567ab4f4f533f Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 11 Dec 2023 21:52:47 +0000 Subject: [PATCH 08/25] Update postgres permissions --- hosts/linode/postgres.nix | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/hosts/linode/postgres.nix b/hosts/linode/postgres.nix index 14beb7e..2677ba5 100644 --- a/hosts/linode/postgres.nix +++ b/hosts/linode/postgres.nix @@ -17,19 +17,16 @@ #''; # These are done manually in order to set the LC_COLLATE values properly ensureUsers = [ { name = "nextcloud"; - ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES"; - } { - name = "root"; - ensurePermissions."ALL TABLES IN SCHEMA public" = "ALL PRIVILEGES"; + ensureDBOwnership = true; } { name = "gitea"; - ensurePermissions."DATABASE gitea" = "ALL PRIVILEGES"; + ensureDBOwnership = true; } { name = "dendrite"; - ensurePermissions."DATABASE dendrite" = "ALL PRIVILEGES"; + ensureDBOwnership = true; } { name = "monica"; - ensurePermissions."DATABASE monica" = "ALL PRIVILEGES"; + ensureDBOwnership = true; } ]; settings = { log_connections = true; From 45082de7cb308b5dbe8f2d5bd0043a7018026ee3 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 11 Dec 2023 22:00:21 +0000 Subject: [PATCH 09/25] Migrate gitea to forgejo --- hosts/linode/git.nix | 18 +++++++++--------- hosts/linode/postgres.nix | 6 +++--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/hosts/linode/git.nix b/hosts/linode/git.nix index e1f3e6e..a3784bc 100644 --- a/hosts/linode/git.nix +++ b/hosts/linode/git.nix @@ -20,12 +20,12 @@ in { # GIT SERVICES ########## ########################################################################################## - services.gitea = rec { + services.forgejo = rec { enable = true; appName = "Greg's Sources"; database = { type = "postgres"; - user = "gitea"; + user = "forgejo"; }; dump = { enable = true; @@ -44,23 +44,23 @@ in { }; greg.proxies."${srcDomain}" = { - target = "${config.services.gitea.settings.server.PROTOCOL}://${config.services.gitea.settings.server.DOMAIN}:${toString config.services.gitea.settings.server.HTTP_PORT}"; + target = "${config.services.forgejo.settings.server.PROTOCOL}://${config.services.forgejo.settings.server.DOMAIN}:${toString config.services.forgejo.settings.server.HTTP_PORT}"; ssl = true; genAliases = false; }; - greg.backup.jobs.gitea = { - src = config.services.gitea.dump.backupDir; - dest = "gitea"; - user = "gitea"; + greg.backup.jobs.forgejo = { + src = config.services.forgejo.dump.backupDir; + dest = "forgejo"; + user = "forgejo"; }; services.logrotate = { enable = true; settings = { - gitea = { + forgejo = { enable = true; - files = "${config.services.gitea.dump.backupDir}/*"; + files = "${config.services.forgejo.dump.backupDir}/*"; }; }; }; diff --git a/hosts/linode/postgres.nix b/hosts/linode/postgres.nix index 2677ba5..f009867 100644 --- a/hosts/linode/postgres.nix +++ b/hosts/linode/postgres.nix @@ -6,7 +6,7 @@ checkConfig = true; ensureDatabases = [ "dendrite" - "gitea" + "forgejo" "monica" "nextcloud" ]; @@ -19,7 +19,7 @@ name = "nextcloud"; ensureDBOwnership = true; } { - name = "gitea"; + name = "forgejo"; ensureDBOwnership = true; } { name = "dendrite"; @@ -43,7 +43,7 @@ root root postgres enable = true; databases = [ "dendrite" - "gitea" + "forgejo" "monica" "nextcloud" ]; From a50c5a69a6185c1a4be8053c0f30a221359e5a98 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 01:01:58 +0000 Subject: [PATCH 10/25] Add forgejo runners --- hosts/linode/default.nix | 2 + hosts/linode/git.nix | 118 ++++++++++++---- secrets/linode-forgejo-runner.age | 217 ++++++++++++++++++++++++++++++ secrets/secrets.nix | 2 + 4 files changed, 311 insertions(+), 28 deletions(-) create mode 100644 secrets/linode-forgejo-runner.age diff --git a/hosts/linode/default.nix b/hosts/linode/default.nix index 20b68c7..06a8883 100644 --- a/hosts/linode/default.nix +++ b/hosts/linode/default.nix @@ -17,6 +17,8 @@ networking.hostName = "linode"; networking.domain = "thehellings.com"; environment.systemPackages = with pkgs; [ + forgejo + gitea-actions-runner graphviz nix-du ]; diff --git a/hosts/linode/git.nix b/hosts/linode/git.nix index a3784bc..2229315 100644 --- a/hosts/linode/git.nix +++ b/hosts/linode/git.nix @@ -20,27 +20,99 @@ in { # GIT SERVICES ########## ########################################################################################## - services.forgejo = rec { - enable = true; - appName = "Greg's Sources"; - database = { - type = "postgres"; - user = "forgejo"; - }; - dump = { + services = { + forgejo = rec { enable = true; - type = "tar.xz"; - }; - settings = { - server = rec { - ROOT_URL = "https://${DOMAIN}/"; - DOMAIN = srcDomain; - HTTP_PORT = 3001; + database = { + type = "postgres"; + user = "forgejo"; + }; + dump = { + enable = true; + type = "tar.xz"; + }; + settings = { + actions.ENABLED = true; + DEFAULT = { + APP_NAME = "Greg's Sources"; + }; + server = rec { + ROOT_URL = "https://${DOMAIN}/"; + DOMAIN = srcDomain; + HTTP_PORT = 3001; + }; + service.DISABLE_REGISTRATION = pkgs.lib.mkForce true; + session.COOKIE_SECURE = pkgs.lib.mkForce true; + log.level = "Info"; }; - service.DISABLE_REGISTRATION = pkgs.lib.mkForce true; - session.COOKIE_SECURE = pkgs.lib.mkForce true; - log.level = "Info"; }; + + # For now, at least, this is the same as Forgejo's action runner + gitea-actions-runner.instances = { + exec = { + enable = true; + hostPackages = with pkgs; [ + bashInteractive + podman + git + nodejs + ]; + name = "Linode"; + labels = [ + "native:host" + ]; + tokenFile = config.age.secrets.forgejo-runner.path; + url = "https://src.thehellings.com"; + settings = { + log.level = "info"; + runner = { + file = ".runner"; + capacity = 3; + envs = {}; # Environment variables + env_file = ".env"; + timeout = "3h"; # This is the default on Gitea/Forgejo as well + insecure = false; # TLS verification + fetch_timeout = "5s"; + fetch_interval = "2s"; + #labels = []; # See above + }; + cache = { + enabled = true; + dir = ""; # Default is $HOME/.cache/actcache + host = ""; # How to access cache from the runner, autodetect + port = 0; + external_server = ""; #We are not going externally + }; + container = { + network = ""; # Auto-create + privileged = false; + options = null; + workdir_parent = "/workspace"; + valid_volumes = []; + #docker_host = ""; + force_pull = false; + }; + host = { + workdir_parent = null; # Default $HOME/.cache/act + }; + }; + }; + }; + + logrotate = { + enable = true; + settings = { + forgejo = { + enable = true; + files = "${config.services.forgejo.dump.backupDir}/*"; + }; + }; + }; + }; + + age.secrets.forgejo-runner = { + file = ../../secrets/linode-forgejo-runner.age; + owner = config.systemd.services.gitea-runner-exec.serviceConfig.User; }; greg.proxies."${srcDomain}" = { @@ -55,16 +127,6 @@ in { user = "forgejo"; }; - services.logrotate = { - enable = true; - settings = { - forgejo = { - enable = true; - files = "${config.services.forgejo.dump.backupDir}/*"; - }; - }; - }; - ########################################################################################## ########### # CI SERVICES diff --git a/secrets/linode-forgejo-runner.age b/secrets/linode-forgejo-runner.age new file mode 100644 index 0000000..db0606c --- /dev/null +++ b/secrets/linode-forgejo-runner.age @@ -0,0 +1,217 @@ +age-encryption.org/v1 +-> ssh-rsa KsR+0w +TGak66q+LZQBDZZc+q3Ctkn0Zt+1vraCx7hLyH/FJJKRFNh84WB91F3e5DxmXLl3 +165ESCMu8l6C6Z/ehA94sfoJwcbaqhfmXFvNwsqV3pS8WOVvntq/Agewm7sXA0j9 +OAV+6s+ARiYWrmrASp8rGGZehvrFbU1jPzRYXnnV2wpioAFk13BxtdQjGLnW7rmu +bWnsZk521y8lFaq/Mm8Mv5y5S+vHZGa621IbFtwPKagHnl8098bFvQpNdadkiGt5 +VB0sWHdTFdxsMD5k5g9gaIWQUK8LTdPYTckpVe6OzwiIh1obkGWexI1HwwzLy1R4 +BZFGGdX8mr38UHFsLwmHsYux91ouTYMfwvOQuaQnsWkVG8jOYqMWImsZW2JG6npW +8Ebc3C66eaXX6sCSayqtZVaGgcqzMMOo6KuHGsJ7fC9qW8yU3z1ViqVo49pXgXxf +kWPwU2Fhod2qRdZZSgsBQaR0so6YLixldB4VClub/oJpLYfQKs+fexhEjVl/XNtI +INJQuBbmWsdi4Aff902AZQB7FxmeQn/lamLe0tpKYsPwmUlmAC2TI0Q/t0nGhkS1 +Q1VmEezYXyaGYsD0njGdRPcOJ8dGBkK3GCTChRdVmqNpjjxeZEHLcSvhLW65Cn3B +GMsdfcqlL+KvpA7eSAManLicmdUIX8tSJUjSgZyw3nU +-> ssh-rsa kEvMzA +JRpdFY5aaqOEoQGy0Y9o5V6lSOEON9BVMqoWkhM/lK5Z3h4+CUWRf6q7xQs930eo +hEoLZgmKHvEFBiKJOhf68RhPHFEEdrZmwgTou99RhAhreRdCLZEl6oU5jZzUKjCZ +9ComTyHczvoOI9dR2FchuUiq0acAU/Lbe48rqbpX8imI5nvs/9fGAZKmCWMWUenB +CrGKXd4Jd1ZTPcY+k7KXSiEA2Yel7pa3oM3HMi4Tkl29QFHqPswgNnm+pf7yoi3g +VbpgTMCPJK56Fd/auLHyIJ6eNkTz1GWjZ52eYdSPQE1ivXXpIPlOF9QxM3hoL0dN +gQsmG9Qdu+GMktB1ZgOFzj6gFMLa+F44k/1eAkPm4kIDXWLVgDDiP/pdd1XtcCwz +YxMbHkk0fHfqGlop20Ebs8tJRWG/7ozX56jAEID1mJbjbNhQm54hdRRWT7bLCYL8 +wcSVUV+RDQLZyOjcVs+zGZebKU19pa84+vOOg/r+gcRb3PahKxRV0nY0c3h3AoWB +SAtl/Yh+ITAk/QYTIUzCSqUJWLO7Z2QrFD1aYOPzZ3Cn1U3FC//tpxw3RJ04LITW +xsbIPhgAdRYU+8yOzd6d7bdglqtLS4YWY4tYnb5V+2cyCypCqU+rW5yvT2B5XPhT +MJMIt/ucEKMuoxHKNOZf384XPDdVBTtPY3anHdP9k3A +-> ssh-rsa 04pTJQ +b6Cq5cNZ+WhRPZErp1niacHFySl72abNlY5gasLTonTvw0WEYjuUwEBeDdRbOSai +BXzE/Esoa18j9RoB4Fd04HNs5uN3BLzhlu2ZFb+CKNRRpdaGNquFchJ3W4BZ0Pm0 +G+bbYa115Iwm2fIqGDo+V7x+1Qgcw6BfA5BPvTAnrQu9UMHOhmggPavQ27jKI1WC +3g6IXvDRwfETAhqu1+8O6uaFEGI6Rc3T7QHx5QflfvVdr7Y/4u/RWfRNN5SvUC+b +UlYxnInpAnFrzxVegPLJWdmqxfytNWNovFG4F9oIJwJIxi2y678qHdgGfDg1q9eA +CtYB/V4JLQLMzNBm9Nts8t7DqmoSkdzrkm68ObIN7HduNGH66hE+mfh5l5lURgBV +iQQrdaYGvWBT1kPT2rGr1YBaecDfHZZfrtfdd12GLJK/1F/gWhxfETM/1wSIPlTr +sWzFDqIwqUeyozlJN5P6Xk4ItxaRD8Nd2LlDEmV1KHq7JOcnbbDPTjzSDhatJci6 +agms2T4kEPSBWUQ317LNRr/0Q+WD4YxPJ5zkqVTIjcr8Z9jVEJFZiOBBfjm+Be6t +JjUc7CK98+dKWxr1TXMiHihDuETwurl4Vls6Fkt8NksB9O1Iboiv5PAeVUCnb8LJ +wzYHtsEsQIPe24K3rdmP4NwUDF/zqmSWzDoxQCq5UurAeHvFe1OgJmn6RfkhvWqa +CvXct2P7wD08puMLR/V0GYCr9JcLRbBJxMedH5LFh4NXk4heiPyOI6dKslVUMpyn +wZzt1GJ2xrL+5+CAiBiGOu8AfMdiQAmMhykJySRKBDPLA07oPThAyoiZcqrXKjCR +8f+sQQCV1/iOWI29hvgL1Y3H8uYkV4U/NkjRWgQMHZlDkRsEO6+Poy2sJamrxzNK +ebCMv2BX6tVKVBzMuBoJ1lhyWijOEsWw39HU4Jyk1i9tPyw8Cc2Vmod229FWJaWt +tJI4GPgiYG3vmPr5BKfDDiuDgJEL9RCRO4ijM6gzvTWYzwv0EdUjjBn9XvRip84d +HffC5j560hPvNsUlID6hrcntOwqUHGh78qjhyExg68YExJLViYzqAaYpt0apRNEn +rbtxwT3/LcPnuC3ZH9X8eRIyKQ7bKETrznUa4m0Ag5oXlmbyOoAu1oPa8Yth6F7e +PjlRSX4rLb96V/w3RqTUjJGcUi5Zwvg/uuLB90qJWmvf4cORAkkmag9bbNjGnEWi +fOgMPi+My5n66+jeWRjZ3WtXXEAC6A7gWEuoBWGdP1j/cspMBM5bK171F9rfxwKi +IXAb35HXBbnz75QXJlID27XGM0VWKpVHTn9EqHxmQWngJeuBbpK7DV6V7cknIVYy +TQIA7A42AIxhWQ65gqzCyw +-> ssh-ed25519 Nl/5yA +ksr3dvZSzYzUGQ/9NE0vXVJbG0ZrAXPeWT4Cf9GM28 ++0kgXMHRK017GdZ1L+im2bZlg7f+HArxzfNDtcuiLLo +-> ssh-rsa mMfKqA +oWWPMZ/Rwj6d90RYoJtmk5ZSHSdqtZAJaJug9T9mpugQ1wSMrB5tjqYIoc6e4g0a +50T85MdVZ1m9OYJ7H4l3OFQJDDRSzpAXMHZ1h1KptAQ545FH/oIKxsLetUcekXEo +kk+lilcbRNKEJ5pzcYKcMii4IC6AhyIpo4gRgSJrsN5O4gZgc2eNDt9kEMN9cMj2 +YXyAraVa9HUZgYgUewOECaJkvTZQlzJuGSQV3rh7EeXylTvMvoZZB49kycL/IXD6 +Zjuav5/DJ7CPTxJhO4R4ilXYWj+ahMNGuMZnlIG/lOUeSGD2blIs+LtVqg7Xaolk +fDVLU3HU/Ud81el50Ykp0A28T9ra/U85BTpO4u7ItNfcnnslzgHdcJLVOfovaZWF +ZdtZ0LGRocdnb2gFJ5bSq/hMGz02I37hWlQ9QxfydVruBYRzBYwQDHPhzFdu46VB +1mSaNzfY4ebcIpknOieLrwHvtxZKE8uySRsrgVSxKHK2O6DC8bhzrOZ7sb8jEG8D +zrJBaOw1TjZbK/vnJ+DspwfkvPRkX/vNdBA0N0Mk7eA8ba/tMbUBzbLSttCenqz+ +PBq3/paHwycyh9BkBtm3Vq3nFuYsFsREeBQF798Wmq12BmJwniyoUbSi7Uuv2MrH +DRRfjXKzYKAwVQ74b7Zl/6lVGotYqLNOzqGTsHtHjNyFyvSHKxo+qmtlQxBW2ZCe +hWwFVgjO1vgAe5qCfox+mFkqIpYQFOzg6EQCFuAGaqD2Tp3n1gJSUrirkRonW5eE +inPX5mt0pxljoetKDxrkdUG56yiCkeagIpp7Q144zAlop3eTsH7YPWW2UEoqqXMq +dv1RhrG/CYUiYKpBdhkBf7zoKiml7YUlcwojXIV+xXI6J0+7EYO1Zu37tTqterCb +wgG1fQgWQwD7DVUV90Sg0f+/66h/Yzg3Rbq6lj1CueUdMHlcWovQkXKl2DzW1xed +KRZDuZvQb25VOmtfZBI+FF2+U2OfKgCZOLrgldwWVmdDVD9ewx3y/ccrCNJPoZxq +axCfomiUBYOTEwSbEzJK1VxhacmSfPg51UR+WkSmOffy4mrSKwo94DGqgDKvGc3n +wq0cP9K7JXcfAQY0SvtXsW29I5smpBWn0x4ZL5xZjUhje1TDwNvblMekjkEC0EX6 +JzSWn6ef/tZ0RjeAxPghRDRFXvmHLv7jpc9ccdf7mQ4+h1wMEAen1IS7zL0mfuhD +d8QC2IRLcFXx7Rlc5yqhxYMmLeCWhrPDT9yGmU8rjHBf+rykmvsK1wwJeJTDCz/E +/l1J9msnrg3ywRerBp7+L/rm49jA7qfDivid3HPLFpmhC/6kQEL0kh3RowOM64Q5 +llxel4VBRduhqpQtpiL7fA +-> ssh-rsa hjSvjw +EVscgjZn2zEMXymyHWR/Gs/18fR3yH2NoNd124wXu8XrQrih5nrN7uRGiJGSnOFm +T+j02dCs64knc95a1WWwG6n6k3IfnpOcEfoeZSV3fPl+WcUQdmzu4xQXKLt0GKvE +K5VDaHi8YRSxQ6mrtKD15kCyuAJZ4CLl2G6qhoDvUbfmrcyJWF8uwRfCk8ZPfczQ +aHU4AdkVuqt20NmIeH0l7SIYN/qhtfNHCKEPQjQQswc4P/eu3bkIboVmKOUc0M3D +kFK9Qcg5/ps7z3te8X+F78eizn+Q+m/I8qGFJNlebKBQXSgqNfYylPJ5NAgfUciX +FcOU2peAI5tW0IFuInKKRSL1O9zM0icyC/bVJXEgsZA1erQa5MyIIRjaGjCZPHZb +PHndn8z4657S/YCUQmCIzIsWcaHPKq1xfjqZ0mOw0KMVNDl6SZZjhOQztfV/m2Pz +5V1qKMv3G4Sz7aC+fMvkoynQZq2CwioxQMkh1tTEVbffYk0A3M9jEF5YJClFZ02E +NAYGlaX8/IOI/ZwelRW7C5dPFdq1VZFfJasTD3aWNekKLeiTjKpTlC6JWB62DVt0 +AQRMCisqCygygSUAhQI+3i1VVyU3YGJiIugxn9LuvvBcmdLq7/rChznGJAcYBAFX +R8uejCio1SXNPMzdpL8R6vjTbs+qEzYIzkXC1fnqMkadH28C51UfKyQV6dt+8OU/ +oqXlPVy8BWmEjxanFHqVBZ71RTQCGEKPD63Vbt5YjhUM+EwseQJeWWOmbFoaUulp +BKJJ+bFkslo1h/uXDuS/g7AOibXjMfJ3LvoH1uwzfEICQbVgmgSvf8EUQxeJ601r +ZkiYrPb49/Wg1d71eo3y/2TIQVkL965O5pevz3tf/vsXlO9L9LKNL+MasZCw7Tob +o7hpbAa3yNFs11wA4K7liAZXwGK8ak2AlN6AJl2b+2VAExJdv1EtauSyNQ2EFxPN +uvb30TMpzICKzbhacj7bUUWot/TbQrGUcOVAIF4LQR/JIqxqO/mx/rvsbMX/U+dB +sXJNhyL+oTofM282O3QqpKVJ1azRJMqKxr3zLGZ9J8VlQmpDWbJBIW2NqS2jtt2D +KKEOXTA9N4jI6zIrfZ+I98HRhQ9FyjUt0VZDH5VdDOD1i8nWnUXgUwBloOc50dZT +NyXI4rk3mt6r4PkRvKpS8nYKeVwRya7pXFgshwRBSMhskHQslWb0f7uVpcVOgjEA +YmdSWO0Irn3PPodrAqO0mEQTRO1Azwavx5oyWKIZzld9JfVujCVwkLcUhVD6mpB1 +MA/A3XWbOSyXEuYPpiIwXGdLoLqmvZp8ejr+JCAC2sYiJ5Ks9SiNaYTbusgJsZGr +F22rtoFba7eh/IXsW+IcjA +-> ssh-rsa hjSvjw +UgI3i8uAj1kFs38w0zsojI4E3mYeEXASYtQl7qvca2ItdTG0j0ixURosQKZKaVN6 +PSSDOwGEIlcRgxB6KRxHuqPhkLnerkydooPCaXzE1Jd/6x5jHab7XnOBarPqdZmQ +bA8L4rvlWt5aryzFUoXhY15JMbPcwoep8x7D5F5yqdi1DZsTtJtofyNMH1mVoG69 +2fExNaDjx50obf7dX4R2jIs8tntmoXUpbd/OkZdohO/TVOTrDd2tQ/ZZ8eaSM5v2 +/2PMFPDNfgJM+lCRLBl6gsx2I28KT55rtZ38DGikjE288CPFJoL1+PNTKHPKqBQP +Onxawv91iA41y8QiRcXVulJ7/CNVJAg9WDMUhd/v5EWruGbIKvvV6cGzxrT0ve26 +UeieXsTYn4+FpVsYuZO4fGFWeGcbBzmKyFYGD74LtaE3G4Y6K6OfUZzU9BF0/JJA +YGW03YpQ9VWVlFbcxoc6xILvXCWKBeOEosBEwFaGEPP9ikYMc9o/2SOWoKzrJB12 +5SenHqSHaY5zEJ/O8GD+zQbqzQ1WdnO4moPrVco7uuxZSRlI5a3AnAPAUDCb06Zn +Ln6t4s++FguGZms4yMs+q7sFU+WrySJVCnkWZv8oxGqmGBy5y2iPkaiq7uIIvGwi +ek/0IdzG8RY6Su8gkf/jsuymkngGMhhCPxxJfQRig0o6ALvlxVfflZKT9NXPcvjG +4sns8Y7qnGG9fxS5gZkCPJ1BW0QyapvyzQXj3FGbiwZ094AzO8xHqzVoYrzfOdj/ +4DgeAxdT0mfu6JMHJyWhQ29A9/DiyoCdSnfksI4sj0dn0nmfBS7rtQzVC08d2wl7 +eHg1M+prkTh5Dh0o+hE8LCOHhyWMvf13w5lxqh6HL7DpyE9VOlwnqb8IF5aZ6DFq +WAPGCDNdrq6QKy7SssqDXSCuURzvouXR31usa8miYSiJQFfNQzrS0BtgM/hrWX7/ +vdRE74/jH4Np2U6vrM5HqTNjnsa9kUj2CKi9/uAN1k4qX9CTD2xfQyqZ1iOzeO9O +PFNlE7CVvaI++9LRAjTPfgNXJXFV7uYsKwkSiHr3e1pG7Q6gJez6EzSjTw5FEaWc +DKAPQeJAwrbGaJ4Rh5jxwaGpDrim6smjYNpxKp3jnLJnVDV3d8w3B7G9g8atq29Y +v2U1FdyRUsItPOAA1HNo0mQX4GCfGFGjEc3mdWn9rmnlWIFC1lVvZe16Oremx4f9 +1uJ80gO7pKk5UGCxlEj24//PYlQILCIaNCLtGyHsMSznqUzyRSVO4L2nuB7a0M+F +BXahbpQa0f82S9mwY7xFPPXMhrxusqMKPJfMwdOUbw98kVz6p3ZWJ8TPrCbeSp4U +Yik6YiylQBgrsShAvC9elA +-> ssh-rsa FS7DnA +hHARwZDqI5ZiBbcO4ulKJcE2MtD7GikePFoiBeB2VZ5UAcKKU91GrZJLEcfa7fp1 +v2enxX7t26wdzlHoio1UOFp3KEKBY9qmjRrPaZ+KHoIRUUZXKQX7oJfkdqvBjEBa +247q4x0+NKN2BNw8Hb2nJYhAI462McAAU2sMs98S02vBYqsl1YDmncPdQGk8d19r +Wxfi7+BPA7f0QEhvStqYuPCh4g+08u5rFAQ6aAK74D9JoGTSRVvC+tcykms8bpLj +S43JfeMW2/2tjpTwQufmTkG0xOwo5/gDBBcOfijsU9H7MabTTfavB4PWjiDHNNzb +jIReLNj1Yz/fOMM8Ubxvwmaz25EF9meV3rrIBY3GwKXxtOR24+rEqmTnxYdtlenA +11ZQR/12fnJT6WMoDN3GMJh6aqk8lN2kZlHtg2Oa0EsGo5fmk65cQklGCqn3xV+o +E+rS9NmlmlebvJTCO7q2Lb514NBX++V8ZivQ6L7wYgH9CZ8OCRV1jFVvStEW5DKY +1sGWLNbXobWqIBFJsZ4jywrKPGz2xIGTiFIyZ4x7r2A32535AkPqaD3QRFOWvAtL +FX5VLL/nM/tWC/M3egpq2xSWMPc924zquf9rqLF8MI6yL34OdiVRx9nii5INmHKP +sqN7yhwG97sFndkYF6gLQx35Mk3zqx4daHLpl8Eb+JKnEqbpEki4zyEWDE7VVQ58 +2juB49s2Ig6o3/MGt7+1lxfc5R07nfRkzZYHTkdVkp9v4zdVk9dhx0Ju+wwHbFr2 +D7zPJEDH1mQrvgZ2QiwZlts3DkSX/NBZdiwGYezJHohYFw1tjYs37Q/yTW9o6QRs +zegzaAaW6AcOJvdZzaNfnzc/ghjIziJS2i/zUc/yl5clc4xgiKn9dl82rNpUq9zg +pVEoDCUjgdqZjrOHhTEfHMtqvO/Ip/A+1CuOZHL8QdXPrndsve983644+oJ8KAWm +R1eP4jc5qigSLg2ga752YFuig4ipTEE8g7mHFuThf46MW4pyMz64ALL1ujvoyEO2 +zHXPySi1aERICVIIOHiJhIGS6uPV4/9E+XZxpFiWq6euGqzA/EgrAPAGZB6j6m0p +Hbb5WvoVezEwBzn4PTSSHI/2HyUaXtdKcgGpHO9FNobMfIU1a3OI66RsIBc3yOUT +qSu8sOwbUkKiYrQUIWhU32bp9iXPpivvcuHBHQjQb+Z638icXzow0MtOGXf+eXxo +WF7YBG38aymXIj5788/5Xlg/NgbD7DPAh3MMhUGQYeC8dD1vXfoC6g/Ycpitc7GO +LsXIu9N4RLer9H+n+63tgMFI5J61NKe+CqnnYJ+3QmHC2NHxdVW9JTX9ZK1teUtm +DSVz0inTL6APKGKFaeL3yw +-> ssh-rsa mMfKqA +wOMp2aKfR8KIORoH9WbTIxLiju35IVE1+uxTuHeDflmJ6QvGnNdQhor0H6R3mKhR +MXnVko9zBEaW+QIpDrkYfdEGLeJoQuCDC0RgnSR89CjPkd8XcKbJ/fEvwKuR1ueA +CMOPi6lfwtgFM7IflbPUruEROCCID2gbpSyEKA7uAKrEzAxirZu65pA50Itg0OBF +14Et5TNr73B4Vii0lVjGlQKZ254izYUBW+ggflgZIITnlmR6sArgwk0+umSjD52f +tDdNbi0WkUo2mArf1V3JClmw2UUpUGWtnbi+p8QdMqUdv3ikc2I5964T6Xog7u0D +cqFpot4D2x+01rTF3x0DGvYynvnMrp7WceSFJkdHNUZnw1PGzQ4CBBZ22s6IciFz +iOiIPT9zjZoFchbzuflf+qnzTngxXqoDacPxD3MUN5PndX4ZoudhZa/6PhY/4vI/ +PRGWLCyz3S0syS6gJiIvBV/c3DuC7ghKMhVC5CgVfprI7dJgniNdlIfArqBOezDO +IAbZlEit6zSfLp96kQ3XCG5vvdd9OkrP40pYm0QImIx30AtKVwUFrlD10GGtWlLd +6k3sTIPKIrCoKkEYikP+NWPq2mNT07QtlzPctWK2s2iTXDluCLLcHcl4fjuDvD5S +bXWz1wY56dRT6odwVXghZKdxiETvSRK2pSCWlLMpQOQMxRlZGgY0bHgK7QqfTUY+ +gopMgrgtf2RI5R1N/mra6PwSjQE1KP7Nb4uJCdqbp0KIAhdQRIcr2knR9ndk6iXH +sZP5Z6tcnWr7yzmSJAI6/YSYieKCR2NI1RsJJ+e9mm4dhKuYtD8LOTx+9ZJb3G02 +cpFrmiNhYkm1tfYGDS9I1jUo5Y1j3/LkgLZA3AdgVjPFJnYuG1qgNG9hi5LXZ1q3 +9/+u8gL9IKGI15AOM7eXIbmeqCE2cS2yyCNgn74GHOJyJXUH1mJ7LBkGg7pMAAQa +Jko4rt29X2ajtYOa8Qriq28s9E/XwJy2SD8TwkkNREkUg6pM4CcdZZ5s4dqWNGVy +dNSTXB2OrXKgmbA3DFBIEuv2DCVwpsmPGuRTeGEAWS+5W87Rel44t9teHoI+Eq6h +J23DO7OF2JpW8ldzoxiT9TgQs7xT1koHqowy/yUdEM88r6aZxCWShvQbDQswpZpC +AUup5K+wNlZ5nLgToAs26L5Fl90vM50R+HQbM/ofWDUWOwIC6sUIm5eRcV4IJNT8 +CCBLLBeuu7pjYs24nEl+eI62iB/J8ecKdEjpmfLNt/b9ddz4B0HqmZYKGW8SPKSM +ZVhASmjyzkCqKSZllLH12w7FpKt7wZM8t5UpRHtCY/jateLJW5EbP0gtBoCFmFeX +UknpsQdBcS9sh4HnmkSNCw +-> ssh-rsa PYwg6A +iyKZqreDjbxDxGE2Rk5XpmW7Re3pLg9/NhvgLQVKXlfsfBTqbaTf09co2ktnblG6 +iGVv1h4LU3FQ9R5wh+h7qOV86hLYw95LCeiwDBToONoIBfiWA9Df/22mym2pz59H +osTtUyoja0fhMoYEBFvOQQZe+CR2BobyBlNFvMsrrwKpvjSsEn1sVcMSmUPsk2rn +HUDmGFDaqknfNyJWaRSUdfSq7ijLV9hK8Mj6y7XKDcnkD5OzJUMO7Tf6zpx/Zkj1 +DieURCEuwzcdGxKFitb2dWOn5sbMIDPVgMGawybE5u+TcRW5VRkvYkXAu8URywNo +oaQPcFWqmrP+mzO/0XXOvx1oNi0YR/zWD3Zw4ExondvDQCpmeLfQDW4tXZtTTqaJ ++5Nkz9abkXjJIKLcdwRnKUsapfQv1/asan0mnMLFyL3TbtjHYY/FXXwg2xYh0VFP +qU2bvQh+gzoAaNViMtk7UGoMGJkFQo+HfFy67QYo2SX1UpzdYf6Y5TDKH1jcT/UQ +Ee0CfUTxazcp5gTxIFrXQS++0GbTJpa1F3Au86hN/oqXpb5cudoJhBYuxqFADH7S +EpvzpqT6tcHzRx2O8+8aH5rmhqXGLdmeHVe0O1FANh53u47AUhwSBCy+YO3rA1TB +p/pN1yQGUgXhOmnJxLPmiQdevqf1UIZ+tvf39IsvLFQe1t2C37HkRFEBFqmHBZKP +MGMNKF1aOZCsQO0ArCv/SbeHxs75xwudJhEcUtnJj1WOL4LFI4LVw3csp9l/4Frc +e3wxh1vGl7RwIZ4kyIqkevoaZyTX+A/8IbDjyNR+d+ue6disgRhkjgNMUAOf1Jzj +Vr2FbJuotYzK9YSFP+0ddoTPTmI3h1Ep71jo5Qgdyz8Y+xJmk4wKVAhgpVW57phl +WmZzxTDS7V/7eqvuf6ONKgNoDxKqsWyD5hfyitqTK2tww1ofPz0PoKrtgf0Itt9S +5oHlo/lEvt9sbIx0/BVEYq5nL+TFceJWOrtuV+CKmOIVeVRon9bUhHOBJX7FWW5Q +/Bi12RKBpr/IsBC49qGY3uMGpUs6EseTG7b2P/CoQ8mAIPjsLs5n6A77E0cHaK+3 +CzeW6wyuNwfQsZaVvR5+hE7sqy/Ifm0R90QYKjx4arBZJUxHgwuA+6NDgnOEHiTj +Y64zxuAWwIbN72xHIqnYeeyx7Zs8W054icxlaINibM2+pUaVsL44Fbu7RBn3u+3H +KXtF+cDa18JYrpEhI7sgRNmC7l+JjfE7FtO/IXGuEPjpJZJOzj8AkKYQGNJTRY4G +w1S0NkHTqZM+L4dIGCWdYMSLqnQchK3ugnO1hcrPkh5uRAziuqDSYFNrhq9dWl+G +VLWwEma+y8jcvZnTQsfSrQ +-> ssh-rsa 5JwzEA +lVYxXAEEGu08S0xXf1tGtwrnUidO8pVYujL2f7cPf6sLRG7iFswuunPkULOmj9aZ +GjQkIhVkNumuY+fiwUWITMfG1DP3DFBFI77y31rw9CL51BjM3aHuCdzjwhum10qN +/s9rDoJqnEXBQnQbBOmT9L9QjblV48fV1jxpUsBe1Ih8cT3AU6ynsdnYlcw+3QJk +qTz25e7RZhJhxaIyA+rFv0ddFAcVChodSR1Wrbtixn+1sGjLB0e0iagrzYfqquBb +xB8wBvpnh4oq1WjNgNFHZTAhXh3rBaiD5XQ5x1ndeqQHwqr+K3fAJGq9xxNnJdFm +O7xoiBhGnIRwyGemtgd4eIN6dDmBahqlB/WHNpNOhiwhDKAErUHfupSWLMaW6Q90 +dkDsaMO5dPkY96xLDYYr34xF4935p6yoDmXoVsh+DYJcAXqZ+3JDL385YIPK3emZ +AGyHx06nbgYPV9EGvco00BvujW+83f1S0OcY1EEE+LpHDXJ7jRRklQ4k+qy/l3WY +EBuoQ0pmTaGVMeZfJedLHiDr+evrjxy7/OQm47lX7IMiZxjB3VIrnF/3bk7wAA10 +8e2ljTWyfZoB/ctwq1zw7n5EB7wJslL26Hd2LcAwUwhKwXDLYohfRhjqAwmd+CGR +dq6KfgxYSnODmJb6HNzuAMjc5YPQPJYVHHSohsdFzpLJvhM84y5LDR4c38hoJ1B6 +3EBqRkMIOjDE9mV2yPIV2LiNUwccwcuY4FEQIwpPjMRixxaEPtdS/4DOwYybp/TS +YQBrUtzJj890H+StHivh14xZvgwYbf4cIaVpI7xQJMNmy4h5vpclqT+QzUQ8WOUO +75JADMu4SwnKzcWGHTtViR58BYq/AavzQXUQdxjrJlHkgCvmqFAxleSm9hhiPlxs +yT/IrmyWyIexhswTuvZYj1UQNzAaSgo90JYH+/5ZDy6kiJ1q9JRRXbW1XcBrTNMQ +oeUEcjHsT4BBRWY0EDLwMsgxGrF2trSCZokIMS1jTu7dMGgwznN4rJRjyyw+9fBJ +jVUAM0PVIYWQZ7EOfAv4EykJpi6H3mKyfO3CRkiMl7TwPFPf8ODM+wNsG8rurWSV +8wU2/zdS4Lb0l40MlPEdUykQWSHapAzeXq3yugL3mYMdNFBEJmQ3gIngjaKC7XBb +Kp/RFEGAZvr7TBXxHg4Izr6AmNEE9d0NT8VoEf1FsKaD7f5b0/bMPl4AWh/LeDR8 +aCMuiF6O06fAnfmy8MZqAoOcqPDjswp8su3Dj0bUl9dwrnuhKkaFHP6tdzKJUpAc +5XWQhJ67R5/OnpT/rCUTvOYxwfbmmdxVrSQ0viEGFo1C2pXa+1nsSVBil3fDHHnn +VzSl5PIsxOW0u1HbRjFNFw +-> &V'+2T-grease +Y56HHiU0W3NPRn8POosE9UnU6DjnAL/oX1j0MTAn9UgNS07/tkz4KNexM7eBBBgu +S89wSSkLAzTxg5sdIkTFQjnOwO2LW2YueUbhffNwBlgjZrOrbtr4QgLGsNbPpnK5 +w2CV +--- yoROLwjTgTkXm+krjU8BQ/NQeLlc5Wf0S7m9/9TDHxI ++a8%' SqFˮ?sb=;wˮ`[oC~y36]''c;%6C\ \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 5640d7c..0c12dfb 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -41,4 +41,6 @@ in "3proxy.age".publicKeys = everyone; "monica.age".publicKeys = everyone; + + "linode-forgejo-runner.age".publicKeys = everyone; } From 0b6883114eead97f805b25b78659e757a7b878e0 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 11 Dec 2023 21:18:16 -0600 Subject: [PATCH 11/25] Add jude to secrets --- secrets/secrets.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 0c12dfb..75a5458 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -1,7 +1,8 @@ let linode = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBFQOgRYNWsmG8SUV6T8oEFw+581hNLCexCmdzFY2YwH9tgKiE3+doxrKqAmBnxsg80zzzRmIqs+4i+PKCK5waqI+/70Qozf/SSJDzepjQRhrIvZBlhXF9N7ZfAlrOySjjvHgvkaQmS96eOxGy5jNpGR8uSMDu32bwY9urnJ3lskPajaHeu6/abrcFc9rEMkVgC55Itr6kbR9Lv6oRWc+faue6LAEhND1RTflPloUyueWSxuZF7jvOCgEWkuynWHXiy1rr+5PlEp7pVDV+Xz0EXRt/kCDPh6VDdQdJPx98FX6zdz4u2HvIxo9dXao75k4xelFsLPb1t7+meMDkOtYLRiVkPzl6/0F23nFvLRWvnSl6nduO9RwCsVgI4zgUvYWm1aabw9YG0+JcaqU62GFwediFiyU4F7h9ALNnZwhvL3UWvbRJaOxuZl4TJk9tKUIIZsn1nGElw60wbSzknm0AD3fR5NnXEd0zJ3NE8dAS3Yy2TolkrTAeZrVd+7x00roPM4lcXgccWHl8e/SDyDULxMObwVlYOf+CcYisQGdzqJ9GC5Y39X0NeIpgcInpkxW8FYfQUADZ5msHrXNp7FGPrVJe3q7JBdLL4fDjiByHlH/qBziCHjbrhoSWzYZMDSYO1w+Rl0J8A4dSRm16+YwQ+hca3iEwcoKFJcrOeGTGGQ=="; macca2 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCkliEMztsNY48zrvskma5pHf1nYqnRAVSQ6EZ+YQlNb4T70S1cyyKPnVYZoBekIUOWy1pa313whNuYDrfUTA2gqQFGlRFTT2oaB6jHYgKmR/Wty0+m1IVIK7tAkNG2tnb83bfDGc7TjAS4dAAzdakm5ipsIisCFoXAGwvD9vOpG7PwnZBLei0OSw9X3UAn7Fwt0BMs8gwUdq2KoiL3zfc/3cSi63ilWxuTg5mChA/y0Vw9mrCDfxQWsICVkNTJmFDM4CSmsCkd9/VecNCwKrw9cTHxzZLcTMTvqAMK2qk0JUk9XvxmuCSMfuCyIfvk3gBJvHV7zWEr0Mw8nJU3Tp8OdP33rjiRmhz9EPacFZE4i9BQ5ltS/i7yvyU2yNyMzfzQFBxP4Ip+7jCELiBw/ozxVoKFOWNOF93EWu2aQpmVCY1M30e0RqVx9cORnpF9GKa6khhSI6ueCmwfWbZrIiityFZYv36WJJyY/oJXdJlGyDk2BpL9M00YdN4sosHrInCOTsIdrpDVLkG2gyww3ImRc1JjKL35uAZk9m7pY/Q6OWz4rGQr1IkC29l8UOCF2SHYYnCL6xNkQ1xL5Wj0lIhMal06/FMGZbozb8N+EVvE7Bp/dELV/N5LKuGMUd6VnnF7unSNO3TkAi96wDKmgjHgp49z5S7WXXa6s4rZp2npQ=="; - systems = [ linode macca2 ]; + jude = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOos0zQePsa+T6Z2dsKbPOvEdrBQ8a6mx3s7pN6ysCI0 root@jude"; + systems = [ linode macca2 jude ]; user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDLQRq55JKqLifX+31kEXyuoB8gfM+5thAlgR7XLPvvdu6g2a5cCWyozQ1I2oGbPRfJtzcJ5ifM7Ii2PuqAj3MdYFLHBEDOhIpBBWme9Ts2YB9HJ4NorBvB4zEfJd0Q7k2MmylyeBOwdwGz3bVqPRDcJbxWFMDHqr33FEs6SXdfyAQ5SvhWGARI84qz8zUUdOp6M4e3aIGO3cx1gA+YzYQ4FbUtL8+m1NFO8VoNFMZBMf5q0iF/SgEu5bmGWUCePia6DvfeBFQ2/y4Y7WmOj980WE+JmFTkIvmGruMYeGI8FuDQ2JIIIcehddy9bQbPF4VlGnTFsHqJYVRUUWc+vH1cPNMn01oB8s27ogf9e1lyhIN+cZOgp/jDt4eXcO4Wr04uwj7CI6m+d8iMQOa5Jv0hmNgqqiwOMVBlKeo0FCxlovzwvn/Lia9WZ74JqM6JwLCD8SZ0oFgiSIHOTHrQhr7iaCmj7X/0ey7VR8FnCrpeAJpG+ELTfWGshF1d9QR2zW7u4EsXTDLiuOmdJ+/KxwMvjMcWdlg2+Qch6SwulTQRxWaED2IWJo+YiAql8eaiVXu/eZJGLoiskGFZnONoLrzIT4pSjakPlrSpn/M/GkP1pDpaMkr24OhJsGpJNEU3F1ZcOMqy2iJzIxlPmU8Xg0I/OrnbJplpaXeRCqnmouJUJhWkaPzawaVyW7dtvprLWcpQtUgTRet18WLyOrLKlq1jwvNRMTPKUJ2IFJMpk2pNEP6bdiUxyMa4vrRIEU2p1zsYSUJpCRLtccZ/i/+yAqwnTA2L5TdAORi9nD2uCdM/Ljz52V3A14QapS6oqcoWx2soWKgnsbVXoG8DxmUTpll77Ze9t7Y5216SMInWuOu0vstP8ZcgFmWsiBgIYIuLA58abWHMxgD251phYidua6R3Gtkf8J/kYqTR1P6eJF1bt5efEg7FD2aL1QQZsYJo3CRNz7yVe1XqMdPbfe2mFXQVF9TDX5x6r9Ir3d0KiEmTlBdByz8nSyPJ8IQxC58NT4LNVQs3p2XH2Zcf6B4JOBSmV4NNBnLseFobsxniWjkWwZigED/D2iu3OXuuhmskCbw0hKy2rBcKffaSNMioVqYIiYNfKlMlSvAacQKqc/1HCpqgX8PwAcSgNSLy4K7/gIrTHmjY+g+CH7onzatWzkLo+0vsZRa/D/qwhhK2CU2FeU07mhnWxWuzqpJuqVaAwDTaEforK7nQUtAOFAZZP6qGhIoqsynYt4THb+QORb3QYfaP0PVgQwXfVU5Q8eUQFZ8A+siPtOASFjDumsIbseB5VzkF+UhvdseJwkX2+4pVFu8eHFDyvArYsHeGK6fBcQGJFQc2jSs6doIP9HD9IO2R ghelling@unknown38BAF87CD102"; genesis_user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCXP9nxL5Hg1R1AtT78zJl+ObCDZsnWWAqAYhTVjpRvYpiTbODvCf2IImvUsLGMdgo/xdSSzNqQcK6+KZVeNbvRSsw0ssWw7ggYnhw/yyv/KDZwnqXsppeucicnwpQNvts154yOqAvuuMaOYCTTQoOVvecDdgtA3svIpfxL3vVB/Mq/Ns/NwoE9XKz3NBYlWytqDcvSwR6Les7RzbMIs6axSfMVNwm9w41dG1NqDMteLjKlQ8bFfrtWXZ4QHKlnEWatOgJIzbP1hU91JvvzfypjleGuE9EBCSayqhu9PuxJ1/yxMJKSMaXUl8SoPMLsPNr1ZS5ZNjkNCvZK4fI+CqyAXtbgeSGKIKqZhg9z6/fR9SG0l3Gh3Prtw+AEuE+Xzb99Bi4IAe8lTaL+lw+z+CmsXR+kcJ4nnNrmf1fnDsI4l1EctVGb3Yt3tutV6GjB4mDjIYKwNBxuIx8hlugmZIy3oEUGrh85o5wnXlJQzmhszS4eas99dj1L5tj5dF4O/ED7SyQI5e7V9Pb5AgolcvLLXcFzDuy43oU8kWvQJMMvbEIFr6qPXWmp8MvrSTucRQCCzWJVudhrYhodXA56tRoJvFIRs0s12p/YXzsmJbKxPiVwLGOlCd2CqbdM2rCqN2LkUeOAQitb/8wv4njRKZ4lgqhjyXnBtoD2Nm/NmuIERoUY9J21dOhc2tg0zLvH120xVKa+WN5HVOOG9LyKl7koyc8nqdSDKFhcN4joYmnZKfyJUJzQIhiQayEfvWfTNJiNVkMIE2OqQ4O64s/7QzOHeHSMzY4TCO7+5bK9ecOqPxCDHLHhO0xVA3/w4FscRkObjkQ6zv3UCFJTSbr4YkdUIk8OtRR2KN9y9txrt/OS1l1DigVyuYUdz/L83+Y8E8d3l0hq/S1YLMwlkCbHE8hm0HxlLuyTA3OqXizRxNk7w4ku9OC4+nHrj03i2apNG0Z/ojcGsJxSBLhPGlPWbDJ2h7YL+lkDZFitdhBZHjIQKC2dNoretA8zEzNk48Pi829NFRuXqjSsq3iOJ1sXP/lMAZvdzbZOQ8CrH5SWb9GDeWR0uh76RXzKXvv5UTtu1PpYj/BHToApc8kUAxpUh3ypjt6bS7XLYtk74PEZHD3HXbpBYBnMNPUp2ecDw6rxpLxq3rnzROriX4Uvy0sOx8Q13ZgrZwxLeEWImlK9qQT4SYytGGxt4vwG0R2B8zS1xNiNC/B8jnBrK4GwnYSuJwNMrJ8vk1u9gn1pCj51RslBsldVzVB30jxNU74iD/WQGJudJrUAYkQ5EpArKZK0GQfaRXM6VzsvyLBA02CZJkeIU0jUc6Q1Nms+C8teKrP8+EKXONT/igsLXwfLMiR2CqVP greg@genesis"; From d427b57276164e07150947732fc2ce978e6041e8 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 11:16:18 -0600 Subject: [PATCH 12/25] Migrate everything to ed25119 keys --- home/ssh/authorized_keys | 7 +- secrets/linode-forgejo-runner.age | 225 ++---------------------------- secrets/secrets.nix | 28 ++-- 3 files changed, 21 insertions(+), 239 deletions(-) diff --git a/home/ssh/authorized_keys b/home/ssh/authorized_keys index 2e79890..f861375 100644 --- a/home/ssh/authorized_keys +++ b/home/ssh/authorized_keys @@ -1,9 +1,4 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDLQRq55JKqLifX+31kEXyuoB8gfM+5thAlgR7XLPvvdu6g2a5cCWyozQ1I2oGbPRfJtzcJ5ifM7Ii2PuqAj3MdYFLHBEDOhIpBBWme9Ts2YB9HJ4NorBvB4zEfJd0Q7k2MmylyeBOwdwGz3bVqPRDcJbxWFMDHqr33FEs6SXdfyAQ5SvhWGARI84qz8zUUdOp6M4e3aIGO3cx1gA+YzYQ4FbUtL8+m1NFO8VoNFMZBMf5q0iF/SgEu5bmGWUCePia6DvfeBFQ2/y4Y7WmOj980WE+JmFTkIvmGruMYeGI8FuDQ2JIIIcehddy9bQbPF4VlGnTFsHqJYVRUUWc+vH1cPNMn01oB8s27ogf9e1lyhIN+cZOgp/jDt4eXcO4Wr04uwj7CI6m+d8iMQOa5Jv0hmNgqqiwOMVBlKeo0FCxlovzwvn/Lia9WZ74JqM6JwLCD8SZ0oFgiSIHOTHrQhr7iaCmj7X/0ey7VR8FnCrpeAJpG+ELTfWGshF1d9QR2zW7u4EsXTDLiuOmdJ+/KxwMvjMcWdlg2+Qch6SwulTQRxWaED2IWJo+YiAql8eaiVXu/eZJGLoiskGFZnONoLrzIT4pSjakPlrSpn/M/GkP1pDpaMkr24OhJsGpJNEU3F1ZcOMqy2iJzIxlPmU8Xg0I/OrnbJplpaXeRCqnmouJUJhWkaPzawaVyW7dtvprLWcpQtUgTRet18WLyOrLKlq1jwvNRMTPKUJ2IFJMpk2pNEP6bdiUxyMa4vrRIEU2p1zsYSUJpCRLtccZ/i/+yAqwnTA2L5TdAORi9nD2uCdM/Ljz52V3A14QapS6oqcoWx2soWKgnsbVXoG8DxmUTpll77Ze9t7Y5216SMInWuOu0vstP8ZcgFmWsiBgIYIuLA58abWHMxgD251phYidua6R3Gtkf8J/kYqTR1P6eJF1bt5efEg7FD2aL1QQZsYJo3CRNz7yVe1XqMdPbfe2mFXQVF9TDX5x6r9Ir3d0KiEmTlBdByz8nSyPJ8IQxC58NT4LNVQs3p2XH2Zcf6B4JOBSmV4NNBnLseFobsxniWjkWwZigED/D2iu3OXuuhmskCbw0hKy2rBcKffaSNMioVqYIiYNfKlMlSvAacQKqc/1HCpqgX8PwAcSgNSLy4K7/gIrTHmjY+g+CH7onzatWzkLo+0vsZRa/D/qwhhK2CU2FeU07mhnWxWuzqpJuqVaAwDTaEforK7nQUtAOFAZZP6qGhIoqsynYt4THb+QORb3QYfaP0PVgQwXfVU5Q8eUQFZ8A+siPtOASFjDumsIbseB5VzkF+UhvdseJwkX2+4pVFu8eHFDyvArYsHeGK6fBcQGJFQc2jSs6doIP9HD9IO2R ghelling@unknown38BAF87CD102 -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCgg6FGmtWPjw5iYTlxJLz1WBCE7zhYhXgmfPvFRt6cd+sPdBdD3axkYPwuUxIa1dxwLEHn8BY9ZajFNrbD+Y0C82stxbBGLRhScj9phGP6LPJhNJsqeuU1rXcnUS127GlFayBb92UajpgMBVlQVJVgOikdK0GZWS4LMsTafkldS5leYr4o8pJ94ZQUk04m9Y2AhkLOMWDdLqqbVS7rFDKsfNDm6YUIrc4fCFvMwo2IhKb3VMv/CqPBFWx9YWFnLoNRAUhVTbcpDWBprvgAirf1rI9jXihX78gBLYqaI0shZg3mldIfQPaPudxXAYXZBFxZkcdnlEwOIL3jvR1bQKfRroAsLs4Nz66RDMIEC6cYm6QEIppFzx5pAXmjBHk8RPYPV0Z7gHxlp2yL0C3K6E1XN/A6cvK719VxEI8Sqmzl7Dd9/wikuyZhA/ZJfShpGTFX7M4wWKd9ZB6F01ATqAqACs4BHIIakl01C+lad2WQwxCXZo3dxGTMGoUrWTlTcAIKYHA0uun0k3oU0KRcSojpGMFCedR/HfLXZ/3TxeUHAZzSFKAQqZPE+6AZMoDSqVgWW6gPvRqVbtgG17qf6kPXM7XQRw/mNnjUWYrqSzDU4eEyN0AcfWhAN7defp+ERNlDyIdvYSiTniONuBMR5nz5xhLctKosJ1DaQcyNxYok9kGhG92pShRW11JmU/AmM3K6svD2tMRNRg2sJUNYHVzr/P65vZ43jXFV9hn5VTvhNofiDmAgTiPP+4Xo25FHtzu2CDwd7ve1zZZ8WyunmHx5kevdCQBcscKnpHO5MK1EBG2acThWD3HbfzncLkP6w5ZkLngGieIB1C3UjpzbbcBTeQ2NJnra59ZpouZ/ivqoxr/xqCakKlRmi201PV4DzB3HEYhODnmieykZcpSU77EuQb5H5w4k/YY0I9ZVrwyBuMfEducUPV8ghV6HRuZYUNWhOOr+rSmPSvi24kH8kkuoG7D+6aZbLpezyl6u6RvFuwGC784nr1nLXFSMOQpjND23SuGWn6iAcSCqxJ5eBIh50U2ZylsavBjaMDp94esBEG/YyWKcFO5b3xPr75/cwaeLGttdrnMfyWFG6Iz1yFxiMvTNqLKRlGNduK6OPTet89ymu1Gau+l5kfn9YE22gvwCRWU2GuCyTk/PigFyrAKmKduglUecW+Wgylh2OQ6YLJkE3nnJ2u+ujEJsqNdoQBJRFYm4efPFp0WK6DrAmOT/fAD6TyLitWwH+1XFgDR3IKynHgTVaG5SVhjBrT9NA59b90FDmQJmKiVMItDFTn6Ir2+qMw3mvl/xHoXJ6QRuNEOTWtqh8QeJIU5+tjr0pfW+Dz4/fydmOYX3khVZADR9 greg@jude -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDUd5LQVl/spIfJ3mh/MERlCfSIHCh3jXnaNVnyHY2AVD2dFVgFX+Q+1adA64plXqXHEQVb3q2EMzVW14QAMP9VJspnODgpyMHwpxp6ZNUsZIH83RN8kauVHgW2LRDCZ4DLRzbqaeDm92rntapoUB74Vjto00AE3gWyGQp/v6BeAUhqE0J2p6T6xDgsuyJ+Tzm2YEUozFW8w8LSGDgaoTKzjq0WVkAo9rNaxGLr/ez8P3SUHgb2VSUrL1qrHE99KL8rravOjP0aQmGGWu/MOjgvh7icQuqYlBF6MHfxeSd7/FZApVNKzEXD9TKBg5IaCOjHH2GHnxthSC0mcjKmF2EVAXuWYDARqxmtIfV/9YdeECEFxzB6X+t6b3RYxA0/oa5Zt70WH2LILmc3U5EfiRf88x4WcsdmbcsKQ74/julgg7vYlTlndBxvl8Nd1IKd6ZD3nJBMMMKrDOYbME5r6x2VTzm/RQkpp+SHarCMXxjukhguYY3Iz9CTO2hdGaQ/41ftlOhpb3I1Gai9GymTPFDt9n3JCEVyQ1+a97ELVr+Ky1L3hMewE8nqZFIoXUB2RFMu2pD9GggDO2e6bXdN3SIHLL/8amoDK62iYgVEp1XBkzHJ7U6hhIYbkFji0KK8A7Cwg8+gOKdovycJIAWndHjaDcLmWDlBktqHIRQvLMTzE9f935faTcrSTpnrCLK/pR3f7ir7HGpD8lUug8m7DfxhH3am1Fz7uY9iNI1GLctexC7espXq/xEA/+j7JRVVKbpIubXcmJjNlKs6jOx849SpdWvLlnJpqo1PIjxE9ZDa7zlPSLMTKGTuY0ekKvvbuaOhcOBuYg1RfbdN1QIX5ba86U7giFMZb7wGh7Pbsy0PhFgO7ANgNZy81RKp45G8ozHLnXCj/qhstqjcEgUICDkT/CGnNkreu023kqOaix0nELBLwWBVM/5iWmKQZnpiBhHHDNJ3Q6DsCkIUdfOWZNCIRwGDPuV8uMOEHJIemg25Z282QqWUIfWzGOO1f0ylVmhTQooZIfjhyGXxKa6AV+/tAXQtkF5B1Z8rB5A3pYYLDmnY1E007sWpvm2L/HKV7cWUX7bkuS+qBXZyHxEn+cc6YvalJbDi5/bE5kFQudZFgKInwFiMLhX/8BpbgBUv+6MvvCn79o9qnoOnkI36A9bEOdQKpjwPdg9tkVWr0RotXfP62tIAQsxS05J7yxprC5Uitf+Bhp+Hph0tS/hyxTbN1h30vfdABouvQpcqbgUlp6psyTT17efeNbGcs9l4gkg4HOGpmF60alA1+PBZ1l7ba6bglp+CZoeA5qsCTmMxT5yLaWcEck/8WR3NHQqkER5ZyH1204Kci35kNon69y1/ greg@linode -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCoGGV3eD1oF0O62JZfCWNxmViRjRGQsfOhRkQfzQROkwDlFZ7S1+02fudD9t7mPtZE6dQ4yS2+6Q3NIfGW8NBbZAlWwsQ6PnrpuAhWpWc+ng/IDQd9CH/rBCt5bWSLL8AGHa4c+qde7iyoFGK0l9jXVD9wATBFQ274WTmPacVQVHmIAmJS6ISmR6vlq9eaDj1fX8wixao6WvzfwAUvXIs8nhPEfmtyu4T/1Eev9rVIxOw3ODQjk/E0VWV4Koeptsyc+V+j+XMyA91v8f20T4Uwe5LGnJHSQS0WavHnCMWHb1tzkmiKdaNCymoDUcUF2rywMYry7JN0kZo2mp2d7OzE/RP3bz/IsAI33+DwRlDYDNzgeLsLVmOJij61AtqBZque6WDcyCF8HN0ZaY0KJPOtNlN92+GUBRF/Faei0MXZ7wW2BZL5Bc7qnXc9USyhPNsm2vQ7LLhh/NtBGqB88+C+AidTTZ/xiIHKWZJXPkWLPRcK5cfaFqHFqcVMk4U+b0FYB95vYPKmjURlAZ6WrU6dNaNaMH9hJSE6/03is4hb4t8RCRiNaR41pEACDZbATjY0DInFn1LxxpUV66xfpOVg5hKm5ScIks3KxWJ8i3v4/cX7WvbDC/UzWb2UygpsqR7/1n5LV1SNPl+/qxFfdaOyZ8WVvx7DKGxkKfkPBgGwdpSthdv7BY+SC4sT9WXQAPGnvOIk6HwKhHjJYX7AIKK64ACfGZbjBC2gg7Ocl4HkgwpYYlUWLRJdJUhHOCi3VhPZDspYhw/UxPnUhYa8lxq5l7kgkks/tFe1qHOvPe3QRW6brg3EdJNkwtMrlrstW4/nph/KFqSshzNVDlEqTAnhE1cjbBZNmlHt1Un4ixcW1b8b86mE+472pSsIEfO8vxP26brQhxepJFZGOFv2vs3XDrrtn6IMJok4e+AQSCCY0kCcgfG5nMYXUoWpGyTpN/JLG0joJuhPWt58OaOzzKNPq2+rCVAbS7/UmDCqkwxjCywxOZRwluBsEWbZaLEdOwQOfIZQGwSDBM0hfHJJxMSaLN3rCe6VZb+c/5mFXUZ46L5mOGkRlO1TOEAe4jqawAQnuGaHN8mMWSw1gKM+UBXTKa0tBR6Aj/OSfPW0jU+mz/YzzJkzNnlRFiSrLxWvL4eXaBsMZvgKdpA41+E4JG8Vu+9D9KNGRnLASOCxRknV18MubZlEEyKby9A6TaKoPrz7GVQZP+36V9DtAJAza74nHSDNAQG/4w2BLOw9+VrDNdXwjMbgG+SN4f1K+e554OirtSMVB73VXjdwoH/FyX+7+dcUZRQ7V2n37jIVOE6CcuEPjzdnkvKSqBsdTO3Bt66+QtS9BwGHu5c01+Q7jvIl greg@nixos -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDR4vmc5TiymSjMB7E+oYsiTxOg+2xwnLAILYjQKPA7dIvz/A/HW31R1aVVxNEgkHm8qeqmgE1bUysMMl128zvdKmwkMmq2uagx9hboyfCwOYRaQOtpS0dlgSllhM654vL9553t94sTuMIfNUiXBD3EV2Z5JJ1RteCkBTJjzmXQnV9he0xozBYOdGv35UGneQzAr7Pps9iK81mR4yW+vLcW3pAaPmDBbN7C6WFxqcEBWsaJZK0rLCTrQo+6B130XgH6gPgh4GyDaRmtRJl63yANiP/RfkDFTPKOh87slLLZaHJUe94P2CTZw0e9xSzWuzx71nBp9JhkoZkI9XD+AnbHIZ9X3twIADUf+D0fivzOH+Yzne0gNRFa+O4x8xd/xj8QeM+Rr1ATikBf/FRfyx+RzHgHS1ZyOKfIpQbrm44E8Smv7FzS5RcCfAScSn0npOqP0cilYjtDCEoeMVsx4XQy4+iYLOA/EaMICSz2PwQFG/KXe7NK30Cc5flq5qUiz8TX1Mzlxuro4qTktYSXZBs5YyEg3Za/hcqMV52kVn0W8S1DatHOL4TlRKYeKsg1hWNvtm2MRqJvWkqK9vNNL86Ew5D5hgXdCk+AiRzOhQxfprPYMea2Vx1Mkaq3VYHWmJBWc/m4aOKUSajhFu8KG7l8bc4IkgC+qQCYzr6pCUDlCaCEF1iQ3lItSkbJJmRBHKEOb85lsIJ/SZ0bhsMl8bc9z33zY+bwv2NezG/aKVGrny4ZTAI1BKkZN/60L0yzJihyKamEa442jjnvG1jzC2wEtd/0gCGWScfZsQWqDu97spbeq8jrc67U9xqlGTrWyyNsCW2lpu26cQWWRC8ufl5zBNRDFDSYKceBaJ2+sx1GPj3YYdJSlTt5JvxNyBg0BGfGqCTd0w4IXF3KP9IZRWWAKPaOZcil2MRZwYhWEd7p+CtKVAL93uW0sE+0C13+iFMnBUkFBJ2dZH+tWpywCRYcrVNvrBlsHe2XniwBwvQHUFgKaQAB8upFTK1xBWTh2S+CVyNed/fckAUrPDj4sI2NERGcyPC5Oi6r0fUPtcWvKRfA/yXx5A0iNWc6acTqd5wwSO3s8rOCjIwdczZmkmnjAf3UKhmtDnwRd9rbO5Hanom80re9Dk0W+z9E2+70b9iYvZ60pbw+cG4WqEQnr02RS8hKvU0CsYFoDMTzV4snqTKNrl0IeD+Fmjl7oDkcC4YQbZd2902qVL3WHHvW+p0WQ1B/rk8BPVRYVmrUQbqwPFCQlmTe3Zy+LpqbWYemhQJGVSiEiioVNCc7pHO6RyWLCoEQKwKHAoNleKtkG94hT/d0z+1RYpB/nbJ51BPihK5EMlXbw/Hu1SVaaDLOSL6p greg@mm ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINAX6pNx5mbwIa8X+GzktyNijfYmJUpgROFpRxSW9js0 greg@linode -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCXP9nxL5Hg1R1AtT78zJl+ObCDZsnWWAqAYhTVjpRvYpiTbODvCf2IImvUsLGMdgo/xdSSzNqQcK6+KZVeNbvRSsw0ssWw7ggYnhw/yyv/KDZwnqXsppeucicnwpQNvts154yOqAvuuMaOYCTTQoOVvecDdgtA3svIpfxL3vVB/Mq/Ns/NwoE9XKz3NBYlWytqDcvSwR6Les7RzbMIs6axSfMVNwm9w41dG1NqDMteLjKlQ8bFfrtWXZ4QHKlnEWatOgJIzbP1hU91JvvzfypjleGuE9EBCSayqhu9PuxJ1/yxMJKSMaXUl8SoPMLsPNr1ZS5ZNjkNCvZK4fI+CqyAXtbgeSGKIKqZhg9z6/fR9SG0l3Gh3Prtw+AEuE+Xzb99Bi4IAe8lTaL+lw+z+CmsXR+kcJ4nnNrmf1fnDsI4l1EctVGb3Yt3tutV6GjB4mDjIYKwNBxuIx8hlugmZIy3oEUGrh85o5wnXlJQzmhszS4eas99dj1L5tj5dF4O/ED7SyQI5e7V9Pb5AgolcvLLXcFzDuy43oU8kWvQJMMvbEIFr6qPXWmp8MvrSTucRQCCzWJVudhrYhodXA56tRoJvFIRs0s12p/YXzsmJbKxPiVwLGOlCd2CqbdM2rCqN2LkUeOAQitb/8wv4njRKZ4lgqhjyXnBtoD2Nm/NmuIERoUY9J21dOhc2tg0zLvH120xVKa+WN5HVOOG9LyKl7koyc8nqdSDKFhcN4joYmnZKfyJUJzQIhiQayEfvWfTNJiNVkMIE2OqQ4O64s/7QzOHeHSMzY4TCO7+5bK9ecOqPxCDHLHhO0xVA3/w4FscRkObjkQ6zv3UCFJTSbr4YkdUIk8OtRR2KN9y9txrt/OS1l1DigVyuYUdz/L83+Y8E8d3l0hq/S1YLMwlkCbHE8hm0HxlLuyTA3OqXizRxNk7w4ku9OC4+nHrj03i2apNG0Z/ojcGsJxSBLhPGlPWbDJ2h7YL+lkDZFitdhBZHjIQKC2dNoretA8zEzNk48Pi829NFRuXqjSsq3iOJ1sXP/lMAZvdzbZOQ8CrH5SWb9GDeWR0uh76RXzKXvv5UTtu1PpYj/BHToApc8kUAxpUh3ypjt6bS7XLYtk74PEZHD3HXbpBYBnMNPUp2ecDw6rxpLxq3rnzROriX4Uvy0sOx8Q13ZgrZwxLeEWImlK9qQT4SYytGGxt4vwG0R2B8zS1xNiNC/B8jnBrK4GwnYSuJwNMrJ8vk1u9gn1pCj51RslBsldVzVB30jxNU74iD/WQGJudJrUAYkQ5EpArKZK0GQfaRXM6VzsvyLBA02CZJkeIU0jUc6Q1Nms+C8teKrP8+EKXONT/igsLXwfLMiR2CqVP greg@nixos ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFWPSFQT0AH77wrwRhiskcBS0w4ZakBRdJywYYBsnm3S greg@genesis ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMYzms+KIe5/bYF3uCyFjA5e1AgMPLIA3c4k417coqBe gregory.hellings@ls23003 +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINnRc/kBhxcjpUtiRQY+BXnSObdp0jFL1395wAQxJip7 greg@jude diff --git a/secrets/linode-forgejo-runner.age b/secrets/linode-forgejo-runner.age index db0606c..06d205b 100644 --- a/secrets/linode-forgejo-runner.age +++ b/secrets/linode-forgejo-runner.age @@ -1,217 +1,10 @@ age-encryption.org/v1 --> ssh-rsa KsR+0w -TGak66q+LZQBDZZc+q3Ctkn0Zt+1vraCx7hLyH/FJJKRFNh84WB91F3e5DxmXLl3 -165ESCMu8l6C6Z/ehA94sfoJwcbaqhfmXFvNwsqV3pS8WOVvntq/Agewm7sXA0j9 -OAV+6s+ARiYWrmrASp8rGGZehvrFbU1jPzRYXnnV2wpioAFk13BxtdQjGLnW7rmu -bWnsZk521y8lFaq/Mm8Mv5y5S+vHZGa621IbFtwPKagHnl8098bFvQpNdadkiGt5 -VB0sWHdTFdxsMD5k5g9gaIWQUK8LTdPYTckpVe6OzwiIh1obkGWexI1HwwzLy1R4 -BZFGGdX8mr38UHFsLwmHsYux91ouTYMfwvOQuaQnsWkVG8jOYqMWImsZW2JG6npW -8Ebc3C66eaXX6sCSayqtZVaGgcqzMMOo6KuHGsJ7fC9qW8yU3z1ViqVo49pXgXxf -kWPwU2Fhod2qRdZZSgsBQaR0so6YLixldB4VClub/oJpLYfQKs+fexhEjVl/XNtI -INJQuBbmWsdi4Aff902AZQB7FxmeQn/lamLe0tpKYsPwmUlmAC2TI0Q/t0nGhkS1 -Q1VmEezYXyaGYsD0njGdRPcOJ8dGBkK3GCTChRdVmqNpjjxeZEHLcSvhLW65Cn3B -GMsdfcqlL+KvpA7eSAManLicmdUIX8tSJUjSgZyw3nU --> ssh-rsa kEvMzA -JRpdFY5aaqOEoQGy0Y9o5V6lSOEON9BVMqoWkhM/lK5Z3h4+CUWRf6q7xQs930eo -hEoLZgmKHvEFBiKJOhf68RhPHFEEdrZmwgTou99RhAhreRdCLZEl6oU5jZzUKjCZ -9ComTyHczvoOI9dR2FchuUiq0acAU/Lbe48rqbpX8imI5nvs/9fGAZKmCWMWUenB -CrGKXd4Jd1ZTPcY+k7KXSiEA2Yel7pa3oM3HMi4Tkl29QFHqPswgNnm+pf7yoi3g -VbpgTMCPJK56Fd/auLHyIJ6eNkTz1GWjZ52eYdSPQE1ivXXpIPlOF9QxM3hoL0dN -gQsmG9Qdu+GMktB1ZgOFzj6gFMLa+F44k/1eAkPm4kIDXWLVgDDiP/pdd1XtcCwz -YxMbHkk0fHfqGlop20Ebs8tJRWG/7ozX56jAEID1mJbjbNhQm54hdRRWT7bLCYL8 -wcSVUV+RDQLZyOjcVs+zGZebKU19pa84+vOOg/r+gcRb3PahKxRV0nY0c3h3AoWB -SAtl/Yh+ITAk/QYTIUzCSqUJWLO7Z2QrFD1aYOPzZ3Cn1U3FC//tpxw3RJ04LITW -xsbIPhgAdRYU+8yOzd6d7bdglqtLS4YWY4tYnb5V+2cyCypCqU+rW5yvT2B5XPhT -MJMIt/ucEKMuoxHKNOZf384XPDdVBTtPY3anHdP9k3A --> ssh-rsa 04pTJQ -b6Cq5cNZ+WhRPZErp1niacHFySl72abNlY5gasLTonTvw0WEYjuUwEBeDdRbOSai -BXzE/Esoa18j9RoB4Fd04HNs5uN3BLzhlu2ZFb+CKNRRpdaGNquFchJ3W4BZ0Pm0 -G+bbYa115Iwm2fIqGDo+V7x+1Qgcw6BfA5BPvTAnrQu9UMHOhmggPavQ27jKI1WC -3g6IXvDRwfETAhqu1+8O6uaFEGI6Rc3T7QHx5QflfvVdr7Y/4u/RWfRNN5SvUC+b -UlYxnInpAnFrzxVegPLJWdmqxfytNWNovFG4F9oIJwJIxi2y678qHdgGfDg1q9eA -CtYB/V4JLQLMzNBm9Nts8t7DqmoSkdzrkm68ObIN7HduNGH66hE+mfh5l5lURgBV -iQQrdaYGvWBT1kPT2rGr1YBaecDfHZZfrtfdd12GLJK/1F/gWhxfETM/1wSIPlTr -sWzFDqIwqUeyozlJN5P6Xk4ItxaRD8Nd2LlDEmV1KHq7JOcnbbDPTjzSDhatJci6 -agms2T4kEPSBWUQ317LNRr/0Q+WD4YxPJ5zkqVTIjcr8Z9jVEJFZiOBBfjm+Be6t -JjUc7CK98+dKWxr1TXMiHihDuETwurl4Vls6Fkt8NksB9O1Iboiv5PAeVUCnb8LJ -wzYHtsEsQIPe24K3rdmP4NwUDF/zqmSWzDoxQCq5UurAeHvFe1OgJmn6RfkhvWqa -CvXct2P7wD08puMLR/V0GYCr9JcLRbBJxMedH5LFh4NXk4heiPyOI6dKslVUMpyn -wZzt1GJ2xrL+5+CAiBiGOu8AfMdiQAmMhykJySRKBDPLA07oPThAyoiZcqrXKjCR -8f+sQQCV1/iOWI29hvgL1Y3H8uYkV4U/NkjRWgQMHZlDkRsEO6+Poy2sJamrxzNK -ebCMv2BX6tVKVBzMuBoJ1lhyWijOEsWw39HU4Jyk1i9tPyw8Cc2Vmod229FWJaWt -tJI4GPgiYG3vmPr5BKfDDiuDgJEL9RCRO4ijM6gzvTWYzwv0EdUjjBn9XvRip84d -HffC5j560hPvNsUlID6hrcntOwqUHGh78qjhyExg68YExJLViYzqAaYpt0apRNEn -rbtxwT3/LcPnuC3ZH9X8eRIyKQ7bKETrznUa4m0Ag5oXlmbyOoAu1oPa8Yth6F7e -PjlRSX4rLb96V/w3RqTUjJGcUi5Zwvg/uuLB90qJWmvf4cORAkkmag9bbNjGnEWi -fOgMPi+My5n66+jeWRjZ3WtXXEAC6A7gWEuoBWGdP1j/cspMBM5bK171F9rfxwKi -IXAb35HXBbnz75QXJlID27XGM0VWKpVHTn9EqHxmQWngJeuBbpK7DV6V7cknIVYy -TQIA7A42AIxhWQ65gqzCyw --> ssh-ed25519 Nl/5yA +ksr3dvZSzYzUGQ/9NE0vXVJbG0ZrAXPeWT4Cf9GM28 -+0kgXMHRK017GdZ1L+im2bZlg7f+HArxzfNDtcuiLLo --> ssh-rsa mMfKqA -oWWPMZ/Rwj6d90RYoJtmk5ZSHSdqtZAJaJug9T9mpugQ1wSMrB5tjqYIoc6e4g0a -50T85MdVZ1m9OYJ7H4l3OFQJDDRSzpAXMHZ1h1KptAQ545FH/oIKxsLetUcekXEo -kk+lilcbRNKEJ5pzcYKcMii4IC6AhyIpo4gRgSJrsN5O4gZgc2eNDt9kEMN9cMj2 -YXyAraVa9HUZgYgUewOECaJkvTZQlzJuGSQV3rh7EeXylTvMvoZZB49kycL/IXD6 -Zjuav5/DJ7CPTxJhO4R4ilXYWj+ahMNGuMZnlIG/lOUeSGD2blIs+LtVqg7Xaolk -fDVLU3HU/Ud81el50Ykp0A28T9ra/U85BTpO4u7ItNfcnnslzgHdcJLVOfovaZWF -ZdtZ0LGRocdnb2gFJ5bSq/hMGz02I37hWlQ9QxfydVruBYRzBYwQDHPhzFdu46VB -1mSaNzfY4ebcIpknOieLrwHvtxZKE8uySRsrgVSxKHK2O6DC8bhzrOZ7sb8jEG8D -zrJBaOw1TjZbK/vnJ+DspwfkvPRkX/vNdBA0N0Mk7eA8ba/tMbUBzbLSttCenqz+ -PBq3/paHwycyh9BkBtm3Vq3nFuYsFsREeBQF798Wmq12BmJwniyoUbSi7Uuv2MrH -DRRfjXKzYKAwVQ74b7Zl/6lVGotYqLNOzqGTsHtHjNyFyvSHKxo+qmtlQxBW2ZCe -hWwFVgjO1vgAe5qCfox+mFkqIpYQFOzg6EQCFuAGaqD2Tp3n1gJSUrirkRonW5eE -inPX5mt0pxljoetKDxrkdUG56yiCkeagIpp7Q144zAlop3eTsH7YPWW2UEoqqXMq -dv1RhrG/CYUiYKpBdhkBf7zoKiml7YUlcwojXIV+xXI6J0+7EYO1Zu37tTqterCb -wgG1fQgWQwD7DVUV90Sg0f+/66h/Yzg3Rbq6lj1CueUdMHlcWovQkXKl2DzW1xed -KRZDuZvQb25VOmtfZBI+FF2+U2OfKgCZOLrgldwWVmdDVD9ewx3y/ccrCNJPoZxq -axCfomiUBYOTEwSbEzJK1VxhacmSfPg51UR+WkSmOffy4mrSKwo94DGqgDKvGc3n -wq0cP9K7JXcfAQY0SvtXsW29I5smpBWn0x4ZL5xZjUhje1TDwNvblMekjkEC0EX6 -JzSWn6ef/tZ0RjeAxPghRDRFXvmHLv7jpc9ccdf7mQ4+h1wMEAen1IS7zL0mfuhD -d8QC2IRLcFXx7Rlc5yqhxYMmLeCWhrPDT9yGmU8rjHBf+rykmvsK1wwJeJTDCz/E -/l1J9msnrg3ywRerBp7+L/rm49jA7qfDivid3HPLFpmhC/6kQEL0kh3RowOM64Q5 -llxel4VBRduhqpQtpiL7fA --> ssh-rsa hjSvjw -EVscgjZn2zEMXymyHWR/Gs/18fR3yH2NoNd124wXu8XrQrih5nrN7uRGiJGSnOFm -T+j02dCs64knc95a1WWwG6n6k3IfnpOcEfoeZSV3fPl+WcUQdmzu4xQXKLt0GKvE -K5VDaHi8YRSxQ6mrtKD15kCyuAJZ4CLl2G6qhoDvUbfmrcyJWF8uwRfCk8ZPfczQ -aHU4AdkVuqt20NmIeH0l7SIYN/qhtfNHCKEPQjQQswc4P/eu3bkIboVmKOUc0M3D -kFK9Qcg5/ps7z3te8X+F78eizn+Q+m/I8qGFJNlebKBQXSgqNfYylPJ5NAgfUciX -FcOU2peAI5tW0IFuInKKRSL1O9zM0icyC/bVJXEgsZA1erQa5MyIIRjaGjCZPHZb -PHndn8z4657S/YCUQmCIzIsWcaHPKq1xfjqZ0mOw0KMVNDl6SZZjhOQztfV/m2Pz -5V1qKMv3G4Sz7aC+fMvkoynQZq2CwioxQMkh1tTEVbffYk0A3M9jEF5YJClFZ02E -NAYGlaX8/IOI/ZwelRW7C5dPFdq1VZFfJasTD3aWNekKLeiTjKpTlC6JWB62DVt0 -AQRMCisqCygygSUAhQI+3i1VVyU3YGJiIugxn9LuvvBcmdLq7/rChznGJAcYBAFX -R8uejCio1SXNPMzdpL8R6vjTbs+qEzYIzkXC1fnqMkadH28C51UfKyQV6dt+8OU/ -oqXlPVy8BWmEjxanFHqVBZ71RTQCGEKPD63Vbt5YjhUM+EwseQJeWWOmbFoaUulp -BKJJ+bFkslo1h/uXDuS/g7AOibXjMfJ3LvoH1uwzfEICQbVgmgSvf8EUQxeJ601r -ZkiYrPb49/Wg1d71eo3y/2TIQVkL965O5pevz3tf/vsXlO9L9LKNL+MasZCw7Tob -o7hpbAa3yNFs11wA4K7liAZXwGK8ak2AlN6AJl2b+2VAExJdv1EtauSyNQ2EFxPN -uvb30TMpzICKzbhacj7bUUWot/TbQrGUcOVAIF4LQR/JIqxqO/mx/rvsbMX/U+dB -sXJNhyL+oTofM282O3QqpKVJ1azRJMqKxr3zLGZ9J8VlQmpDWbJBIW2NqS2jtt2D -KKEOXTA9N4jI6zIrfZ+I98HRhQ9FyjUt0VZDH5VdDOD1i8nWnUXgUwBloOc50dZT -NyXI4rk3mt6r4PkRvKpS8nYKeVwRya7pXFgshwRBSMhskHQslWb0f7uVpcVOgjEA -YmdSWO0Irn3PPodrAqO0mEQTRO1Azwavx5oyWKIZzld9JfVujCVwkLcUhVD6mpB1 -MA/A3XWbOSyXEuYPpiIwXGdLoLqmvZp8ejr+JCAC2sYiJ5Ks9SiNaYTbusgJsZGr -F22rtoFba7eh/IXsW+IcjA --> ssh-rsa hjSvjw -UgI3i8uAj1kFs38w0zsojI4E3mYeEXASYtQl7qvca2ItdTG0j0ixURosQKZKaVN6 -PSSDOwGEIlcRgxB6KRxHuqPhkLnerkydooPCaXzE1Jd/6x5jHab7XnOBarPqdZmQ -bA8L4rvlWt5aryzFUoXhY15JMbPcwoep8x7D5F5yqdi1DZsTtJtofyNMH1mVoG69 -2fExNaDjx50obf7dX4R2jIs8tntmoXUpbd/OkZdohO/TVOTrDd2tQ/ZZ8eaSM5v2 -/2PMFPDNfgJM+lCRLBl6gsx2I28KT55rtZ38DGikjE288CPFJoL1+PNTKHPKqBQP -Onxawv91iA41y8QiRcXVulJ7/CNVJAg9WDMUhd/v5EWruGbIKvvV6cGzxrT0ve26 -UeieXsTYn4+FpVsYuZO4fGFWeGcbBzmKyFYGD74LtaE3G4Y6K6OfUZzU9BF0/JJA -YGW03YpQ9VWVlFbcxoc6xILvXCWKBeOEosBEwFaGEPP9ikYMc9o/2SOWoKzrJB12 -5SenHqSHaY5zEJ/O8GD+zQbqzQ1WdnO4moPrVco7uuxZSRlI5a3AnAPAUDCb06Zn -Ln6t4s++FguGZms4yMs+q7sFU+WrySJVCnkWZv8oxGqmGBy5y2iPkaiq7uIIvGwi -ek/0IdzG8RY6Su8gkf/jsuymkngGMhhCPxxJfQRig0o6ALvlxVfflZKT9NXPcvjG -4sns8Y7qnGG9fxS5gZkCPJ1BW0QyapvyzQXj3FGbiwZ094AzO8xHqzVoYrzfOdj/ -4DgeAxdT0mfu6JMHJyWhQ29A9/DiyoCdSnfksI4sj0dn0nmfBS7rtQzVC08d2wl7 -eHg1M+prkTh5Dh0o+hE8LCOHhyWMvf13w5lxqh6HL7DpyE9VOlwnqb8IF5aZ6DFq -WAPGCDNdrq6QKy7SssqDXSCuURzvouXR31usa8miYSiJQFfNQzrS0BtgM/hrWX7/ -vdRE74/jH4Np2U6vrM5HqTNjnsa9kUj2CKi9/uAN1k4qX9CTD2xfQyqZ1iOzeO9O -PFNlE7CVvaI++9LRAjTPfgNXJXFV7uYsKwkSiHr3e1pG7Q6gJez6EzSjTw5FEaWc -DKAPQeJAwrbGaJ4Rh5jxwaGpDrim6smjYNpxKp3jnLJnVDV3d8w3B7G9g8atq29Y -v2U1FdyRUsItPOAA1HNo0mQX4GCfGFGjEc3mdWn9rmnlWIFC1lVvZe16Oremx4f9 -1uJ80gO7pKk5UGCxlEj24//PYlQILCIaNCLtGyHsMSznqUzyRSVO4L2nuB7a0M+F -BXahbpQa0f82S9mwY7xFPPXMhrxusqMKPJfMwdOUbw98kVz6p3ZWJ8TPrCbeSp4U -Yik6YiylQBgrsShAvC9elA --> ssh-rsa FS7DnA -hHARwZDqI5ZiBbcO4ulKJcE2MtD7GikePFoiBeB2VZ5UAcKKU91GrZJLEcfa7fp1 -v2enxX7t26wdzlHoio1UOFp3KEKBY9qmjRrPaZ+KHoIRUUZXKQX7oJfkdqvBjEBa -247q4x0+NKN2BNw8Hb2nJYhAI462McAAU2sMs98S02vBYqsl1YDmncPdQGk8d19r -Wxfi7+BPA7f0QEhvStqYuPCh4g+08u5rFAQ6aAK74D9JoGTSRVvC+tcykms8bpLj -S43JfeMW2/2tjpTwQufmTkG0xOwo5/gDBBcOfijsU9H7MabTTfavB4PWjiDHNNzb -jIReLNj1Yz/fOMM8Ubxvwmaz25EF9meV3rrIBY3GwKXxtOR24+rEqmTnxYdtlenA -11ZQR/12fnJT6WMoDN3GMJh6aqk8lN2kZlHtg2Oa0EsGo5fmk65cQklGCqn3xV+o -E+rS9NmlmlebvJTCO7q2Lb514NBX++V8ZivQ6L7wYgH9CZ8OCRV1jFVvStEW5DKY -1sGWLNbXobWqIBFJsZ4jywrKPGz2xIGTiFIyZ4x7r2A32535AkPqaD3QRFOWvAtL -FX5VLL/nM/tWC/M3egpq2xSWMPc924zquf9rqLF8MI6yL34OdiVRx9nii5INmHKP -sqN7yhwG97sFndkYF6gLQx35Mk3zqx4daHLpl8Eb+JKnEqbpEki4zyEWDE7VVQ58 -2juB49s2Ig6o3/MGt7+1lxfc5R07nfRkzZYHTkdVkp9v4zdVk9dhx0Ju+wwHbFr2 -D7zPJEDH1mQrvgZ2QiwZlts3DkSX/NBZdiwGYezJHohYFw1tjYs37Q/yTW9o6QRs -zegzaAaW6AcOJvdZzaNfnzc/ghjIziJS2i/zUc/yl5clc4xgiKn9dl82rNpUq9zg -pVEoDCUjgdqZjrOHhTEfHMtqvO/Ip/A+1CuOZHL8QdXPrndsve983644+oJ8KAWm -R1eP4jc5qigSLg2ga752YFuig4ipTEE8g7mHFuThf46MW4pyMz64ALL1ujvoyEO2 -zHXPySi1aERICVIIOHiJhIGS6uPV4/9E+XZxpFiWq6euGqzA/EgrAPAGZB6j6m0p -Hbb5WvoVezEwBzn4PTSSHI/2HyUaXtdKcgGpHO9FNobMfIU1a3OI66RsIBc3yOUT -qSu8sOwbUkKiYrQUIWhU32bp9iXPpivvcuHBHQjQb+Z638icXzow0MtOGXf+eXxo -WF7YBG38aymXIj5788/5Xlg/NgbD7DPAh3MMhUGQYeC8dD1vXfoC6g/Ycpitc7GO -LsXIu9N4RLer9H+n+63tgMFI5J61NKe+CqnnYJ+3QmHC2NHxdVW9JTX9ZK1teUtm -DSVz0inTL6APKGKFaeL3yw --> ssh-rsa mMfKqA -wOMp2aKfR8KIORoH9WbTIxLiju35IVE1+uxTuHeDflmJ6QvGnNdQhor0H6R3mKhR -MXnVko9zBEaW+QIpDrkYfdEGLeJoQuCDC0RgnSR89CjPkd8XcKbJ/fEvwKuR1ueA -CMOPi6lfwtgFM7IflbPUruEROCCID2gbpSyEKA7uAKrEzAxirZu65pA50Itg0OBF -14Et5TNr73B4Vii0lVjGlQKZ254izYUBW+ggflgZIITnlmR6sArgwk0+umSjD52f -tDdNbi0WkUo2mArf1V3JClmw2UUpUGWtnbi+p8QdMqUdv3ikc2I5964T6Xog7u0D -cqFpot4D2x+01rTF3x0DGvYynvnMrp7WceSFJkdHNUZnw1PGzQ4CBBZ22s6IciFz -iOiIPT9zjZoFchbzuflf+qnzTngxXqoDacPxD3MUN5PndX4ZoudhZa/6PhY/4vI/ -PRGWLCyz3S0syS6gJiIvBV/c3DuC7ghKMhVC5CgVfprI7dJgniNdlIfArqBOezDO -IAbZlEit6zSfLp96kQ3XCG5vvdd9OkrP40pYm0QImIx30AtKVwUFrlD10GGtWlLd -6k3sTIPKIrCoKkEYikP+NWPq2mNT07QtlzPctWK2s2iTXDluCLLcHcl4fjuDvD5S -bXWz1wY56dRT6odwVXghZKdxiETvSRK2pSCWlLMpQOQMxRlZGgY0bHgK7QqfTUY+ -gopMgrgtf2RI5R1N/mra6PwSjQE1KP7Nb4uJCdqbp0KIAhdQRIcr2knR9ndk6iXH -sZP5Z6tcnWr7yzmSJAI6/YSYieKCR2NI1RsJJ+e9mm4dhKuYtD8LOTx+9ZJb3G02 -cpFrmiNhYkm1tfYGDS9I1jUo5Y1j3/LkgLZA3AdgVjPFJnYuG1qgNG9hi5LXZ1q3 -9/+u8gL9IKGI15AOM7eXIbmeqCE2cS2yyCNgn74GHOJyJXUH1mJ7LBkGg7pMAAQa -Jko4rt29X2ajtYOa8Qriq28s9E/XwJy2SD8TwkkNREkUg6pM4CcdZZ5s4dqWNGVy -dNSTXB2OrXKgmbA3DFBIEuv2DCVwpsmPGuRTeGEAWS+5W87Rel44t9teHoI+Eq6h -J23DO7OF2JpW8ldzoxiT9TgQs7xT1koHqowy/yUdEM88r6aZxCWShvQbDQswpZpC -AUup5K+wNlZ5nLgToAs26L5Fl90vM50R+HQbM/ofWDUWOwIC6sUIm5eRcV4IJNT8 -CCBLLBeuu7pjYs24nEl+eI62iB/J8ecKdEjpmfLNt/b9ddz4B0HqmZYKGW8SPKSM -ZVhASmjyzkCqKSZllLH12w7FpKt7wZM8t5UpRHtCY/jateLJW5EbP0gtBoCFmFeX -UknpsQdBcS9sh4HnmkSNCw --> ssh-rsa PYwg6A -iyKZqreDjbxDxGE2Rk5XpmW7Re3pLg9/NhvgLQVKXlfsfBTqbaTf09co2ktnblG6 -iGVv1h4LU3FQ9R5wh+h7qOV86hLYw95LCeiwDBToONoIBfiWA9Df/22mym2pz59H -osTtUyoja0fhMoYEBFvOQQZe+CR2BobyBlNFvMsrrwKpvjSsEn1sVcMSmUPsk2rn -HUDmGFDaqknfNyJWaRSUdfSq7ijLV9hK8Mj6y7XKDcnkD5OzJUMO7Tf6zpx/Zkj1 -DieURCEuwzcdGxKFitb2dWOn5sbMIDPVgMGawybE5u+TcRW5VRkvYkXAu8URywNo -oaQPcFWqmrP+mzO/0XXOvx1oNi0YR/zWD3Zw4ExondvDQCpmeLfQDW4tXZtTTqaJ -+5Nkz9abkXjJIKLcdwRnKUsapfQv1/asan0mnMLFyL3TbtjHYY/FXXwg2xYh0VFP -qU2bvQh+gzoAaNViMtk7UGoMGJkFQo+HfFy67QYo2SX1UpzdYf6Y5TDKH1jcT/UQ -Ee0CfUTxazcp5gTxIFrXQS++0GbTJpa1F3Au86hN/oqXpb5cudoJhBYuxqFADH7S -EpvzpqT6tcHzRx2O8+8aH5rmhqXGLdmeHVe0O1FANh53u47AUhwSBCy+YO3rA1TB -p/pN1yQGUgXhOmnJxLPmiQdevqf1UIZ+tvf39IsvLFQe1t2C37HkRFEBFqmHBZKP -MGMNKF1aOZCsQO0ArCv/SbeHxs75xwudJhEcUtnJj1WOL4LFI4LVw3csp9l/4Frc -e3wxh1vGl7RwIZ4kyIqkevoaZyTX+A/8IbDjyNR+d+ue6disgRhkjgNMUAOf1Jzj -Vr2FbJuotYzK9YSFP+0ddoTPTmI3h1Ep71jo5Qgdyz8Y+xJmk4wKVAhgpVW57phl -WmZzxTDS7V/7eqvuf6ONKgNoDxKqsWyD5hfyitqTK2tww1ofPz0PoKrtgf0Itt9S -5oHlo/lEvt9sbIx0/BVEYq5nL+TFceJWOrtuV+CKmOIVeVRon9bUhHOBJX7FWW5Q -/Bi12RKBpr/IsBC49qGY3uMGpUs6EseTG7b2P/CoQ8mAIPjsLs5n6A77E0cHaK+3 -CzeW6wyuNwfQsZaVvR5+hE7sqy/Ifm0R90QYKjx4arBZJUxHgwuA+6NDgnOEHiTj -Y64zxuAWwIbN72xHIqnYeeyx7Zs8W054icxlaINibM2+pUaVsL44Fbu7RBn3u+3H -KXtF+cDa18JYrpEhI7sgRNmC7l+JjfE7FtO/IXGuEPjpJZJOzj8AkKYQGNJTRY4G -w1S0NkHTqZM+L4dIGCWdYMSLqnQchK3ugnO1hcrPkh5uRAziuqDSYFNrhq9dWl+G -VLWwEma+y8jcvZnTQsfSrQ --> ssh-rsa 5JwzEA -lVYxXAEEGu08S0xXf1tGtwrnUidO8pVYujL2f7cPf6sLRG7iFswuunPkULOmj9aZ -GjQkIhVkNumuY+fiwUWITMfG1DP3DFBFI77y31rw9CL51BjM3aHuCdzjwhum10qN -/s9rDoJqnEXBQnQbBOmT9L9QjblV48fV1jxpUsBe1Ih8cT3AU6ynsdnYlcw+3QJk -qTz25e7RZhJhxaIyA+rFv0ddFAcVChodSR1Wrbtixn+1sGjLB0e0iagrzYfqquBb -xB8wBvpnh4oq1WjNgNFHZTAhXh3rBaiD5XQ5x1ndeqQHwqr+K3fAJGq9xxNnJdFm -O7xoiBhGnIRwyGemtgd4eIN6dDmBahqlB/WHNpNOhiwhDKAErUHfupSWLMaW6Q90 -dkDsaMO5dPkY96xLDYYr34xF4935p6yoDmXoVsh+DYJcAXqZ+3JDL385YIPK3emZ -AGyHx06nbgYPV9EGvco00BvujW+83f1S0OcY1EEE+LpHDXJ7jRRklQ4k+qy/l3WY -EBuoQ0pmTaGVMeZfJedLHiDr+evrjxy7/OQm47lX7IMiZxjB3VIrnF/3bk7wAA10 -8e2ljTWyfZoB/ctwq1zw7n5EB7wJslL26Hd2LcAwUwhKwXDLYohfRhjqAwmd+CGR -dq6KfgxYSnODmJb6HNzuAMjc5YPQPJYVHHSohsdFzpLJvhM84y5LDR4c38hoJ1B6 -3EBqRkMIOjDE9mV2yPIV2LiNUwccwcuY4FEQIwpPjMRixxaEPtdS/4DOwYybp/TS -YQBrUtzJj890H+StHivh14xZvgwYbf4cIaVpI7xQJMNmy4h5vpclqT+QzUQ8WOUO -75JADMu4SwnKzcWGHTtViR58BYq/AavzQXUQdxjrJlHkgCvmqFAxleSm9hhiPlxs -yT/IrmyWyIexhswTuvZYj1UQNzAaSgo90JYH+/5ZDy6kiJ1q9JRRXbW1XcBrTNMQ -oeUEcjHsT4BBRWY0EDLwMsgxGrF2trSCZokIMS1jTu7dMGgwznN4rJRjyyw+9fBJ -jVUAM0PVIYWQZ7EOfAv4EykJpi6H3mKyfO3CRkiMl7TwPFPf8ODM+wNsG8rurWSV -8wU2/zdS4Lb0l40MlPEdUykQWSHapAzeXq3yugL3mYMdNFBEJmQ3gIngjaKC7XBb -Kp/RFEGAZvr7TBXxHg4Izr6AmNEE9d0NT8VoEf1FsKaD7f5b0/bMPl4AWh/LeDR8 -aCMuiF6O06fAnfmy8MZqAoOcqPDjswp8su3Dj0bUl9dwrnuhKkaFHP6tdzKJUpAc -5XWQhJ67R5/OnpT/rCUTvOYxwfbmmdxVrSQ0viEGFo1C2pXa+1nsSVBil3fDHHnn -VzSl5PIsxOW0u1HbRjFNFw --> &V'+2T-grease -Y56HHiU0W3NPRn8POosE9UnU6DjnAL/oX1j0MTAn9UgNS07/tkz4KNexM7eBBBgu -S89wSSkLAzTxg5sdIkTFQjnOwO2LW2YueUbhffNwBlgjZrOrbtr4QgLGsNbPpnK5 -w2CV ---- yoROLwjTgTkXm+krjU8BQ/NQeLlc5Wf0S7m9/9TDHxI -+a8%' SqFˮ?sb=;wˮ`[oC~y36]''c;%6C\ \ No newline at end of file +-> ssh-ed25519 YJiRbw UTDPiRBoJK+f7oFY9BRRwvWCHjTXmiIV/uNGpVXJuiQ +8F25hj4bXciXI1At8fr6MdFR/dtyQM1VUeVpT9zCoPo +-> ssh-ed25519 FpzvfQ PfgQDUyHVTsLet3pkgAI8Mz0LPML3jkV5Y20QOrUS0c +iyoQHnN9CTZjhs8T7Wlzj6vCFOrQDp59RBzl70uxP+8 +-> $M2VrXS-grease X:"bP f[!" +8nCF40kyA2HSbTFQ0A +--- bvL+osLqvSKW1DkcyqkMaQQglZ7dTp458S6jmXMPNIw +h0g:+yb(Mvy&dz@H?e}F +YJp^!D\Fi \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 75a5458..9231a9a 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -1,30 +1,24 @@ let linode = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBFQOgRYNWsmG8SUV6T8oEFw+581hNLCexCmdzFY2YwH9tgKiE3+doxrKqAmBnxsg80zzzRmIqs+4i+PKCK5waqI+/70Qozf/SSJDzepjQRhrIvZBlhXF9N7ZfAlrOySjjvHgvkaQmS96eOxGy5jNpGR8uSMDu32bwY9urnJ3lskPajaHeu6/abrcFc9rEMkVgC55Itr6kbR9Lv6oRWc+faue6LAEhND1RTflPloUyueWSxuZF7jvOCgEWkuynWHXiy1rr+5PlEp7pVDV+Xz0EXRt/kCDPh6VDdQdJPx98FX6zdz4u2HvIxo9dXao75k4xelFsLPb1t7+meMDkOtYLRiVkPzl6/0F23nFvLRWvnSl6nduO9RwCsVgI4zgUvYWm1aabw9YG0+JcaqU62GFwediFiyU4F7h9ALNnZwhvL3UWvbRJaOxuZl4TJk9tKUIIZsn1nGElw60wbSzknm0AD3fR5NnXEd0zJ3NE8dAS3Yy2TolkrTAeZrVd+7x00roPM4lcXgccWHl8e/SDyDULxMObwVlYOf+CcYisQGdzqJ9GC5Y39X0NeIpgcInpkxW8FYfQUADZ5msHrXNp7FGPrVJe3q7JBdLL4fDjiByHlH/qBziCHjbrhoSWzYZMDSYO1w+Rl0J8A4dSRm16+YwQ+hca3iEwcoKFJcrOeGTGGQ=="; - macca2 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCkliEMztsNY48zrvskma5pHf1nYqnRAVSQ6EZ+YQlNb4T70S1cyyKPnVYZoBekIUOWy1pa313whNuYDrfUTA2gqQFGlRFTT2oaB6jHYgKmR/Wty0+m1IVIK7tAkNG2tnb83bfDGc7TjAS4dAAzdakm5ipsIisCFoXAGwvD9vOpG7PwnZBLei0OSw9X3UAn7Fwt0BMs8gwUdq2KoiL3zfc/3cSi63ilWxuTg5mChA/y0Vw9mrCDfxQWsICVkNTJmFDM4CSmsCkd9/VecNCwKrw9cTHxzZLcTMTvqAMK2qk0JUk9XvxmuCSMfuCyIfvk3gBJvHV7zWEr0Mw8nJU3Tp8OdP33rjiRmhz9EPacFZE4i9BQ5ltS/i7yvyU2yNyMzfzQFBxP4Ip+7jCELiBw/ozxVoKFOWNOF93EWu2aQpmVCY1M30e0RqVx9cORnpF9GKa6khhSI6ueCmwfWbZrIiityFZYv36WJJyY/oJXdJlGyDk2BpL9M00YdN4sosHrInCOTsIdrpDVLkG2gyww3ImRc1JjKL35uAZk9m7pY/Q6OWz4rGQr1IkC29l8UOCF2SHYYnCL6xNkQ1xL5Wj0lIhMal06/FMGZbozb8N+EVvE7Bp/dELV/N5LKuGMUd6VnnF7unSNO3TkAi96wDKmgjHgp49z5S7WXXa6s4rZp2npQ=="; jude = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOos0zQePsa+T6Z2dsKbPOvEdrBQ8a6mx3s7pN6ysCI0 root@jude"; - systems = [ linode macca2 jude ]; + systems = [ linode jude ]; - user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDLQRq55JKqLifX+31kEXyuoB8gfM+5thAlgR7XLPvvdu6g2a5cCWyozQ1I2oGbPRfJtzcJ5ifM7Ii2PuqAj3MdYFLHBEDOhIpBBWme9Ts2YB9HJ4NorBvB4zEfJd0Q7k2MmylyeBOwdwGz3bVqPRDcJbxWFMDHqr33FEs6SXdfyAQ5SvhWGARI84qz8zUUdOp6M4e3aIGO3cx1gA+YzYQ4FbUtL8+m1NFO8VoNFMZBMf5q0iF/SgEu5bmGWUCePia6DvfeBFQ2/y4Y7WmOj980WE+JmFTkIvmGruMYeGI8FuDQ2JIIIcehddy9bQbPF4VlGnTFsHqJYVRUUWc+vH1cPNMn01oB8s27ogf9e1lyhIN+cZOgp/jDt4eXcO4Wr04uwj7CI6m+d8iMQOa5Jv0hmNgqqiwOMVBlKeo0FCxlovzwvn/Lia9WZ74JqM6JwLCD8SZ0oFgiSIHOTHrQhr7iaCmj7X/0ey7VR8FnCrpeAJpG+ELTfWGshF1d9QR2zW7u4EsXTDLiuOmdJ+/KxwMvjMcWdlg2+Qch6SwulTQRxWaED2IWJo+YiAql8eaiVXu/eZJGLoiskGFZnONoLrzIT4pSjakPlrSpn/M/GkP1pDpaMkr24OhJsGpJNEU3F1ZcOMqy2iJzIxlPmU8Xg0I/OrnbJplpaXeRCqnmouJUJhWkaPzawaVyW7dtvprLWcpQtUgTRet18WLyOrLKlq1jwvNRMTPKUJ2IFJMpk2pNEP6bdiUxyMa4vrRIEU2p1zsYSUJpCRLtccZ/i/+yAqwnTA2L5TdAORi9nD2uCdM/Ljz52V3A14QapS6oqcoWx2soWKgnsbVXoG8DxmUTpll77Ze9t7Y5216SMInWuOu0vstP8ZcgFmWsiBgIYIuLA58abWHMxgD251phYidua6R3Gtkf8J/kYqTR1P6eJF1bt5efEg7FD2aL1QQZsYJo3CRNz7yVe1XqMdPbfe2mFXQVF9TDX5x6r9Ir3d0KiEmTlBdByz8nSyPJ8IQxC58NT4LNVQs3p2XH2Zcf6B4JOBSmV4NNBnLseFobsxniWjkWwZigED/D2iu3OXuuhmskCbw0hKy2rBcKffaSNMioVqYIiYNfKlMlSvAacQKqc/1HCpqgX8PwAcSgNSLy4K7/gIrTHmjY+g+CH7onzatWzkLo+0vsZRa/D/qwhhK2CU2FeU07mhnWxWuzqpJuqVaAwDTaEforK7nQUtAOFAZZP6qGhIoqsynYt4THb+QORb3QYfaP0PVgQwXfVU5Q8eUQFZ8A+siPtOASFjDumsIbseB5VzkF+UhvdseJwkX2+4pVFu8eHFDyvArYsHeGK6fBcQGJFQc2jSs6doIP9HD9IO2R ghelling@unknown38BAF87CD102"; - genesis_user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCXP9nxL5Hg1R1AtT78zJl+ObCDZsnWWAqAYhTVjpRvYpiTbODvCf2IImvUsLGMdgo/xdSSzNqQcK6+KZVeNbvRSsw0ssWw7ggYnhw/yyv/KDZwnqXsppeucicnwpQNvts154yOqAvuuMaOYCTTQoOVvecDdgtA3svIpfxL3vVB/Mq/Ns/NwoE9XKz3NBYlWytqDcvSwR6Les7RzbMIs6axSfMVNwm9w41dG1NqDMteLjKlQ8bFfrtWXZ4QHKlnEWatOgJIzbP1hU91JvvzfypjleGuE9EBCSayqhu9PuxJ1/yxMJKSMaXUl8SoPMLsPNr1ZS5ZNjkNCvZK4fI+CqyAXtbgeSGKIKqZhg9z6/fR9SG0l3Gh3Prtw+AEuE+Xzb99Bi4IAe8lTaL+lw+z+CmsXR+kcJ4nnNrmf1fnDsI4l1EctVGb3Yt3tutV6GjB4mDjIYKwNBxuIx8hlugmZIy3oEUGrh85o5wnXlJQzmhszS4eas99dj1L5tj5dF4O/ED7SyQI5e7V9Pb5AgolcvLLXcFzDuy43oU8kWvQJMMvbEIFr6qPXWmp8MvrSTucRQCCzWJVudhrYhodXA56tRoJvFIRs0s12p/YXzsmJbKxPiVwLGOlCd2CqbdM2rCqN2LkUeOAQitb/8wv4njRKZ4lgqhjyXnBtoD2Nm/NmuIERoUY9J21dOhc2tg0zLvH120xVKa+WN5HVOOG9LyKl7koyc8nqdSDKFhcN4joYmnZKfyJUJzQIhiQayEfvWfTNJiNVkMIE2OqQ4O64s/7QzOHeHSMzY4TCO7+5bK9ecOqPxCDHLHhO0xVA3/w4FscRkObjkQ6zv3UCFJTSbr4YkdUIk8OtRR2KN9y9txrt/OS1l1DigVyuYUdz/L83+Y8E8d3l0hq/S1YLMwlkCbHE8hm0HxlLuyTA3OqXizRxNk7w4ku9OC4+nHrj03i2apNG0Z/ojcGsJxSBLhPGlPWbDJ2h7YL+lkDZFitdhBZHjIQKC2dNoretA8zEzNk48Pi829NFRuXqjSsq3iOJ1sXP/lMAZvdzbZOQ8CrH5SWb9GDeWR0uh76RXzKXvv5UTtu1PpYj/BHToApc8kUAxpUh3ypjt6bS7XLYtk74PEZHD3HXbpBYBnMNPUp2ecDw6rxpLxq3rnzROriX4Uvy0sOx8Q13ZgrZwxLeEWImlK9qQT4SYytGGxt4vwG0R2B8zS1xNiNC/B8jnBrK4GwnYSuJwNMrJ8vk1u9gn1pCj51RslBsldVzVB30jxNU74iD/WQGJudJrUAYkQ5EpArKZK0GQfaRXM6VzsvyLBA02CZJkeIU0jUc6Q1Nms+C8teKrP8+EKXONT/igsLXwfLMiR2CqVP greg@genesis"; - linode_user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDUd5LQVl/spIfJ3mh/MERlCfSIHCh3jXnaNVnyHY2AVD2dFVgFX+Q+1adA64plXqXHEQVb3q2EMzVW14QAMP9VJspnODgpyMHwpxp6ZNUsZIH83RN8kauVHgW2LRDCZ4DLRzbqaeDm92rntapoUB74Vjto00AE3gWyGQp/v6BeAUhqE0J2p6T6xDgsuyJ+Tzm2YEUozFW8w8LSGDgaoTKzjq0WVkAo9rNaxGLr/ez8P3SUHgb2VSUrL1qrHE99KL8rravOjP0aQmGGWu/MOjgvh7icQuqYlBF6MHfxeSd7/FZApVNKzEXD9TKBg5IaCOjHH2GHnxthSC0mcjKmF2EVAXuWYDARqxmtIfV/9YdeECEFxzB6X+t6b3RYxA0/oa5Zt70WH2LILmc3U5EfiRf88x4WcsdmbcsKQ74/julgg7vYlTlndBxvl8Nd1IKd6ZD3nJBMMMKrDOYbME5r6x2VTzm/RQkpp+SHarCMXxjukhguYY3Iz9CTO2hdGaQ/41ftlOhpb3I1Gai9GymTPFDt9n3JCEVyQ1+a97ELVr+Ky1L3hMewE8nqZFIoXUB2RFMu2pD9GggDO2e6bXdN3SIHLL/8amoDK62iYgVEp1XBkzHJ7U6hhIYbkFji0KK8A7Cwg8+gOKdovycJIAWndHjaDcLmWDlBktqHIRQvLMTzE9f935faTcrSTpnrCLK/pR3f7ir7HGpD8lUug8m7DfxhH3am1Fz7uY9iNI1GLctexC7espXq/xEA/+j7JRVVKbpIubXcmJjNlKs6jOx849SpdWvLlnJpqo1PIjxE9ZDa7zlPSLMTKGTuY0ekKvvbuaOhcOBuYg1RfbdN1QIX5ba86U7giFMZb7wGh7Pbsy0PhFgO7ANgNZy81RKp45G8ozHLnXCj/qhstqjcEgUICDkT/CGnNkreu023kqOaix0nELBLwWBVM/5iWmKQZnpiBhHHDNJ3Q6DsCkIUdfOWZNCIRwGDPuV8uMOEHJIemg25Z282QqWUIfWzGOO1f0ylVmhTQooZIfjhyGXxKa6AV+/tAXQtkF5B1Z8rB5A3pYYLDmnY1E007sWpvm2L/HKV7cWUX7bkuS+qBXZyHxEn+cc6YvalJbDi5/bE5kFQudZFgKInwFiMLhX/8BpbgBUv+6MvvCn79o9qnoOnkI36A9bEOdQKpjwPdg9tkVWr0RotXfP62tIAQsxS05J7yxprC5Uitf+Bhp+Hph0tS/hyxTbN1h30vfdABouvQpcqbgUlp6psyTT17efeNbGcs9l4gkg4HOGpmF60alA1+PBZ1l7ba6bglp+CZoeA5qsCTmMxT5yLaWcEck/8WR3NHQqkER5ZyH1204Kci35kNon69y1/ greg@linode"; - genesis_virt_user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFWPSFQT0AH77wrwRhiskcBS0w4ZakBRdJywYYBsnm3S greg@genesis"; user1 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDLQRq55JKqLifX+31kEXyuoB8gfM+5thAlgR7XLPvvdu6g2a5cCWyozQ1I2oGbPRfJtzcJ5ifM7Ii2PuqAj3MdYFLHBEDOhIpBBWme9Ts2YB9HJ4NorBvB4zEfJd0Q7k2MmylyeBOwdwGz3bVqPRDcJbxWFMDHqr33FEs6SXdfyAQ5SvhWGARI84qz8zUUdOp6M4e3aIGO3cx1gA+YzYQ4FbUtL8+m1NFO8VoNFMZBMf5q0iF/SgEu5bmGWUCePia6DvfeBFQ2/y4Y7WmOj980WE+JmFTkIvmGruMYeGI8FuDQ2JIIIcehddy9bQbPF4VlGnTFsHqJYVRUUWc+vH1cPNMn01oB8s27ogf9e1lyhIN+cZOgp/jDt4eXcO4Wr04uwj7CI6m+d8iMQOa5Jv0hmNgqqiwOMVBlKeo0FCxlovzwvn/Lia9WZ74JqM6JwLCD8SZ0oFgiSIHOTHrQhr7iaCmj7X/0ey7VR8FnCrpeAJpG+ELTfWGshF1d9QR2zW7u4EsXTDLiuOmdJ+/KxwMvjMcWdlg2+Qch6SwulTQRxWaED2IWJo+YiAql8eaiVXu/eZJGLoiskGFZnONoLrzIT4pSjakPlrSpn/M/GkP1pDpaMkr24OhJsGpJNEU3F1ZcOMqy2iJzIxlPmU8Xg0I/OrnbJplpaXeRCqnmouJUJhWkaPzawaVyW7dtvprLWcpQtUgTRet18WLyOrLKlq1jwvNRMTPKUJ2IFJMpk2pNEP6bdiUxyMa4vrRIEU2p1zsYSUJpCRLtccZ/i/+yAqwnTA2L5TdAORi9nD2uCdM/Ljz52V3A14QapS6oqcoWx2soWKgnsbVXoG8DxmUTpll77Ze9t7Y5216SMInWuOu0vstP8ZcgFmWsiBgIYIuLA58abWHMxgD251phYidua6R3Gtkf8J/kYqTR1P6eJF1bt5efEg7FD2aL1QQZsYJo3CRNz7yVe1XqMdPbfe2mFXQVF9TDX5x6r9Ir3d0KiEmTlBdByz8nSyPJ8IQxC58NT4LNVQs3p2XH2Zcf6B4JOBSmV4NNBnLseFobsxniWjkWwZigED/D2iu3OXuuhmskCbw0hKy2rBcKffaSNMioVqYIiYNfKlMlSvAacQKqc/1HCpqgX8PwAcSgNSLy4K7/gIrTHmjY+g+CH7onzatWzkLo+0vsZRa/D/qwhhK2CU2FeU07mhnWxWuzqpJuqVaAwDTaEforK7nQUtAOFAZZP6qGhIoqsynYt4THb+QORb3QYfaP0PVgQwXfVU5Q8eUQFZ8A+siPtOASFjDumsIbseB5VzkF+UhvdseJwkX2+4pVFu8eHFDyvArYsHeGK6fBcQGJFQc2jSs6doIP9HD9IO2R ghelling@unknown38BAF87CD102"; - user2 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCgg6FGmtWPjw5iYTlxJLz1WBCE7zhYhXgmfPvFRt6cd+sPdBdD3axkYPwuUxIa1dxwLEHn8BY9ZajFNrbD+Y0C82stxbBGLRhScj9phGP6LPJhNJsqeuU1rXcnUS127GlFayBb92UajpgMBVlQVJVgOikdK0GZWS4LMsTafkldS5leYr4o8pJ94ZQUk04m9Y2AhkLOMWDdLqqbVS7rFDKsfNDm6YUIrc4fCFvMwo2IhKb3VMv/CqPBFWx9YWFnLoNRAUhVTbcpDWBprvgAirf1rI9jXihX78gBLYqaI0shZg3mldIfQPaPudxXAYXZBFxZkcdnlEwOIL3jvR1bQKfRroAsLs4Nz66RDMIEC6cYm6QEIppFzx5pAXmjBHk8RPYPV0Z7gHxlp2yL0C3K6E1XN/A6cvK719VxEI8Sqmzl7Dd9/wikuyZhA/ZJfShpGTFX7M4wWKd9ZB6F01ATqAqACs4BHIIakl01C+lad2WQwxCXZo3dxGTMGoUrWTlTcAIKYHA0uun0k3oU0KRcSojpGMFCedR/HfLXZ/3TxeUHAZzSFKAQqZPE+6AZMoDSqVgWW6gPvRqVbtgG17qf6kPXM7XQRw/mNnjUWYrqSzDU4eEyN0AcfWhAN7defp+ERNlDyIdvYSiTniONuBMR5nz5xhLctKosJ1DaQcyNxYok9kGhG92pShRW11JmU/AmM3K6svD2tMRNRg2sJUNYHVzr/P65vZ43jXFV9hn5VTvhNofiDmAgTiPP+4Xo25FHtzu2CDwd7ve1zZZ8WyunmHx5kevdCQBcscKnpHO5MK1EBG2acThWD3HbfzncLkP6w5ZkLngGieIB1C3UjpzbbcBTeQ2NJnra59ZpouZ/ivqoxr/xqCakKlRmi201PV4DzB3HEYhODnmieykZcpSU77EuQb5H5w4k/YY0I9ZVrwyBuMfEducUPV8ghV6HRuZYUNWhOOr+rSmPSvi24kH8kkuoG7D+6aZbLpezyl6u6RvFuwGC784nr1nLXFSMOQpjND23SuGWn6iAcSCqxJ5eBIh50U2ZylsavBjaMDp94esBEG/YyWKcFO5b3xPr75/cwaeLGttdrnMfyWFG6Iz1yFxiMvTNqLKRlGNduK6OPTet89ymu1Gau+l5kfn9YE22gvwCRWU2GuCyTk/PigFyrAKmKduglUecW+Wgylh2OQ6YLJkE3nnJ2u+ujEJsqNdoQBJRFYm4efPFp0WK6DrAmOT/fAD6TyLitWwH+1XFgDR3IKynHgTVaG5SVhjBrT9NA59b90FDmQJmKiVMItDFTn6Ir2+qMw3mvl/xHoXJ6QRuNEOTWtqh8QeJIU5+tjr0pfW+Dz4/fydmOYX3khVZADR9 greg@jude"; user3 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDUd5LQVl/spIfJ3mh/MERlCfSIHCh3jXnaNVnyHY2AVD2dFVgFX+Q+1adA64plXqXHEQVb3q2EMzVW14QAMP9VJspnODgpyMHwpxp6ZNUsZIH83RN8kauVHgW2LRDCZ4DLRzbqaeDm92rntapoUB74Vjto00AE3gWyGQp/v6BeAUhqE0J2p6T6xDgsuyJ+Tzm2YEUozFW8w8LSGDgaoTKzjq0WVkAo9rNaxGLr/ez8P3SUHgb2VSUrL1qrHE99KL8rravOjP0aQmGGWu/MOjgvh7icQuqYlBF6MHfxeSd7/FZApVNKzEXD9TKBg5IaCOjHH2GHnxthSC0mcjKmF2EVAXuWYDARqxmtIfV/9YdeECEFxzB6X+t6b3RYxA0/oa5Zt70WH2LILmc3U5EfiRf88x4WcsdmbcsKQ74/julgg7vYlTlndBxvl8Nd1IKd6ZD3nJBMMMKrDOYbME5r6x2VTzm/RQkpp+SHarCMXxjukhguYY3Iz9CTO2hdGaQ/41ftlOhpb3I1Gai9GymTPFDt9n3JCEVyQ1+a97ELVr+Ky1L3hMewE8nqZFIoXUB2RFMu2pD9GggDO2e6bXdN3SIHLL/8amoDK62iYgVEp1XBkzHJ7U6hhIYbkFji0KK8A7Cwg8+gOKdovycJIAWndHjaDcLmWDlBktqHIRQvLMTzE9f935faTcrSTpnrCLK/pR3f7ir7HGpD8lUug8m7DfxhH3am1Fz7uY9iNI1GLctexC7espXq/xEA/+j7JRVVKbpIubXcmJjNlKs6jOx849SpdWvLlnJpqo1PIjxE9ZDa7zlPSLMTKGTuY0ekKvvbuaOhcOBuYg1RfbdN1QIX5ba86U7giFMZb7wGh7Pbsy0PhFgO7ANgNZy81RKp45G8ozHLnXCj/qhstqjcEgUICDkT/CGnNkreu023kqOaix0nELBLwWBVM/5iWmKQZnpiBhHHDNJ3Q6DsCkIUdfOWZNCIRwGDPuV8uMOEHJIemg25Z282QqWUIfWzGOO1f0ylVmhTQooZIfjhyGXxKa6AV+/tAXQtkF5B1Z8rB5A3pYYLDmnY1E007sWpvm2L/HKV7cWUX7bkuS+qBXZyHxEn+cc6YvalJbDi5/bE5kFQudZFgKInwFiMLhX/8BpbgBUv+6MvvCn79o9qnoOnkI36A9bEOdQKpjwPdg9tkVWr0RotXfP62tIAQsxS05J7yxprC5Uitf+Bhp+Hph0tS/hyxTbN1h30vfdABouvQpcqbgUlp6psyTT17efeNbGcs9l4gkg4HOGpmF60alA1+PBZ1l7ba6bglp+CZoeA5qsCTmMxT5yLaWcEck/8WR3NHQqkER5ZyH1204Kci35kNon69y1/ greg@linode"; user4 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCoGGV3eD1oF0O62JZfCWNxmViRjRGQsfOhRkQfzQROkwDlFZ7S1+02fudD9t7mPtZE6dQ4yS2+6Q3NIfGW8NBbZAlWwsQ6PnrpuAhWpWc+ng/IDQd9CH/rBCt5bWSLL8AGHa4c+qde7iyoFGK0l9jXVD9wATBFQ274WTmPacVQVHmIAmJS6ISmR6vlq9eaDj1fX8wixao6WvzfwAUvXIs8nhPEfmtyu4T/1Eev9rVIxOw3ODQjk/E0VWV4Koeptsyc+V+j+XMyA91v8f20T4Uwe5LGnJHSQS0WavHnCMWHb1tzkmiKdaNCymoDUcUF2rywMYry7JN0kZo2mp2d7OzE/RP3bz/IsAI33+DwRlDYDNzgeLsLVmOJij61AtqBZque6WDcyCF8HN0ZaY0KJPOtNlN92+GUBRF/Faei0MXZ7wW2BZL5Bc7qnXc9USyhPNsm2vQ7LLhh/NtBGqB88+C+AidTTZ/xiIHKWZJXPkWLPRcK5cfaFqHFqcVMk4U+b0FYB95vYPKmjURlAZ6WrU6dNaNaMH9hJSE6/03is4hb4t8RCRiNaR41pEACDZbATjY0DInFn1LxxpUV66xfpOVg5hKm5ScIks3KxWJ8i3v4/cX7WvbDC/UzWb2UygpsqR7/1n5LV1SNPl+/qxFfdaOyZ8WVvx7DKGxkKfkPBgGwdpSthdv7BY+SC4sT9WXQAPGnvOIk6HwKhHjJYX7AIKK64ACfGZbjBC2gg7Ocl4HkgwpYYlUWLRJdJUhHOCi3VhPZDspYhw/UxPnUhYa8lxq5l7kgkks/tFe1qHOvPe3QRW6brg3EdJNkwtMrlrstW4/nph/KFqSshzNVDlEqTAnhE1cjbBZNmlHt1Un4ixcW1b8b86mE+472pSsIEfO8vxP26brQhxepJFZGOFv2vs3XDrrtn6IMJok4e+AQSCCY0kCcgfG5nMYXUoWpGyTpN/JLG0joJuhPWt58OaOzzKNPq2+rCVAbS7/UmDCqkwxjCywxOZRwluBsEWbZaLEdOwQOfIZQGwSDBM0hfHJJxMSaLN3rCe6VZb+c/5mFXUZ46L5mOGkRlO1TOEAe4jqawAQnuGaHN8mMWSw1gKM+UBXTKa0tBR6Aj/OSfPW0jU+mz/YzzJkzNnlRFiSrLxWvL4eXaBsMZvgKdpA41+E4JG8Vu+9D9KNGRnLASOCxRknV18MubZlEEyKby9A6TaKoPrz7GVQZP+36V9DtAJAza74nHSDNAQG/4w2BLOw9+VrDNdXwjMbgG+SN4f1K+e554OirtSMVB73VXjdwoH/FyX+7+dcUZRQ7V2n37jIVOE6CcuEPjzdnkvKSqBsdTO3Bt66+QtS9BwGHu5c01+Q7jvIl greg@nixos"; user5 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDR4vmc5TiymSjMB7E+oYsiTxOg+2xwnLAILYjQKPA7dIvz/A/HW31R1aVVxNEgkHm8qeqmgE1bUysMMl128zvdKmwkMmq2uagx9hboyfCwOYRaQOtpS0dlgSllhM654vL9553t94sTuMIfNUiXBD3EV2Z5JJ1RteCkBTJjzmXQnV9he0xozBYOdGv35UGneQzAr7Pps9iK81mR4yW+vLcW3pAaPmDBbN7C6WFxqcEBWsaJZK0rLCTrQo+6B130XgH6gPgh4GyDaRmtRJl63yANiP/RfkDFTPKOh87slLLZaHJUe94P2CTZw0e9xSzWuzx71nBp9JhkoZkI9XD+AnbHIZ9X3twIADUf+D0fivzOH+Yzne0gNRFa+O4x8xd/xj8QeM+Rr1ATikBf/FRfyx+RzHgHS1ZyOKfIpQbrm44E8Smv7FzS5RcCfAScSn0npOqP0cilYjtDCEoeMVsx4XQy4+iYLOA/EaMICSz2PwQFG/KXe7NK30Cc5flq5qUiz8TX1Mzlxuro4qTktYSXZBs5YyEg3Za/hcqMV52kVn0W8S1DatHOL4TlRKYeKsg1hWNvtm2MRqJvWkqK9vNNL86Ew5D5hgXdCk+AiRzOhQxfprPYMea2Vx1Mkaq3VYHWmJBWc/m4aOKUSajhFu8KG7l8bc4IkgC+qQCYzr6pCUDlCaCEF1iQ3lItSkbJJmRBHKEOb85lsIJ/SZ0bhsMl8bc9z33zY+bwv2NezG/aKVGrny4ZTAI1BKkZN/60L0yzJihyKamEa442jjnvG1jzC2wEtd/0gCGWScfZsQWqDu97spbeq8jrc67U9xqlGTrWyyNsCW2lpu26cQWWRC8ufl5zBNRDFDSYKceBaJ2+sx1GPj3YYdJSlTt5JvxNyBg0BGfGqCTd0w4IXF3KP9IZRWWAKPaOZcil2MRZwYhWEd7p+CtKVAL93uW0sE+0C13+iFMnBUkFBJ2dZH+tWpywCRYcrVNvrBlsHe2XniwBwvQHUFgKaQAB8upFTK1xBWTh2S+CVyNed/fckAUrPDj4sI2NERGcyPC5Oi6r0fUPtcWvKRfA/yXx5A0iNWc6acTqd5wwSO3s8rOCjIwdczZmkmnjAf3UKhmtDnwRd9rbO5Hanom80re9Dk0W+z9E2+70b9iYvZ60pbw+cG4WqEQnr02RS8hKvU0CsYFoDMTzV4snqTKNrl0IeD+Fmjl7oDkcC4YQbZd2902qVL3WHHvW+p0WQ1B/rk8BPVRYVmrUQbqwPFCQlmTe3Zy+LpqbWYemhQJGVSiEiioVNCc7pHO6RyWLCoEQKwKHAoNleKtkG94hT/d0z+1RYpB/nbJ51BPihK5EMlXbw/Hu1SVaaDLOSL6p greg@mm"; - user6 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINAX6pNx5mbwIa8X+GzktyNijfYmJUpgROFpRxSW9js0 greg@linode"; + + user_genesis_virt = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFWPSFQT0AH77wrwRhiskcBS0w4ZakBRdJywYYBsnm3S greg@genesis"; + user_jude = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCgg6FGmtWPjw5iYTlxJLz1WBCE7zhYhXgmfPvFRt6cd+sPdBdD3axkYPwuUxIa1dxwLEHn8BY9ZajFNrbD+Y0C82stxbBGLRhScj9phGP6LPJhNJsqeuU1rXcnUS127GlFayBb92UajpgMBVlQVJVgOikdK0GZWS4LMsTafkldS5leYr4o8pJ94ZQUk04m9Y2AhkLOMWDdLqqbVS7rFDKsfNDm6YUIrc4fCFvMwo2IhKb3VMv/CqPBFWx9YWFnLoNRAUhVTbcpDWBprvgAirf1rI9jXihX78gBLYqaI0shZg3mldIfQPaPudxXAYXZBFxZkcdnlEwOIL3jvR1bQKfRroAsLs4Nz66RDMIEC6cYm6QEIppFzx5pAXmjBHk8RPYPV0Z7gHxlp2yL0C3K6E1XN/A6cvK719VxEI8Sqmzl7Dd9/wikuyZhA/ZJfShpGTFX7M4wWKd9ZB6F01ATqAqACs4BHIIakl01C+lad2WQwxCXZo3dxGTMGoUrWTlTcAIKYHA0uun0k3oU0KRcSojpGMFCedR/HfLXZ/3TxeUHAZzSFKAQqZPE+6AZMoDSqVgWW6gPvRqVbtgG17qf6kPXM7XQRw/mNnjUWYrqSzDU4eEyN0AcfWhAN7defp+ERNlDyIdvYSiTniONuBMR5nz5xhLctKosJ1DaQcyNxYok9kGhG92pShRW11JmU/AmM3K6svD2tMRNRg2sJUNYHVzr/P65vZ43jXFV9hn5VTvhNofiDmAgTiPP+4Xo25FHtzu2CDwd7ve1zZZ8WyunmHx5kevdCQBcscKnpHO5MK1EBG2acThWD3HbfzncLkP6w5ZkLngGieIB1C3UjpzbbcBTeQ2NJnra59ZpouZ/ivqoxr/xqCakKlRmi201PV4DzB3HEYhODnmieykZcpSU77EuQb5H5w4k/YY0I9ZVrwyBuMfEducUPV8ghV6HRuZYUNWhOOr+rSmPSvi24kH8kkuoG7D+6aZbLpezyl6u6RvFuwGC784nr1nLXFSMOQpjND23SuGWn6iAcSCqxJ5eBIh50U2ZylsavBjaMDp94esBEG/YyWKcFO5b3xPr75/cwaeLGttdrnMfyWFG6Iz1yFxiMvTNqLKRlGNduK6OPTet89ymu1Gau+l5kfn9YE22gvwCRWU2GuCyTk/PigFyrAKmKduglUecW+Wgylh2OQ6YLJkE3nnJ2u+ujEJsqNdoQBJRFYm4efPFp0WK6DrAmOT/fAD6TyLitWwH+1XFgDR3IKynHgTVaG5SVhjBrT9NA59b90FDmQJmKiVMItDFTn6Ir2+qMw3mvl/xHoXJ6QRuNEOTWtqh8QeJIU5+tjr0pfW+Dz4/fydmOYX3khVZADR9 greg@jude"; + user_linode = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINAX6pNx5mbwIa8X+GzktyNijfYmJUpgROFpRxSW9js0 greg@linode"; + user_ivr = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMYzms+KIe5/bYF3uCyFjA5e1AgMPLIA3c4k417coqBe gregory.hellings@ls23003"; + users = [ - genesis_user - genesis_virt_user - linode_user - user - user1 - user2 - user3 - user4 - user5 + user_genesis_virt + user_jude + user_linode + user_ivr ]; everyone = systems ++ users; From 2b09e43623b372d775064fd07f1fd8e95b865855 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 17:18:57 +0000 Subject: [PATCH 13/25] Rekey files with ed25519 keys --- secrets/3proxy.age | 227 +++++---------------------- secrets/drone.age | 226 +++++---------------------- secrets/linode-forgejo-runner.age | Bin 417 -> 2241 bytes secrets/matrix.age | Bin 11565 -> 2236 bytes secrets/monica.age | 251 +++++------------------------- secrets/nextcloudadmin.age | 226 +++++---------------------- secrets/secrets.nix | 3 +- 7 files changed, 147 insertions(+), 786 deletions(-) diff --git a/secrets/3proxy.age b/secrets/3proxy.age index 39b12a8..42899d5 100644 --- a/secrets/3proxy.age +++ b/secrets/3proxy.age @@ -1,192 +1,39 @@ age-encryption.org/v1 --> ssh-rsa KsR+0w -hK51PsSrsumrykvRgywYFeUHfFiU5auOPkHpOh/jlin2/tzUALx9TCld3xeXMR/v -ZSgHC3ETSWTE1z/oAfeciNe3pSVprlNE74oPn8wePLxFdwJJhjFrASaZO0o5lK3W -TFI2OQdiSartlYgMeP9D8Yv2hmEReCiauhSImtlvxYfXae0MKYvyyYVULUmSTiXZ -bYFZOiq0+73Ep+A/DahZDjzRAugYIYtXmV068OrWru83h519aKuNHKIvCerYKy3q -Psi6q9WILydtlEmn5SXz5qrrLlWIQnvYxnM3DE9S5xpVbo3xWu4qBtlU86nxFqmI -W261HTh3F7wtTd6BkshAd9ZQKq16zy0QT4cnHV3NPR+N6D2csp77VC6EEnjNQoKb -vjLorXidDdSJIaKlz8fe11eSZoa+iDJy91KTe6vCunFWu7VM1PrDftAVHrgMB6mj -pssFL1b7AB1tJinTjDHglPNNuk5pv82uRSvQMfZ88SrD7og8pWH2tsZ2fdIEwmdb -uNRZi80Xe61Etz4PUF76fq3C06dOnm2XmVbcKChz9A7nJGLRmSYKy1EgC4Dp3s3P -7jovy+bZKhT22zvOz89jMh+XV3vVtXFcwEVFf8gG87IRx7wBo4zL8KdE/Wsm+rmB -60d5b4HXg6QxRDDek9QOvF1z0q/B+Ia5X8NqaBKVYJA --> ssh-rsa kEvMzA -EhIsQ735Ijjp+6cKKaKEs6eqv5aX62vHjpNIZCUh/UpL3YOdzEQqyldZ5HU1kWNk -V72ImOY3nKwPX1xaPwGt8c/aChbDxjKjybybrLD2qZJde+Nfc4LZk+5W33pMdYMK -O26yqwx4ykfz79dAQw6OyuKqILT1mXrSvRpFNpW+TfHHNmyvlIWvcI9ed/G86u75 -KJEWDJuKZ70KF1ZCct8nc8RaNNdLwtJjHR//vNtwr5JnZFI3ijVUTDavbvrWJ+0h -Wmjim5qdR9WSIpTpCCVEaolj3qYMD7MdL2pCKCNYrVXcb8vidGxx8obsWUZMkwvB -DnPizWAd3m0mtQNDmL31CCzKKPQgX5IXj2zavQUeSEr7qfVxK2MYHREz5zvEa4OX -BR5hIrTDGsPF/E8bweVx0xJJcjZaAuL4DVAaoAtvGfC99IedW15lnBsjSsAbtuo6 -2JAfa9Vl0C+gbKa81wWUrJZC6SxLBzvE4zhpBFNrdzMYOuGaFhX0JahvBlR3lxAP -W/SdGTHT0dAd1hUXt/bKz+L9uN/0O2ZU9WR0Rk33Y+a/MbqFLjE33apiICrJC1n8 -a8KOce/g1EVXN/tr4ycErOcdkT51mW6RB53jP4RQfvugkBxyzLDjRvaEPE4STDR+ -RcygB/+Tu3FqJbAYi4DIk5AxqA6cKWdQJVf8gIjTZU0 --> ssh-rsa hjSvjw -uE4bpoDisSKvj9MxFU4HdD90sEgpcJvONwdIUVANH5VBK7OkPS3wRENpDFJmoJTw -jrQ/XX7ZXrYa8KfGk7jFFtYlCdD71nSKAPzgvnpJMubVJhyrT3y/Qds0Xyj2g0Y7 -WsWvO78959frNonxVWCRGP8vOXdeqzPT+HlLykbWC5OMwb/GX2ZVXJjX8Hm5unQi -MoMtMo76m2p9pZ5EcHraNPToBuwEH+MFohLw77RirUPjgz2sLUFUh4bnZLY6sGk5 -scObb4TzXBm7252ZhOusA/0DV1G00XCG8vdPaG/CjVy8AykRysauJGQ4DNESo6oY -X8X+AP2IUSA7vZo26/4rOAY1V+DCA/2/TpueRfQEerGhPfTE8Kxe0hRwDnDIf8if -8JyyK/lBGBWWG5YoLxt/cfWUYhsohYKAEn0E5yoIlz4/O0VkwEgjmB8vPlQa2iy/ -eNHVFWkZ2lz2E3TTc+gbCHEgFpAvGiEUWw5kXCpUV2iTIli9qL4UzJclNuPR6iSX -8quMmgz/kQVRPNGGIg317rseAIkxFGIcXhwfxi1rC8tXSHHqxG6c6hqafulkKAXH -Q/wHVGu09JF2QVFHtZcLGhHx90zVo5wAb5LCNQeXgvhYmGkCxKvushN12wUoMSbl -aXTQPT0kcf9Tlu0Oms4nZaUvn6ZXzyXiHOPAfaoyZfmqiTPjWxNh3beqO4I+rftX -tDnyAyS2Y488L1BPVb4QsnGK3nf58J2YWz9Mrdq65mQvZaB9LyWgwjw/dEu56e66 -fswrlvVK5YUSZqILHIIn14nMax2W8vfNecxO3LFMhZ1PX165159TjB5nFjiKpvMX -j9uXw6EKrqg2EML1kQyrOwoj/K2YsHR5fm8qXSI8iit3cGFUpjSi8BmRw2l3nNph -ghf6eNfg1ZTg7e5i7F+pcuypJKVL2cIudMr/Iu6tCZfJAh/FAQyVWpgiVF+Gpnnj -I5tAPAwYuzraxyque0WqTfIYDrWxG/1vkTnjjTHuw7ZVV4x1lpCGl9sogR1tAAx5 -XJXCUsxgXGuGfpN5MljBn5SBAPyWPE+Ssc4dYNk6vuKK7sjz772msTjCQD3Wo8DK -Niljyne5PoVQSB6MOguTyWeRdrW9VWKi5UFV6esSNunqpKxobgjyyqzJGsd63+O1 -B+8bQHpB1GmZHiurm6MUfZG/iPesSUnc+ME6YIdBBvXhv9OmZTPiqDbkZXdt7gbt -qTDsy0C/ybTvrDOSqOVfPSetqHkilbpEsVrcas2ucQJbDFngRmp6tTLiJ6nOm7K2 -thjtVYrN4Z1rpx9IP9REOW7rBfxZT/j/I62vBSfEBTC7OPf+GQNTf3bGaf87rSrC -cbCYKdmoo+UpHS5GzC96fw --> ssh-rsa mMfKqA -sa1iNX1mSa7yq23tYsb0S3Qg2gC6/uGVBP++n4eibNGXq++9xzctm2YAu9zPqHbe -DaucgxUwybP5iS/evG26YykBntnVmxTDvIKM3EPiXpDKviyypC3IAFIU98V2RF11 -NsE2PgkuskvNPYWo7+kVYEZJxO5IKAbSNhGgZelxigci0/caETMY9HFgHAeNg8oP -VoR9Iv/sFuKox0wqHmfwsDW3XuPZRD4fpDK+fRGtMoH3XGH2zxwyOh2nLiLUxlZi -xh80Y8vR1RU2D4NtYfqmJJz0s0q8gYVhwI2TvIPvQYBm4Dri2N7iAWe5I5Ppssw0 -HNmUGBvLP4RH8WN9Y92rlUADgXpP0O74gmtmobmwwXGltPSx3zYgIeFNL856fST6 -Epg8LGrDWSEFqAIvmnnLWKbrF7Ui8Xx8fvQKnSsI4qAkV8uR9ez/SHkSfIK5CKPe -TeGDNGT6I6JEF5l3bmLnLBT/tTU22SuS2y2/0perGJzs72Lvj8DR/H46SzpbLel/ -pnmKuFbaFDw/FKByI6T10lZO8KWzv3TTSFXVay7aGwwplYg9QHor02iIgqL2PJeE -/f3H86hXOoCnJqIlMeeypjTx+PBlivI1fWsoKKiSgjKCOSnVjgjirXJhPhwMgBFw -Ky+9RHuECyICxFknfuZYR0q3GboD/JMvN6wQ+00Xki+t+3+UyCgWLx0qc+V7MbH+ -MdSEuM884yJGWge1S3W2YDBn8h3T4HR8TZClaP3mqqBYXzlE7NSWK/MrP8tnz6BI -1lFMT2JCoN+svTMIO0xgylZmJqUnym70rsmB8DnPW2qhcAmWlkQy3XllKv7b/Slr -DJiRjx1SMFY/I/JCTZm63VfbLHKJSgUvG39KdxPqIOx+bfOt0HvqbCgt2eutMyd8 -N5KB7uGNZhDni0T55r7ZawugN2uK0QlCd+ky1Q9sSt2IvGJqrmkA+AloZZsS001v -erLeTHwWckZEuuGyc2vzIe3EhdD7Iq+JmsMfAu+U+WzChtUegCnc0NOHk7BNPw4s -g/tK/MFbKsbFGexVcZQwpFtAqYtOwr/P/8/t2pkM11o+oq0oaxSBOk/nhnPyy+V9 -eXMXYcSlJvCH9MwQ53YnxpF1gC2togOL52/PzUpDVnPC1Q+SMPcQWkB/27tYYINO -+t0Hkd/nkvFh8zKiws0H13AqRCEmixqOEjwX0y7QXzQnz1HxwoEhQ63hCq5BcS01 -LI4EpEagJ/jIKYc3lVVBVbb04e7PfnPQguBCiv9uPqpCQP1u53NNlEzvgmAi3No6 -fw6buDjPhf2UtTTprqedkUlgkLX7o/w2FPO8rVQx37oQfyHLX0AO9SRrEI56yI7O -iUTIt+ALlV6BqjGWHJyzSw --> ssh-rsa hjSvjw -d3Pr3oLISDpIWEZKcMYOdVGjaP9qysJ2hnNapjta/bv+K3DRftKILariG56RLQMw -0jlE3mard/4Y+z2A+0RuotKk/iHDJlTA7KcRpivWOv9aWrtRhJ/Q3P9I8iriFXfJ -Rvhq2iRI6886DtnLecbkqKnS7PODfiEgssy2RRWs0wF+5o18hjiM7VWFMooT23Pg -P5OCdXRG3KM0tTqRtAll9xfybXo2iHbqW9lt1+1kJSc6mXXaE5tybwr31AIO6PG+ -Jf6LadVkYaWOR7bWRvdp0NEntWvsNRjgsMP4tMeBCaacAd1MUpkoJLyb9+4ZORH1 -rSMsnnvH/LFbd1XguOkEL6xNu4xRYRxM17/8BJdnr5myGLHrx58geZ3zFypqYyWT -F2rhlKn5i8bKInklWxq+yEOVt9rg3m7hA6vOZmbwIAeawrdsxLoMoSh/yOQKgRXL -8U3sajNYsusgq439wVUKLFoz1oymtPo0VYGFoQhiIn4XA2INadOMtG2s313fJxZx -XdvvJF8sTyAEfJFbEoebgvGp1s/vHj/QrCqFrzsP+gWsQ3EkUv1jkxtacCQCN0br -j3r0CJxZgkdcpHPurNXVf9J/CuDoQ2F0rtkIemQ3UooPBv0BoQo2SSN8NS+m5bIQ -KX1Z6cbNo5LVY9Bc9AH8cfpD4UffW7LwCsNxlkxiGysRzbzk77i05NnbfqsSbmlJ -9+jj9h+I2ai26ngqKLFYu/u9wA1E2S4y30vFfP/j0XQGk16lYuG2VYvcI2XTa4Np -+3KXS3lMVye10/aidFv5y2vs9PupY5AfQKU4jbK34ZCHuN0YvyQP1hHC8Dn/b73A -mG9GO/2dHrUmvKbMcCAH1npP6P4YPbsZ0+ZohESrKJzgueaXPMpJiomzLuma8SSZ -WGva0H5kfQI+z/lqgybKA7uEY5D629cS7+WKVotcxubSeGhhorPlAz6WsYtv+aKv -gtnZFRGCN9Snfq8ghp7KwW1bKlwrboIXEz4xBJQ9X2vtIplSek05h8fFxMnXx1z+ -rmLkrVg4mZGXxsrTwaEmRSX+6wSPIsmikxmO89LkDz2aSDxw1Oec/5/nOPzeckqy -mV2YbRyABq051OsYPapLwDr8LTgSsPfAmxGKbChXcoAKLp/GXYMuV8DZfDhkfpVm -0Riq+20TJ8tVnMTj5rl37ekGNZ4zWsGt0OGqpyqT8PHiD36Ad/z0eoEmwm+EtLfZ -oAKvVxfkEHc7FOc0jjgpapMBVOH6tIE5LrWDyiBj3g3hbXBEPRhgx/nh8ulYr1qD -nWTUG5DdANvtGTeEmqfECNUcfnrEl8AdxJaLYftmEd/mCfPxG6p3nCY1VjxO+fzV -cCAGyXybITsUzEZsFw2NjA +-> ssh-ed25519 mOmPfg 7dHhR103gbtPGP5RAvVKTl4Vb+sLW7H9bNMmQKbnhhY +zDOsVVDSCeq2uwYnzmbVgzWoZmPNNiUXKqGHTMSGWL4 +-> ssh-ed25519 YJiRbw DnhzgnFZ7BxWFWeuLWUm8FtoPIGV5/HPXioKAnsUYQA +6sUPzEo2CkswK67sGdUtWsFoQMviC2dEMJjribIuiQs +-> ssh-ed25519 Nl/5yA qFQufKwNg+7CnY2xrQ2gah9iViODV+WJpZRUrFvbSm0 +Tin2uwflX1DCQOPdPBWtnbIyQ3tXno4o6CfQxGx2ntc -> ssh-rsa FS7DnA -OacQauXAFH7Ig2S0GRVpIJlm4gyooEjlaPM1GRSEdeUEQY8Pz/k411sx9S591vr9 -TeVlOwz+ycuuGM1gf9QtaH4dI3AMkM5KcAK2F2ZzqCAg7tnIGrSXXkqMLjS5hzW6 -smkXyXTFZnXYmx5NBStIQf4dN8QcSihH9CVmAIU89YQj+0ygMkn1SdFKlTfFFSti -9V3HvZDxonFu0Uaqc9CJCbClpZ5LZC18nts+8Tg+81LsfD3Ds89ZRQmmeXgfp5Yd -1BSHWN3NSzIhDZydyqFcu6FRKDf8QMEwA2+rLx5prus7T4LSdVAaBJZ0HnHKkwx0 -+ZkeXHAbeCmFxdqHXZIIJ5Zblni2/FuEUdDILs0GXwsZaZsWzfJMf2o0sswuHLqB -WSxVmwiBnPFL8kyo/ImrKGH53TTk9xXBw0MfZ4q0WgEtTPepn653+7INdHXIyMmo -FpugZo+AICA1iyDXhkhrPw88Tvq33FxkiBGJr0j3aiNJ/5Ou+J4ODXpYIOMosHHT -rJ720ZkJgmzFTp2Y/BSXBWHOoJU8tbf7NodZtqTAOAXQinDzhy7VU7U9xAkjkIG7 -vem60ntc5tUUxgHxTOIItp8+EvEeFgpWaaEyfEkEMhMm/a4np8FTBlCKTWljDVyR -Dsj4pTd5VTQoCDP/JRPycGlNWxZg1LL7MvWN890gtdMkHW+jb3RGZ7dulmZEWgL2 -E0ewiC0C1N+eE6AyuUwqYl26KJHGGYl79h0SeC4C9YQvwPgqO7mBu47NgEmxcI6x -8vsWqTutDdz84sRZ4HC+SxTuVavjuo4pP+Z7/VtPvgfqBRNNhQi1YRWHXWlBbOnm -HucJWjIjNcxgYx0dxR9LnrppcvB4QIcLSGIN63AGLQUO6TYcm0rhnfb7Who3+hAd -r3+53JOm09sjLnFG/8bn4k7eLmWig32LPNHxD8M9S1od0M0fGpRbWQP70/lCGvFT -/V2tHJh78Qxo9PDiCnb/ktLzmJtCan62NlZVgcP6wgH/+LDvja6uWffSBh491m/h -/e4eOddrYG5dmQEbzs5Jpuppu90G+rM7n74UzGZnyibkYljzsC05tpgkWjNttin7 -BxUEaKnWsnUahs4NC0t/YCZ9TtX7b5OF1OCf5OuYD3zZ/nPqJ9OzJdQdrjw3Jeb2 -dvxrzrzZSIsgozYaqGAbOKZxMpc2fkJem6MaQ05V0JcFxpHDzJ+THerIyk2Bt/s3 -QRffsoc6BvajyaE+hwbjADGrVf+1ZrvnxUyPLhTcbtHw9atgsvN3zX9MF/Eeyaao -cTMlQWJFB0TisUXwrzzvz3/s/45ZIy2BQH2bWuXQ8w4I6/EXPfirbT6KcndL1gfC -N3IJBbC0RRJPn7t5kW3Icg --> ssh-rsa mMfKqA -vO81z99BAMGo8GMMQCr9NmZ4YiuvJGE0pOAvMFTHOCUzQIxwd18PP2nnzDPnJDFf -cC5cd+TqQzqLshvII7RlEfK85QXO7iREQQcEmlVXlP0uk8ilm3GOamBzS1OvNkhb -RJj+0mDe1F9jSR0gEiY5IYyXwVJdsSOGiW1osYhYT6I85kCUfDOv+OOhZlHBYNJp -6jDfnAZLl0ePpdhJhZGTm0bacnaktYliEP+JiqQ+YoUS4K2+slqp+u/GHqGbBrfn -Y7DxcqbzRbtTWKWVaYQPs6aO+pcVYOFYJUsKvEM6W5XwA4uPR5pP9EH6i4oB/Anr -Nyqp/2G/yI+JJ9LNTJ2ys+bvn6GzKGgqsa9cK9pzy9WxQ2DjsgxuM7yQGIsJvVzM -aWjJn3vJxZ5/a+bjGpGn1lMjqWA290f6ImdAbDw+ucClpHidn8PNrYLN4v9oiNGP -LLsmBbVw1B4xqjeidbcOrtCHkWGsR3NVH8XDI+ngasyolbmwL8o9YVRz5S5hVJYw -fgVKt5XA4VObgwO/QsCTS/x2KM7jFWq/80161Cq58pWf03lnfR8HlOxb9I5bKXX/ -xCnkz6pI9gMafZdVsHth8zrZmTNTDJxtD9CFViqfxbpulWBSlvDR+AlDR9tZ4BgS -OkrmL+Oc7njVk6+arro50mMJaDfcjeqlZvPaivwslVTE0ik5hVkKr6c9tE5QuK25 -g78Wec6p6Um03FaqR9iWDrVMTRpqBjfs637lbzTX0X6HMuMd0/bpjrACskiK0Il4 -j5h6MjqH2P2hmOoEzBCKJ9s1dEia3w5r9jNI+MuZtIZlh0GF7TLXM+SxAeqA9cJV -qdmy+OJ1kJRKws9Yz/5HOI5+H85+UpnNwacsBbTTQad+JtLi1dHL7v6IleMmNcs3 -ZAphN81OGP4UaFAfjf4JKuAtB+IMj86e/Xnddbuo9bfwwvD9sV2a5bobvCMLhuTH -63KbT1yFoQLnUdyjZhcqAmKkBqe7E+xbZyG77G/HFjfE7n8OkxjqRtY1ig0+VAzX -8eBGZYOhhBxvJQLjH0hDOwZzm5fA5AHsyBgPgKXExtJE6VBTFgyiD45nVcz91iXd -agPxQc0NizXS9vhD8ZaK821wzaLkH0R4CzgubZclqO6xYL80oMv7JAJjv7TfY5Jw -eAUsDL0heGJgTvpo3DAs+M2LJ0p8psGDidwPwz0+GgdBZLyv78LbRT/5dVBpsf8d -MKK++tzWQ9Lr4FrTHDd6KayORF+zvBTXwKges6px6dzvi1Eijp1PnAsGp+tiPc8n -Kikjo3HCqGGdvPattzk05iTj6YNCtCXaf+32Eih0EsMzYjtnwsQ5d5o14Ya8eCGP -eYYRHAvbEAU/r2efjA0Tkw --> ssh-rsa PYwg6A -LhmxCZXal41ZansI/x6YdSzJ4m9NYetQ2SfcfVxzDyQiDFBS75gQ7HKmNTAw1mGv -n6v2IJp+qJGaqll/Gvzjp1aoWKJZWEek4ZRLEwkFKO8kWI/uJ78BnInbI3fPUGZN -dLJUY72x6jHSF7O8Ydyw/6MPemu7v8sDF6RHN0Eck2MD6RyHgz7qOKelPstCd4fG -LD29YbXINievJ2kevkiVuMRodzrNB581lhsCKy90+v2jNqn8ZSZFICOfgyXy8Tq2 -KSh7atYRnpv+S+kNyHuDjlrQc2tBL+wt7x+j2T2zmTAM2QIOkwBGByc2DQblvpea -Qv3MBc7433X+xih/lXQD7pjOjKJo45HvmXJLpMG2E6/C1fYsuTUC8q6ZyRtefEDh -B00Os00tNdRgFUBwXeMDzmTT/NT8q/9BBRaHHshGRBKZfT83I2W/kDchMVFfAB3k -wF8izigOELp/ojiQJIhYt0AmKMPRkCxIbkfreJDqDWb5jgG75IVdlosQ0yilx7z4 -oqLSnl+HUYrJtA9wPHNfF/N6To5HgRY0Frshsl7av+iyl03aE6fqv94+tT30tAcj -wO01rl2fHazrOXQz+K0gcOVt6yKxtLplp9SzSujRUfr6zN+aJKwK5H8t/wpZwnDq -Lr2chL46xyAgjPpuJVEWVcASsy8phW/1Y7AH/hJujvUKizOwfJpPWb3vNlPl8N48 -Z1VrwGiXnLZM84T+wLBVzMNBN92nmnojSpNZ+Vozsr2/6X36ILBYX6ZSwY4mu6oh -Z848Bs9GMk6YFA6oC/Zdn7KNESSr2oE9ATwIFYtkt28XPO9L1+NUjbpwTen5Bi5B -+myKOXtu1SG1Y8hqTbRoKIZHKImtQA+uJELf+4HzQzog22VcVGZH7T7cdHgaYfBd -McmU7Getyy8tBCObTib3NjWMg1DBaCU9yfgogCF2nhPwNZ5XHk1d6v1TfNO/Lwsf -+4Kl+QuxXQJSDhOt14U0o6u6yzqRgcoJskpOwxlWFJeKqa7kUzAg8/JoaICqBENK -PMddVTzpg8JuyzNX3IV2nwJ1//mstbQZSB1jW/aVlUOj9RpL8AxQzTBMQd0xUgcF -eMJc0yZkDgYugyYJZA3xoPb0nEtz2B2SorAIhGJpc3Weg8oD0qNbYicEVgCgre5i -6/v9GLEpZQuYM22xAY6MKjheiuunoMG6Vvj8yfNd1HzcLuzg1pRoQSSOGcnW/Jkc -a+G0liMHb0kRyogWvggxJLVaE7Z07DdAggOdFHpJwGmXASpg58VLwsQQxrGfO+Dm -FNSR3tO8g5eupMNqKRQRJ9FKNjtJvu65A5EfL+dkPorpKQsd5KTeZ7U5iKUCJ161 -b9+bU3DaSZbbTQGHBS63pA --> ssh-rsa 5JwzEA -oprZGItTL0/AOIVjKrYAbW/JAaTMdEC8Y23I0UsMr+hwlyPYRoVei2UyXUMJOK5V -1ejwrF97vK6tQv1Cp4ObAdpwXUGVE3CPl8lF8x0Jxgs8Yxp3WlozcfXg9REqbk+O -YLkxU57ooMDABJ8B94UwVa4kX09I3ni2yS+rxxQlJLnSAYOwsSi/ChUYdGJOmbj+ -bUGesot4k8qBmRjMapuYgUGFJOS/lefxqm08uo/RBKspy95wFybik64xaNPcxbYQ -TOZ2bJeuMi6+XfLpbEO0f9uJcMYa+1Xff1SwIy3Yhrj5fSnMINa67vl482KZUfjL -7YiBeNw3ccVtUWtvk6f10pvmjvgFSmdypq7OfxD1zhMvebkH8qei3dp+RYZvs4Ih -DnqfOz9Z5x/GMGFRwYqvtdml46TEU6ok7ggPG6SqTay4WO155/I//Ptjdy68yjlt -tJY96RupJmcVaneN7VUiSkXmKeqYOv1Wz7P+tEPG9DerohLY3FkXDNmxk1krQysZ -D3zVuyHjgYF1kSvptUsIm5nulpnhJknLm94wMno1AkZ6VNL7pvqgH5XcJm5/WsO6 -MEDgtjaoa/OdpCCbFcfVmAuH1/f6FXLtCKZ9iDkEsHfPELx6d/3BF5z5eJH+5py2 -yVJ2aAMoI88Ah9CjPal4W/+d2+Crf8LPwA/OMWFnd1rDJeWUWvu6pxSLWywswj4T -Dd0NBOHf5qWn9IXtPeQcZqJ2ccXtA6L50jmT+IuYC2fHrFOxic2MOkExpVG7us1m -AsglgirB6CPUrYhKVWJj2aYbPdcEBqQdj1f2SSgFma4OoLdjveX1cVC+KDGAWHOe -eaYgx/JqesMxX+LoYjQK5RwhqjyvQkPULNS3hdzlH0NIW8sEyZVxt2PkMQ+p4lhD -z1qEQ0Agh7mjzyp+OnNbt22Y2lnrzsHaGONOtzFXsWvNkUkCCR9KTYPeOABa1n54 -+DRTwOxFd6MNlq+WiJipZXVKKKSsPICpf98PSF6MqIeyC8rGg3EHj+mTnRoZbi4T -VExWTp0k+u4Uqt4wjYakInOMWHc8l02IanMigDBk/siKevaKnrwtWwlifChY3+Oy -tj7nlczluWoq7YPFYLTHrxr15OL/EI2dio97GUgOvO0OJl/mG7hQgHDCN+cisDlo -VBeD5cyOMCwDAL/4H/3nEICt74aDH/mTa5zzbbgTMQeXzSzruPCzerPNkQq9TkaR -GoDvDKxilrywyAxz/G0qqe1s4Us22fqTncgF1OAY8Yi6eh5c+NBVE7+pnE1o0NB8 -SxqUJsnxXZsMAXSfr20/nDSLKFKzjcjrii8p2XmCaxKqZm9uBGoni3SSykUuQ6uE -lbbLWTbNF/+HPZzrIJGX3g --> dVA%/V$1-grease d9wDX" " -Q36GJhcsl/z0vpStejn5uKgurRdZSQjU7ePKAd87W/NxAOoXcDpqcUCNwV6/L9eu -+ZGTp7s4MbAHwSxi+TFz7pb9K2DOQBpfGDFSV2/zB5XbJX0UC9PaC1K4J0xShDhM -XQ ---- kj+tFfkX1MbUpRNsibswEQkSsYhMwpaZ7hdqt1e08cY -~0b aG6Z^ou74Bx2q-D4ztjHH2-)y xDY.N \ No newline at end of file +KdOiF1ARa+gGiz3SO6Frp02otEsMK4P3Re/ZCzDmcXC92AkzVvmVNCKGa2s6aTWd +PYiV7Xl0J6NAaOsmCKL+o7wh1949puueGzGniKT2AewoJBXcS3qiv54vs8uLxUEp +Flu/3fugJzYpEFpYr2UpYUOb/TxO7dRbJUYwJ4Rj7O6BmCTr8xtOZ7HFb05UsWuD +GKC2pfDaFcwq5W9+o8r7Cofj501ZZmntiAzwXcKp0rpwAnnTrrDRQYE3kPvaDLOI +vbud2enX5ZXJp9XUiXKdcQmdL1YpFXUii3N0lNjx76vx7dTsjW3hCMxcA+SN+j+/ +97yYQ81Be5uF8piqjjCIA5KkZoSZAIW3siaYn9sF/ApSvL6ElWxkyzTUgkAYqBol ++4aFUVNfmj0afpQv+D/YuRLQC+E2383gLahhhH7N1HJXHkgUWvIDcZvkNZfyUUMu +RqRKfGWqaxPVMpA2zB5Tpv+w0KFKYyeuXh934LkgblG5350rr3M2xMMGXJiHIasQ +jKzsgPjnYN9X53LrcaMJP3EeC520l3kRXeJ9c10AN5EfHIJujUv0CMbqwhHG6VRv +2cUMcGPksqeYNODYM1bKqcptho2W+d2G0D0sfyz82AvcGMb7x7XhAmDxz7c4Ksql +ROPdQLv9uWzzQBt+CA+N2T3an4ZT4bpWVrjDtexoGzqbraFszYRAMIqtfov2ZFgr +AWjh3zFkJbuSRhcRrflsiS5ClLdrdAVPYyp2vKKBYU/vEr8AwubU/+7Rb7lmq5+n +lR0CJZizE+kbuj8zQ7x25vUp25OhrLIMbyGbHODxOdy1v8xewu5Gs35wKmt6rdSv +2ne8leoJa1H+RIrIlPKmOVP05aYamxXCHIjSxZVWynnD+3Uax2AQlMLaokEk/jtJ +4f+L10B6mKptoTUUWheBq+3NkphWl4ej1EUkYtzmYD+GBp9KSM5eiO10obIgDAza +CgF+dKsYyn8cNU2rXxYlPA+1hLz3fbrr/srKnme0NSUQlCWiF+pupdt08lOSggVJ +DGWfw6j/5sI3bjPlhmRcb0C4PJMuGy4rxjVi/znx2RHH1/4d5n5KpRY9ikUxcnyI +N2DFxbs/L52VB+37n3DF0b982VTM34ZapC4TxgrVjywJEIujiGUZsnLUcY5QiRJ6 +C2St2zHW63fw5rUJCy9Cwl2fYk+mtJSn8QqPP/gFg9wYR68t/Cq8+mfv9ZAFD8V8 +FThx0Yf32wdk+ZvcQt2YwNoWVZyD101czMTtOltpr6AZMPd51XfP4KdAD7NRNPTw +bsxHqysYbWs4jAdPtvw3xpeDf4aCQPth61O/sTllsNwiyFreeTbNH25ulbR5u4HS +0vDG9tBmWn3s33rsmwHJEw +-> ssh-ed25519 FpzvfQ Iu9NXPmEQNez/+2zV4I+G86R18mpNJbnlUhrVz58xzc +YvBbOwgIVJxBFQlBs64svFlCMhl5bG5rppcw2pxWr+Y +-> ssh-ed25519 GdLgCQ wL2SvqLOK8pBRHvddI9E+9uUDD+XrWllaWuIiVY1RiE +gZX1zmLKq4k51Idn0zbtJmTO3FTrYoy1riUYCWDUB+k +-> #u'<-grease +xGK2+VHotiHbAVj0MTJZYJeUWiSAnrwT1kHFWmuTizdXnPE8Moqf6HVqiaXW//ST +hLI +--- LBYSsJvCyztZSv+T+xGxQLmmwjwP0Neh0u8F59i9D1c +(5-, )N! vyk9#~i{i OGf~lp%y-+R|gK=8 \ No newline at end of file diff --git a/secrets/drone.age b/secrets/drone.age index f15b871..a315d43 100644 --- a/secrets/drone.age +++ b/secrets/drone.age @@ -1,191 +1,39 @@ age-encryption.org/v1 --> ssh-rsa KsR+0w -dddiyF7a+1imsWHHlFY0S6A5YiW7A7DgZSBj92QCy7PCEzrt3yaM/XdZx1Nk8hRh -zwvDgxL4jQoHJjXHO5+U6qNZm3EOvjdgCJVeLSgeCdHNKG76clKY07LQ8RfOqDM1 -GRPpFy6N6BUzpLgoYi3z5unXWlmghnX2tOpX+YW0rNQo0MrfWbVffeRUXQEOZHqY -HmqWBItYdE+rlbpR85unp7MrXVowl3CAwVIJfr72w745EfimppWZvimKa1lFxx0e -gFw4HRTfQtB7Yw22P5V41PY5iarrJkE9a50D9RmacZxXExaMt9JD7o2elF6vbcD5 -LHfS23dOLnkYOvPfWpP33ARNS9XM3OMMpoBk/R9IWJTwCatR2tAv01dcG/pwkA5v -Zr8GhT/oUnwt6yBNJ6FS30T7lNWVZ5kDmItc9UHYl84omx8Mp3Enb7gnNgOR2LO0 -ErEJYMTCnhI8k8HhSxjyzW+sKVbpOpZkw3dRqWPEggaUbu9T6S66CfnTtzSY2ix9 -b/EqIFp5tQoogLB8l9oTb3p2RUCNKLz3TUyRvXmIGWgOI+NKknR71R/SxHeALahR -FmV7hX2zm0fVeS2QDOfaXVP93zy2ShRzc5RJGQziCTjBmK/bpfKjsHUBl+YTNoho -ga+RL1EqKXQugTmeEGizsTC1uJsNKFkDVAFsPxvsZ5o --> ssh-rsa kEvMzA -rVHbelhXv19sCYXan+hpJKW/81qG/fcLM/9yMBSdeHxVEnXu1F9YVTc8hElfx3Z6 -cLt2NrM6QBq7VGnTZPaxk6sVG/PImnpE39ck9sHiEcUWYNURHq23QZrRSp3dC3VL -XGf1JGZUmqHIRd1M4u9J0Ed2wmAFVu6qmIPuvsq9hxfXI2ifQdjLplFEmJNIflVM -cppNsdQELXhs5u+OMLDOrlgMP4ivQb1HybEaheEBG8NTHLd64ciptNcZoYuoPvaB -h05NYRMGLOyiFt8VDvk1MdZqQOGXBe9SoNpqZnNlWWKjVq84V7VklWKCCwOEfXxZ -ciYPYn0MQnpcnz3/qO7MfG4oEZcKITWRZhoYNiNEsNFToqkT8G1nlsqJozJ/EM0+ -qL0em/K1DgJQ1b/gBKZ7laUSr6HGIJQhWcTM57ecANXSvRZK1y/A4CKVnBP7nCn9 -My62UIvWj6Mm1E37BmpF5e9msP6/j/KlOKkgwT6EDAUKin4im1K6+izRFTi3Ejhl -mBQImUiLpGZInnjAtc+T1QVL2n6N2m4kqQ9ihDTFVsRYfCSPw0BdAooNUDucNAJ3 -ypD4bmSvvdRhE6dxp2lgTHvNTNF/iovkseqXrO1uv2M8gudApM2LQ62fPwivEAXe -ZEynah+DjlVdNGVMugKzZwh98POhEgzIzGd7VjCp1kI --> ssh-rsa hjSvjw -TaIZiN5SOtd2oOszOGDz9eTUp0bATbh5ASKeWIdsU88BMhFJjW/Qkpq5NyEGlpJS -9EKL+G39UZsGZPQbJ1x6VJyfOi4/hdaJroHxz+D47Mwnozg7BsyJNvgkyZpznXWv -FXEVsc3WPwKLYteulWQFF8v3lWPvxVG7+NEkaoUD7C5EgXru1CUD7NalpbExPmC6 -4PXOCObZ8a1m6ahCo9AYH9xMFQjt2fpj6AcdDiVASE6aRVj4aE1DsSIDwNawNPsr -+5IOVNNZw9hw/D9duU7VdVAPf4glUeZmhsYt1oydLPBNQW2dngzr3MFacBlp3G1L -go3atJeq0jSD2j4KhhRn85xsEbPGsSM0tPognFNti1Eth7r+hz/IDssmnw+umwtD -XUSjbHe2xA8bG7R+HO98sXnFwm913TjrNGsKebZs8aebiVmZ3e7rLynGN+BgWIGZ -MWWW2SKrwdjuYEVc17dkMudJf+TveDjcim49d8rCbPJxzHopmXoYKzm/HFcnf5Bp -DZopkkHdf5QCsjAR1a4aw1W14RQ0LF1jmldInsH7evQyn6T4e8Trno2aVNY5+abw -4lMNUZjrb4FKVa05eY7cjd1oPo3uqOpYmqBcXBbo5cwfc5YwdAvfJF4CuNyGw3Li -mYg9jiTlRVHDfgUcVY2AeTwcbuSKbFFCVgJ1SqSyXm0aVhp+4mOe9DTcDc0i0aRW -7THdA+0epDqiGPcRpnOFvvYbPCzMbeYKZvFPncK4XRlc+i6YMS8DDqbKaipJjfmy -/sU/7WzMe7vYLBWUUmK38+R/BSNkrHOMNl3jKE7GXsxbCnpgnXVqfyagI4A14qj/ -AI9Z6I2REqQRFEbe9M7vVFNmYGmXMHlV6ErTjeO2uHB9yTqqYf6YaXwpH/YtVbrL -aBvpw5r6iHpcyIMlbB5Qk/nHVnZBOnHek246hnuX984NKXXlFQKBibmFsMboMgOl -JHJHckpLdBhmdeczYPgf6i5xJkX79pLpGVehLxaJcgPcMBN5Xp+jLoA8HmgHdEzb -DjEw4yApZjkjC3N2ZcDujpO9c9xaMZOqoQ+Znuw0q9qPtETchYTlp/qxnRNn+hih -V8z0Tvxcwik1KwstE0aHwgqPNVER/n0ePZoeF1MZPf0jTYCd1+ScvbIfy2LXcBb9 -dVG8+8fEM1jrheUQlGRBfSaNQaViHHFYuckloEW7GL7jgR5hZ/Ool97hKiUjx2Di -+IU287blReXAJJGS/MVDtnWvf9GdaqqYNDQK/vdqzbUR6S5v/ABOaELd5i4w8jAQ -YnxB+yaexLBeUlC3+F0XR4qQm03ZgDWKWd5WDgsM3HxJkpdOLWPJmMixq0KkaHpq -7oUEDcP1xFzn9hdHCJHZtA --> ssh-rsa mMfKqA -qxSqGQ57B/x78DMtmsG+IhmCew336zAjxbUT8rNHJdPt7EFE6qnzPe4iY8E9kuse -IY9D5JERPG35RWx9SWR3+2TenDkBHdiGOatMTRdMD7fEAPnEUr4DfiaFakKKg/fD -VeOTIXcYi0/1a9lcU5EdMojsmVMtWvBInJgTtHc8w50rTrRClQG9F5/AFnomACzl -tn0LaL9jooujY3JzPI+M8//M1/SBL9jxR7rZCVS3bU8Y1qn+so0tPadXrPJv7nGC -gXMtAt4HcYpndDOo6KheUoOfRVTmXuKkQI0/jmaDSP60M5ffwvGciW7DOoDTUdhu -Pj6etsjkEAsw3A99B8t3XAGHPMMtiqFxA1cdt1RDHoiNhKjJTGZXocj01Iy1XpvW -pxVbZLn2A6lAQSEVgJX/dCADA34lkRiYYIQN/GZo2EOueHq6PihIBsBVREnzT167 -sBOlXB7OaLHKHc/WMe3YqrcAgTppWjkWvb/TOUcQdcH41+0w8hVTkAYz/qa7Zq2Q -z+7q21EpCuBMdmPvSFgjIztlk9e8g/z/lOkKPN3zhCZP5druz9R7NSuNWnoUsKS7 -CeKLHDYamIHMD9D+V1v7Pe+2MSJBHXlJ5XTOwtWgzblxCTTVnIm9gUuLjmwMxSDQ -C49oGtuX3ybhe9TbY1x18lxyAjns1nFbtkKibsmUQbW8z464leXndbAwa/yNvtyF -zKCIoaxoxTO3s09JaeEeXF70/dsyBctT/v1p9YBUqcVrykS8SNcC5AA+1i04kB8d -ezggD9DRax1gX4B4JIn00+f+yPYltyVbn09ddqekxJ1THaCzs6dMWmUR/m0qraNj -jZbEbbtpoewmLwf42UlgkNE8jEckOPklELRPQn6wJYst/3CSaDUm3y5DCVTLSNr+ -cqTN/XTigJFT1HSbO2YNMYzh/xt/avbI26g1QhHAAOw9gOU23KDb3VCDR++RbVGu -sVJHdJCHsez+dreOlCIwT4irla1VbnVsWSXlmVHWv0Q2zdiXLJURvDVIQJpmm2vk -LQK3+b68bLZlR094JhCT7ZZCuETCjmd1JihxIMd/JNMdTalqmUqdgoHgjDrSTJPh -CCyHazC041wmbDkBj7JeUNnVVKzH47xZUJKzOXjINYEMs0Ql0O7rMmHc3yedAIPY -xZBkkobTcD13DhcPcTrs5M9ShlKmJNSbjweBk4PiwyzZrhuusF+lQfJqXL78Su71 -AGKl2NjRG2hiN1ho5TTb1vqn5vAUIRsjA6gwBFrhVGaPld2Xu2qPQmDu58+7nWoO -lGeg3X6qnQVtyN3WtpBEChaXjeq/vBdpqT8aJjFumMHlmuGW1Eu1vOeYFWXa+aJa -UqVwFmB1OWQh13oH+ZMCWA --> ssh-rsa hjSvjw -qiZYnxwF16YDX2xqnqd4Y17U7XDjFFOaWFZetfOkoGrbvtdYd2ZOejcoe6nfhczE -/1fClXgZW5iicoe6p8IdhQX03ak6EQ7friBFO8Vszwm0xntDYxvNANEpxMw+DxJJ -EGe6dDmZFgjvaDdI8sSSicKbNPIlEzs5pmAFyl11vlu3OnwecT78T0ZCnwiYzeAp -SodHPDZ2NibLql6oFFLpnlVSEL2CHkkssKfPJSRft1c/tX8owmJEmHF+iddEkDh2 -+R7JR8JOfLrdpu/i5pX3A/axCrQTlMFHs7RN4G9HQU9bsbaEJyKFXX9kPnI/GdBS -CHjP83Sa2/NE7WDHIdH0fiVkJdo1XkTFoGSgiAe+l2qa1p0sffzp1tzdRX2/MFZ1 -IvNWrkAfHonRnr95t2ziG2t0KO1Fr1quny3USIjyMij564IZWihouXGs2snSaFkb -zLEtOSr4w+EePqCt8Voy+IXNF+cyUMDmZdC4pq0VRzYHGB3zpGybTrV21RsRF1zu -1rNzBrA0E660PU0471e/5kHBIYcmNrbnh4qE3+lEnmb+0ANA3TGsOPeahT3YY1SS -WmOfEBB5kOTNEc5+0GwfB1rgQFNaN/sizKRSPD6p51vCIORQJ/CyWMG/zjZtY1yt -uoQJruCIMC6yCYjncL0WuLLciqYP30eJ1Sy4v+5drWgQ92dAE21AYBoS8cAfhlAV -1bXyGmyO7XUwPg6DdxrLc92OiqyZCyHWVgS8ZmdQMy4ku2RSOPNZqQUpMch+axzN -F6zNG8Y66r4pM6HWaEJe6ofUphhhFlosQ4z7bWjJo5X8wbesSAT9xl4KdUSw17qV -43EaYbL4i1JGDkLyhkK1D++pQn4+tz/9gpzQzuUmoK4RYAkS/MMBaQiYrYgHVbE+ -rGm095OAe2xbpyguzS+dVMr0EUDOOn+bxhoDttGWlnjhXdpezBEmns+2qmKbs3Ru -Vxfs0uaO+0C1XfJOiiDt5XCeXX1BWcnaqbetjDOkzMjEhM2gaqFqVdUH3qx/9xfq -MXe1vCJvcliCRCxNEAdwOD+8lRCH5JNClvR3ahnpoW9Zsd2H/9mzvwrch2JhZAqx -W68wmVtP48emL2I4RoKlMUGcFWu8e4nUSM5fTBkOT4m68gRmbUUf1fkPus8KYrTC -jSpXloT3tpAgxWcwEm3A/BhF/h+GvXzYgVPUKsNM60oGYKnJpyNWYKG5ySoo2GFD -PpYHgov2mG/eIbtywUhrSuCeY0NokPWb8+jLAgCBEr0Fiy8xuogAY0WC6H8hS5N+ -G87btf33Q56/JNkeki2Yug5rF3KRK1affQfnkX+x8DCiHjJMF5Nw31yEXDeD6rR/ -nMHVVoJjhEJlLaP1TY2eMQ +-> ssh-ed25519 mOmPfg WAja/IvMSNM4ilMqPoC1se3bVfq22K3jWlqUFR0PBXw +TqAr12djCXTWX8+pBIw4lLuUCzazNI1JDvyLdTWGubU +-> ssh-ed25519 YJiRbw b9XQ50WPz1znA7ZcBOK2S0qASanLoA9s+2GK6oFGRzg +T5RZNZfzXbf2BxuWPwokqx8stEA9oZKt7VgiTo3a2Yc +-> ssh-ed25519 Nl/5yA BACTkOUzDjPf1tLVQ2KfL0UoOGUdEynDGhe8hU5ZTlM +lamKkIgPfCxTNAkMf5A4xT4AEwwaMuZhtiKwuMTne04 -> ssh-rsa FS7DnA -I5Lj38XRt8qx1ZWDl7Avf8AWaAgv8Xbdb3B8aZj3Y3EcRpmu2MalJdZda37zhYTI -8zTGnIAlD6PFg5YER9UavKN5OTzOmhOOjXH2zZR9ka1I3YQd4rBHN2DAN+iEKZXN -S8zHgT3OGV/9VO92Gsx/SF/VOU4UHXMDZX4oOIVW2mN4/0QzNcvwCqu5mqSP2l+S -3H/SDM0c99I9MI4VAcyNYI7qK2i6D+H8f/19DiiZ+bs86190XTmcl/jsACkSkT4s -aa0u5P0/fzleg9P9fnXUP5uKxK1XI/iLo93/8f3b6pAW+OD870YrXhF2aubVQrDg -VJXKbv1dxDOYTkTYiFFlX9qjqJX+Fuf4L75yVxOip53EAQINJ6FHTxtLrs8+4beI -Ezab7Sz1/wKwmCvSKRVzcWM7DP6/EE8ppn8KnU0jUb29+2rUpwmzpmAdaEUURGEk -8iR7wftMcqAsMqXMEPlBXBbvuyFhDLoq6EHNUbBzIFKPjEz+99HCeFDQtW2cBVW4 -TpE3MuRglaXrMSoCrUHXRjKZ1+Hj0YVCd48n4+DSa4cA5FzQnsNRR+5kIiJ6xGkU -lslNYJ1r5MxcR4PTRfT8B0MX943z8fVtSDpHEaLOh55C0YGddx62IuUBIDnuxdfr -qXndi4deud1u5cVmDS87mb/jaFfPdbUHeKW58haP23B1opwcf7AnV3t/QidaHvEk -KaXBOyuACF+ZGQdqXMX/qP/2LMn/vF8+neRvvYfWct5cLTYQvTcq1UJ7UCU5ptCh -3FV3baAqZ6ODp6sL/my75UbW4hkpvOhgLM94gERW8jpFUTXh+K/Gey8DfEcRftta -29+hPnfYiELCxdNd4yDQpvNKea/ADjHW1LCRAwnjuvyxzfm7xUyVzbznceIRNNEb -Jdn5WA6y3+zaUGN7wgE3/CSywTSq42G5PZaoosKZHm/LEDkWsET8PJluvOFSslTm -3dwBSvvn7flArKD9Ox9+FNjrfEa2icP6etogi/i3qemZBzLeztffjfr95kXhrG9c -DroWNmIHs4ef/DjqPD2WbiCKF2pgvSv2wZsZ1bDmQfMFiM+SChIpZME6Rxusb8l+ -CNmQyEqvtTWtKrIkiZ5FEYWPzRfUfnSW7bCtAylu27CQYrI55tqtbAhtSqfCJjEO -2n7o4B1QORJcEYfIngKXEdhf7GnKjgvt6D56HbTHZ31ZaUE1W807p5S9mwpfgq07 -/2HlwTDNLMBMGnW/4rY8JqVcpJrKmIcD46Om0G0ZKqcPkBXWnJZmKjwNpehsrAR3 -zAtaWcmV3jHAFmznDePtce1IDiFmj35LdVDIwGV4EX2XJijI2plZEueMyoFxPoiT -ZNRH6G/VciDSHrajlx2UGA --> ssh-rsa mMfKqA -k27n6Jf5wVoTi4Qo4BoZLir0TUpnldbbws2+nitosOB0euwC7/L6RVLsW65YF6nK -x4pb218/PI5zUEmVK7CsS7qj1jBsjk0X+zMb/xU5521SzTiVOgkemzY9Q7FCWhD+ -49OtFr9KlJLPsb6efj/VAHD5nQiiyh70MJhr52v6h5BKdOdx9gc/rea+3ca2NP/J -lrulQdTie2IGdKrIgESjHSrFUZ8+iZ0ZFhQCil89PnBfAF966NV+tXExP1a/fHzv -t/4kCsf4v/47ciB1FYEduIB/+8NvEr0e0iXMenVyUp4BLKAzrLtP845YEdL88u2V -vzjteWn4UyNgVH066eW/MCYgLUAOyX7dbYI8aS61wgG3gT7oE3s+2/wd3TyGr2zV -v26yfo5m6ihcifE2dEZAFRQFgpV+xHsy58mYELILGnZHWPdt3JkA3OKFzyNePRex -vtg0ON9ITNb1Jp4xN49f6kEmgorygXLUp42hoCqAtEGlJ1vdf4PpP2jt5vRRS2yX -L7hhen42A20+5NPL51CfC5LxuMWMoRb1yvpTkfJyrbVbAsbudwp+dAG3XqGpIBnE -qT/uIZOmj7wUeoFqK8J1YM5uMxuU2jBsmZ02e8MDiwdsPhhkI1Drzf891huLOrbq -5kqd35bAQ3NEqSTHt/ZD0ogvTX6d/F3SSFypvweoCBDoHMe9a1MhHGT9xk2Pftqo -h6TkhitBUwPzVXZC8mMcSWkpCrAovo9MGhcGRBEf5eoI2RXnRburAeH2chpP6AU6 -aSmcvDNa8WudZ985D3GTg1zQY0squ9BsIrRDVpqArzTqNxiZSYf2KhgYhb7jNfSM -Hi9WFix24lWyD9VE4vmKBbfu9KzQg1nNR/BnIuT0epNiMMHISfYin91XMs2Kh6og -yKprBfeRem4FUzvurItr12tFIlhg4apEB7Dx2N4B9N7lIJMXqvFuhIFXLmJ2TyX1 -oOcF0LvtIbGBpeP/maik1/gBUB8eQRMKGH9o34EgSbJi+k9VDosrIHoDEm305ggh -nrUsx/6/7bcfMo+YJoit48bG4+wB0FT0CDhXtqcP3xF6d3OlpKq7M98alP8HgHrN -VKTSqj2OJb+percGqSCEYcrLfSeW/ju/9on7YbE38770X4Esat2t+TJB30PE8rUS -E16fsFae2UvafbPZygAJwKONomo2zpzwBcdNRAIQQLQ1UGSGg7QbmZ5x7czRXWUZ -/+8J3q9wkNpnAa/1PUuwLnv2wrd3BbZS1+6ttPNCl2uydrwgDF7jUYjb3JtkH7fb -diXetFiaxPZJ538WQk50lKL8C/L7aXF4CvGLoywGYaERV8S6Nzo66TduPADqQuOj -oYQl27HITjOODkLriuNNKg --> ssh-rsa PYwg6A -iH6N5x6J3reiffORl/gG35DNhpWJT5YjRtXXjmluLTx3RqrYOsISstsTMhOV4FA1 -IdpcQnv0n04dqLhGthmY/V3HsdusejCnRWatbdVaNp72Dzfq7PRHUTQLSZPfKKR1 -smEExinIufXzbamloXPeUg2MiItpsX6I0GHij2tt5TUj9amdKmySdrUpzldGXU4o -D42m0hKQGCojrP1/RDX/XbgNpVjHS5/w319JvDnez/HryyrFlp1E6TVC0A1STBKH -V8/wY6h+WFvLCboj7NnGxlVHOfrwsGCNMHXxZNju5ERZFfQss0THSK3qlBi129Cb -R4xRxYNNbOQECKl/kPcmoEOdvFe00HzuYtL523u7UjOqJAV7keQuxyy0QC/AO3l8 -uqHoaa5RV3FvMLRu5IBdrwR/NdB1agkN3VuJV/RW7IsWExq00QGeuyE1O9ZxjfBN -QE1PSULN0YCl0yWM3vPajjtWTw8dI3jlo8UUAgi4yc1eqr24bOBE3iieRf0Ilcn4 -IAW58PkCCKCyO5QWTHSr9ZbucU7ns2aRrbVXDu6lAlW875L/F8tfl4XG7jp0REAx -7hRNgCZelY3L9p9thfAKecnKJ857PxW7hgE2pCFHLYS34UkdnRlLF3F8a/VEf+OT -eFpvckSYs1rdi7ykzkNSfJZY2hhgWA+fhzUsrlf6yO81I/b2Ca14iwN/sfEgoKh7 -xjKZKgD5bqzS1Ic0yMgNGgnL1zHvoQ7ju3n69ZhEbwoT2DldUwNhNMB8n4SPTExr -IcL1IdavH/1VZsvgTPmAXpHILCKTIpQV7m5+aaururGb0Cugjtzwc9qbfQDTHkKY -YFibIW2o1yMKbnAQQSy8uuF+56WFqHhPFX/jKHwmvahKLF7fjYRsnmMaE7vpWQpY -zt9bPJcLsUbmhzXmbI0ZiruTRcQp/IQSJbYZCAXoPDpmxKQhdMSfh0aoewW5Jz2t -oFqyWPJKZ4OUz9KS2CJTsz3/b29FmZto7roq1cHxnmJyGtQ1mfN6FMwdcS0vuYcM -zMF6j5hBCrOLrsuzH717aGJBz9jDcYbj187obwU97+O9fPwLpksCjcxYg51cKa2+ -fsyopteEbMCACqvaTtOE/BGMEqFAxCKIPMjNb8HGlwNIlpcGp+aJcUgQ5WxKbo/l -ANXQ1s1jgxROoUpC7vuzyarwheCalqFzL7GvKh0LY+3iEFUGx5ujBvvz8v/cHBQO -wplxSeNpshWRrB9QQhVC1Zs9IlARgfP9URbTBLOHAc9E0llTzmef7eppXt1JT3m2 -kEgJfog22FYyMRVmf5BdPlRDWqrU+Hu17gb6VDoFrQq3DLpn7qsMTh9k1iKy8nEB -f9ye5aKGKs45SBgR44EQwA --> ssh-rsa 5JwzEA -CdL4I714dZRuMKRV3eGN50e8VvBj6DhVYGvXb3OG8j6J8Q09R9ofc+kprrR7Fw4+ -BFwQq1BE7cd5kU/UpJ0kKUNK9cT9lHIpa0eWgteaBpSjsNOzQjns0PV/k4W3PSk0 -LhTvgCGz3JLq3wFrmJPHw+LUIQ/Ksi9i1Q6XKAoO7aGDO7q1CrE72vnHO/ZBJGUP -5zGDYMMhigBo1bOhj4HtZ82CDpOCatvk3Yy7e8OxWqw2AHNMKQaw2YMaasgiIluK -T2RdTbDGKSP6654rfBWsrpIlglB1xTFGM5BPtarmS8V0bco2Zm67116CERwm/P1X -jansAEJvY56GpDaHVYUOUq/0J12r+radrzwsDMGSObh3Gicb1eowRORAq390b48a -VkdYFWLQ7tCoOwCBKBbkL2xchRgShp9gz1VH+lOudwV6i3m2W4vOuHzYzINEX1l+ -Xp/vLor+UkKExPkuLbPiEiEuoaEhZ024YoJ8jIlAYr0wMJi692k1wE6BZM4Phyoz -nj2pJcVP12efq+pcUD3hprsx88kwq5guFhWcf5/q1vQkTN1ImCI+XrK75totxa/2 -Mh4FODhxSMTqFT9jYZvax4JEtKMhZYZcW95ZqMJ4EfxPIy2VtGIwinV+n0hAPTFQ -a6G0d64zECT4O74bUIhwCmwHHzOt0taPMjPCHecpkpoyNE8EMCKbKYLMJWDCr2xH -vzkdAZE+sKDbi60VIh4+3tt/skMlwOxKY3DsR7rnrmx+Cec2aH2QP4fu/QPFETHF -eLfRMl0S+FLeXvyeVJlrWVsROhY5BJ+myhe0G18vOpec8MgBmjH1o2eu4BBBYdNV -hWeaxNdRNZfsJJ9W9JCgio8OCCeeBNrMUlSskFCWFpIzvsQdvZMjKZ+z5wsCcIyi -jWpD/92N7CjbJqL7HCTif8iW7WEAndnMqoYcmm0zELQJ8GBvypcVnM0NV3LBlS1Y -v7yP9LjA2ez44bWwpDnfuQRWXsq93RbtpczcCVwvGUGYVdAQm7cy2d4DJflFlyKm -d91Au3xycIuyE/TbacLFdqso19RD7rBf8UUWd8mBBuemOx9M0ZQ2kaCUMUV2/zaB -79CCNSv8e7IaNKEuEwP6dZR9hOMO+V74c145Gl1ZcKT4OWhb7BYsFR5RdJyi14Ko -0iCRGMD9JTuWNT7DGTzvhDla+Y6VqhJnclyJ7ZSHVS805851njoIthCnFjWLSoHS -Chzye0UxEJ3Kkg7BM4QqpKEXDB9rwUOyv6QsFhY46src2GEQBOsz0r3YxfWJlBoz -As2+8k+2p+1O057S0lPycZrBeF/Fym1as+3VEvlgombCTJXPsqkf5O3joisL/7hZ -DTV+ulzd7uKlc3veK5lkLQ --> TVOa\l-grease X -bZSXHoAUnqXsoXxcjbEtfWz2IuQ1FSVSJYCGUgok4uxgT+iLeA ---- 5cl4Y8yNYn0ts3JmokexR77FsmYwDtJfOaAH7mnw0is -!G1#4+>- 7ԛS#!r!k'? XQ5k2 -ٶšxH]Q0z # 1Ǣ`q8 W\PZI_l3[f` F'9￳&~"N~YڜևPx7K#ҭj?p훑pcQ_?3!9V)q?=/y \ No newline at end of file +KqK5cqUkWzXwv7O+ugAE7X5+nx9sRWZeiFm1b6iiZxv9vitAgC4b+X2CrsYBlRbl +WzOsbLb53qPgMp6UKpqQPLWmtRIAWJspauB4NE8qiVkuROBGZvOpzJnu6+PHPj5d +08iw6MgqNZmSpj7RTKTE3yblpNYhqHlWQJ8UPPXqDcqf/KaLHHGtHi9sAA4AQEHl +4weGx21orpP6olq6NMkuwrCNDCAjsY4V4+vy3E0aJPjkQnP5c3Wk2Qzf80WvgtiP +C35lyeUivE+lD9NuqMVkLU8EGMHTWXRpYr88vJ/TjSjBaSMp0N+BumfKPM/41bEj +8VHB0B0OzLyKDkEkh7RKuNvYOKUM+1AHA/lMFmFqpS/BbeVRHTMVLuwr1DF3VM0z +DD4+aGB9dluj6+81Lvo2uC4Gx3GtIAAQnkGOVRemRMVTCM+8pPdp0DxNWuE+1P78 +ZZ+tvBg6m9birSA5CEptGGcclG57T7NGsVR0UgWpKmGZxPs8uPvWCXbDa3VJCL2Y +vwyHyphc/QjLi+YvdJbeNhLMek6YTWNVxcdPGC71RVwvFoYI1+VeYqXVFvbe1Em6 +3Jz5o66Qv0yrk+s8cnlZii8Q7jwERybnj/W9yU1I8iUFLYoEquGzGE5y5M/aMcaT +9F86Y6XjuFMq8aSMBMIvMCRDIJWBsTbL03bGtLjbKOMHlBYj2P3EurjITdnMFQQq +xjBcu0MBlRn3ZtfC8OePa6omDnhVOxhxdYsDIaGdRjVm5wKDlDrAi+zlE3e3G7se +nfOwBkdHi6Lwsy36ytYGIT64etGTnnFyL66Z4xmXTY1SQzMMh94F2UZGZ3IHjjg8 +7dZI69G+xgwHl9pSWcr3SdFTCcvZk5kGc6nOCu1GW/dS8Fo4xmm3V0Qeo0UC7h7E +ViYhO+nxeJkA0GFdvg+OuFwUzTNIGPqi8xPYYDtW0ei6lym+h+tXA5ycaEFLpUy7 +m7oayTY7yczfj+3/6As9ypvJvnUhbzPBZNSmSfZmLbuq4ACiTvf21oFopkWKNpfy +u7dxUyOu33U88OiaYizSLrdS2ct+qImLsvGikuj6WCGueB0QJVOgH6Nr6aRbGm/B +ehWnNdcUZVpkrZ95YFOk4HQNIfIYABLwniM9ZxZJ7MB2WsjOeFPCeTHUt6JhMF1F +nCgD+QmTah8selrU5/EMoWOkZZLjzgLBmLzhq/6FSC3RZ5ablgJHClR9nptrocj2 +JTVKgiIWVF/ZTf6R04iELQqBtYH1C9zMpFwywPJseIQiWwmjwhKiwzgIqGYXJsTM +0YezoOxQep85OZtPhrpUWFxuAp2iQqr19EzP/7EKtnRCGt611dtyFFcnVIeKxRin +4S/k96s5dWHV3DMs2OjPqg +-> ssh-ed25519 FpzvfQ 84pOpWlGjMPla9mNoPbQExiPIJ/skEAEcmlBl4HKqW4 +LU8KXVx7K4qj99EIJWESQNywm2zQU3wSEfT3F8xckWo +-> ssh-ed25519 GdLgCQ Bcg8rIy5zjk5rjeYcE0oxXAXgoO5wj+Nu9oOf3JUiHU +jut2YXWVDMoaHgarXo4jsv+xoxf0QItFI1qIyTI9Bf4 +-> .|-grease /a W ,O +LlGkqFUCyR1KwczNgSSR2cejAy6xizQ2q7REqGTkHzHcCi+u8RV608edT0zo2bwx +JDw2YR+AJVh1F7DJ +--- hgc0+BI0Qe5Ubygsv8LWg3Zz2PX74F32DtAOReSkBck +s!`/_R^[c>Lvրv I*wT1Y,*Qܢ0ȁ{ߴo ]$9B~Lx٢|?_]Iۘl 4%l.!鯅ZTo}HFd/z_ !Шg9}FjB]Lv (0Yw8ko)l$ \ No newline at end of file diff --git a/secrets/linode-forgejo-runner.age b/secrets/linode-forgejo-runner.age index 06d205b514a99f7b96e53ea09851d6405397ac16..d1f5ff7ade8194ba696b6c724707bcb79829e220 100644 GIT binary patch literal 2241 zcmZ8iIqUog0adn=r*=tis>i7p$_G+{t8eCzAou+>`s7TqAatc9wP)TUgjx z2)2Taov0xA5$qHT6$fFP{Q~bj-s8O&71_J2OQvIZlzsP|ek!090p5M@ZJzJ%vJ@o< zgn4U?*365yyLDlby46zUF^XEBL&O5kIJd(6a5dEO&bn5)8i)h3I3Sw0&FW=X6VqB+ zRVlK%*vv~=mFhGomYP~cy!Xunsg%#Mg=%TX+Z(6}ela8$(cq=fHt}*2ulKf>OR3ls zws--f$-P|{wWtBQKw;YyETct<9*kz!y|wxnsX2_m+2uwuXO3-7#Ff2=pJlr=5OJ_? z2AuI+U9r}P`^K+w7M{yXWg!d#L#{0Qnp>VA zYnMVMQy10^*szi(mNPhZI3YRE@@6{g)dqHRuSvCw)kLNP(0l4>=-oTb9?5;j?pVB-$-+ik0b7)jsiM#+sEA`x$iX$ZtBLne9GyLOG>9axwEA%J zm4h7&z$0I3IMWm!0?BsLGv9D8*B+p9*vcX1CSD~GSd1^9Znr})Vz55JaIVrO(ZuDj zZNL?)BRX=J%iLqEs}G2zwA+exlYez;^G&; zr$i(^%}5O*sPJsySYZ^@1(H>zm82A9^lCxO)6ug~H+J2PROdoxbY$Z%OXy?kvLh&5JvrbdYG5Ka zhzL`1#z!0<#~2)~-JLd)BJSX*qoNoZXk}{z=z{! ze5jv%o>Frq;+WvMLvEskl!k_a7~2J{_QNetkODdc`>fa{G77Ykmp}k-rm}m^paek; z$%#LuLu|cvKx_v-#W!K1m^+o74(fu5d%`1btRE?Ku>vy{lb4A^MvY@j?r0PRO?#^Y zKCtUU76QE*J(E{h6RlWMv(ki?<^14{>E5(LP8gI3J4+}7Gq>|y+Q`txQuH`e$no%I z-8UZkYER5oup7Ebg;_L10aAKbq`IzneM7i2R#B=}&WL$-d+)zrHb4K@ zZ~gd_<0nA=yAQMXNN)P>2Ot0DM_>E4%zg2_zkKwIKfV9Sm%jhO=idKm^Pg|-Km6OT Pf6o8l<3If4k3ah#`Z?Zj delta 371 zcmV-(0gV2^5upQ+C0mHcezkQZHn5c~MO_dTKUyLq<<>QABVxIZ{G;Y&S4XL4m>b7de{IwE3FAZA-3A__QeLq;?(Yk5I3e@IheR7O!SK?*G`Eg)icOe=45 zOmTKoOII;OYh!tFYfWKMQDi0YL0I+rWS zdB|cY`-7xS(RR)Cd4$>~WO@P7+CWH^TN_DZX8 R9A2E22_Zy{pV-qhb}x)hl( z=*8PleV@IEqa8_N>{E5A^dx;6`;pEG*YX0k#aosFBi`zOALxBDnr+z6Aq%VB{g5~_ zv}U4m-f@z$I5u(4gz)B2rdQxhVOZB_bhv)fYiHvDY`;$P)VmqXPbYUh3MqWi+Y(O0 zP-V}vm~ORa0dlp5nlfgpJ59U|iz%ciW>&;RvLS|*(P!?AF3b|Q6Ucgwi5CVe$A*`$ zxAdaCPSZ++T)8J|@=P62_{e+gtr`d77*LB-{ImqJ^4+EDytC!3j}AWoT}f>>6y` z;gVNq>@~DQj7u+?A1r>Nwo>2$?szeb*h$fJF%@r8JxC7E1Dk==s-xy{BUP0*_DPDQ z#~?JXE820?@m7ku#YAN=RLZU=xSn=$g0_Z{okkj(D2`&`LVB=a$_1MGuw6Jgp1lwj zRouBJF~_i{5ao2US%7iFA}y7s^&U&{?n+FEuku5|h6BxHy&BnM7 z(vWu%w~yEMDqGIg2Wm7z8|5ox56h>~CWA;bP302K0p1d|9w`_$>^ZF6ot*AAUiT}e z?O<2J7cA^ffdRX;-$BYlJ!)7>RA^LRlg9&IpUoQ3qIdQ)q&PB1r(A=z(%mD<)2KJD zhd^}TXkfNUu9MP*{7h4a!)_r;bLlx;vq=}d*=afeqkg2+KAA|WB_(8NaXX-dlz8@u z*#y|yoLa1hd9HiSE zZpV0n97cXlf`)Yfl`6FyAhh}SFVfJy`t$;>j=f357hN&pXfRfE=0h(P0e@v zGY!#Qe_-jncj2KU2cKR*O$So(NEWB&*N2TOzz(~v#@4PMs(62(CNfqcRkuR@h@>mj zh^_#G$)5DXi4jnIm++$2m1lZ)j?fD;vz^i9jdrV1>$($5-k&2bEV{5LIK?Sw3~E(| za!pJuws28xhQ?jJ!KLCPnB5ErO)l?RFHup&X`ZlTu`(c4-cRRtqiX7g+(PKEC3zoH zxisEpHwo!5(ty|Kqd)!<)TMX-jJ6;#0}7BZ)d1?wUCX&r%9(QlSH@#lxh=h!W;r;>(6v z%BVNBLz3gAucruU6i5QIKHec$;pWPTe@E%C^Y6eP#8!Y1LMHb5BhT6`ghMW|l${tG zuiE$3ACuZ`N{lDXkw9j+i_qjZv9xVOge|tP7bMse!1rt+Fpio=-VPLy7Y`eS1>y~4 z6pdb%+1Xbkp>qhiNh2C1=IMbc{pvCI^mW=HI;DH#N#Ks-jGCjGu;v+DgM1k&o#8jl z^q6Z@`sAIs0jX?ByMe+kiL--nDNhJ~TJIK7jJrs42v*wkCX(XNak(NIbg>TqPkW2{ z=8Lq8{XTwT-_)O$xqNz)`OaH42_Z>9Ad7DRMwjdMK%T~;>jP;98^zaNi;K(F5YyV6 zt^MJ~?%IQHS=Hfi%J{@NQb-TcLbmP3;lw^~MSgCN!?U~>FPw_{NbH%6e{!gKfm|;^|#cofAqo2@BbqI*MHK_ z{p{nPeEVzg_?fYL|Fb`S@TDK`zWd3)fA#VQZyV|_|ND>kK7IF%FW~DB`47FXeD%v8 j{pN4^JO8Z3kAL^_L->0?{p(-;vvoRepwroJMBt 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 ssh-rsa KsR+0w -oYMWY/ly1R4Egug3+1DzSOu7VIew0nV1Gcql+eukop6iP0+WO+3ce8DLlFB71XRC -851Qo0ShninlATkRBJJVZ5kAMQxUXFatPcNkAiOvvaeeaF40tqSTnC5ThFNgoNXm -RlLsD+xjO93Kh1g26/LgzS1Oq66ZmrFuMNX9pWE7tm+u7ZfBidkhk3Nrb8sARz3s -ezD/GSxUtYR/RwRQLrwNxdiZLkppVVOBImVaq1Y3QXW+odZkcORe6hMw12OwGyS/ -O4SH1nRwVVC2rD8bRFIIEndRT+BLFvCm5mu4wsMbKmNlqV6A8vocwJV8fX9TPukw -lRr0UWLdD/mQiG7OrHfDEZhLwbJGgsht8LLhZ5DIXJKO185P81qktmOrvPfDVlKB -06rcwVW8/Bzzv4wWAQ2P/CTfRFaIR7T+keQQ0CFMFfOu4gtfp3ER21S7Q65Lm1dy -uhL24pHcnWmQ2olO8+pePocRZ+Re4qjELox/i5TFtggnXsUsp+QjcXuiUzIG/3+3 -nZv1WFoBjGrQo4IFn4appVX6bYWStySCysYHsCsz5RCFw/aFF237PcTqrqp8Kksd -0iw5tYcKLSYzYNTKAhSDFaUbftxIOPHWbwzsRJkC1Pia7Vybq6wKkD23cItJEdm/ -O68spPKwf4Fj5g2oqFiUm+O89MW3FTMQzALZjuxU9Kw --> ssh-rsa kEvMzA -J6sVoubuQvf6aXPChsztpRJJwfW/McqI6ugBstK82lwusEB1bclnf3jhd1UZEZK7 -4fiYrVZlkAoBnergAAPU1VxMTLpdY1cKYnwApRLAT6tEpI+aGGDXT3RaZHXZUycf -hK7C21wRE5im4W1JNQLNkuHRKiM9lIZXHnid/n4VZc2ALBp5DIDDroKzgP8+Ehle -gw/FDF4zKyMm5M9wjTWdJHft4RZbG9P14bd1EfeYcHgqGSHVG1JHemx8K+Z+KfWG -04iJCYvlIPwXLL86UHAAGgK0731HzBThuab7IYQEP0s2rO5Tqp+XG7xgmxX+ETa4 -o1hym8dTn+0cvKDjElSzT6DDhyXOOmKv1QkiYd9BwpkeCSNB8hPizG2056xbZjaP -ePY6aTRHzHPPDcUrjjjipSTaguh7dQDeGjIv56IwGRBFiQSkwKafs6FVl2e6FLgQ -9wIaTwjOzc7HS9kdJwxZiCMRYjqFckQCyC42/ZVqIOa5v212Ofc4XZXRZ+i9PiLQ -XTO0ynrEA8YnEaETDOc0edLWXU7nQW4SNdbVFJj08syl0u7+yjlPrLxXcPqauQhC -8/6Zr3bRbhWTBVadi9RffbslC9w4Ul+VZk8GE4Wk5KYjlyxgTqwh1wq7tTPzcn3k -8lTpxNzDOEVnPflemiWguOYvI6qpVIccTJCo4kSJtfA --> ssh-rsa 04pTJQ -OfdCKlw3DBAo8ARy3VqqEwVrzltGNrZG+8oUE+/YpTEGj4RaL9o+1Hq45LvSTAub -k3D5wa0J1tHBJGLTapbkKMSn5HCN4dqoF5KSGYFQgglaEiJOg8SOmprc033+HJ7b -j7GgsZQgbgqQ3LfWs66S7MT6eOYf/AOX8If8tiNzaeL+JRYeklhYq+mnGCJ1MGRC -CU+2o1gMl5KmgSey9ieyWH0plGiyoaHn9dvtv1XJZ0EZNkLy2PkOBz7AClun1rXT -6E21LyhtlFwhoRDndChaVE8i/PaLW/rdO8SVyatLE+gz/+Fcncua6dDpPxVXcP4i -L595blQqXiu5uK8f4i5/BmfV1iXfNQug81HUqiPMTAT2mvzUVvLFZt1ppyPYAtJ6 -ffvDWN5m/5LbRKDVz0T/7knzMvDEMfTusGf9IVauOBfCXl6H/0pQ2Gk6cT2GktiF -HTfPcVrWo65BPAKnbHDusoG2J/jlQgUSCjk2ffFvqfNvRaVZa6M1Rn3asW6IYuVP -GH6obe6658SFLcPU9AwasBFdxL5ryXtu6YNZhFQhHLXCOtxOgYbxyClCNhrpJADy -Awd063MXZR3jon7oqbq7E6DEt/2QirAWhjLaybc+xq9ItaR6f4p2MGmtStMhTToU -rGo0Jl7TjCCJqx0sX9abgDn4ftkbF5y82Jq1B9Hqq+GOo99CcWCPsS94jNXUBEB5 -XudGSI1mX/TNFKs5egP0xQbmi2oLwu7RAoIxCeCQnsGja9FvfV7rmlLFMXeHS2zc -wBbxX8Xm5gLroHHeOW/ZM2YbUn9fzAwvWrCnkHY9OvjT6IGSaj0828lRdBIA73ES -ovhkg5opHuoNgYGbROOgSo4P6Ghrc2vQMtUuQ57m1+2D7/CXtwAif/kqjsnXeoee -2rawcUFHBoGURfc1i2iduSEjojzh53sjNQNoBFJWHx6+eZqUXJlWzcxHfBqLswX3 -O2rSov2H2CRGFj1IaMtYv3qRpuPHKzGaJukTCJ+89XbKJV8IAYs0czdRC/4UDOvi -Wp1js0cu4i0gpBmfpMLaiXWTazS3jjaMBUHyVFZFyAP2OBOD3Yu4O1iXjOVbO+EK -U29KRUw4qmdCS8SxpzbHZ06cK9XZVGbWyXO6yCrQnrQySkpJLOzJoGWwZ1zVnRn/ -GMUSq6JByZG9EvXmxLq3ZkzDQ81eonTGGfT1vcofFLbAkEZ+HB9YwU7esMj/n3Ci -FUxYL/4HMHjozo1UT7VUjD39x/i8N7y43bH9xeKqO9nWrNYpKDVup71TAuRgI9Z+ -2/Fh7v7qo7uY8QhiXs6EYQuDOkW27mFOns9tDepthZryoIKEv6Bm6s4vHDkB2tOr -A8YWLM1WCWrZ4z2KabyRxA --> ssh-ed25519 Nl/5yA pX1AdGcf7e05EVzh4M/wnPQ0fDBmk6xJMIJMH6BFVxA -r2edvOqQXAQcMufA3Ji5+1+f6HxCrGUcZB+awt8oqX4 --> ssh-rsa mMfKqA -jsUahDTFa+0o4I9GzTvr4CCu0alBE+MfLLerk394CMQBXt6UWJJhEFGna+NmyUD/ -XzqU8ZZfhmuZvtfaAtFgula8S8MMD4k8t1d08eNDXwDcEJG4VvcZBoltlsmZIbkL -d+7LOZsv1j7Whgujft/kQiMQiiRK4Y9WqKsZFKWY/BCkLtdRtofaEk10wFSC9gT+ -aLfirR4r0JPJQaNrKArH2qAjfZ23MaXu7TAc67hBjaTUilWXjrJ8urD+9iOG8/UG -k5nh0DyZ0gG/nQXBfcP0sHhTAG2udc1qMn34Ewp48CusU2P+8caHMGr6jW/eafta -TpasBveVsoAYHFehFdrlSWn4ayKxuZoWaQygdJnXIfJ/biCfC11l8fW0ZEMIFJeM -2hMDWZwu3aRdH6RJNuAofJuBelC2LRbgqdKdT/fTkd8nCUq+vAKiShSYkD7+n99L -XymQvnWFpNmWWOTBDzTaKJd3M3/lYxC550a08eytJX463v61HlBx4VsgZAzsxpxo -bsEjVdchbojyUnd89nuUSWR7m03u8ZvqDg+v6qWKDNE00jrAq6l6jZQ3ooWIRQNc -TXX7qCyus5cuPn4Hwxr8rrqMB7si1Zoan3rvL5GrQv22TgRnduvzfPkbxf+G9hNP -xBNoKsVQ4DHG6chwPVlclZFTBVW4ENTSSzGKYZH+2h9JAz1t/EqQQ/K8fn4gh4W0 -VkclZkzb+/wkg3cpLHQh9Xmu4QAgqE7BEdq7nk2xRiWv/7mNvRVDcctSW7ZhTvYJ -Xc4AO6fXsJ3bfg8WvRAeei3otwqUaJPb8i5pFsoLDS55oQD3VAK5X4A5n+9akIdy -RlXPpQvlQM40xB+i3/XLWchbRJDJEfbclGzmWTsau0iE1/hgi4VB3xXLDAaqyBqU -YXgX4ej85v3o4qYGOXHu2FOmKd+hvHqNRK9m//OfKvmLhSyW6N0xPHz0hR3X5xzz -DkP2w9lGz7fS3c7K8jaD5UziEJ1tcabUVHRB+ZYecYS/l0ZzRFO/3xikouN9lUXV -FkR3YPUR7ozXq19lx613YL/qWbaXe7jLLEy3Bm+93RusqYDSJRRHBt1Z6qDjehDj -WhlU5o8biu7Rc679yFN+NjtuPoEy6PkHjWVY6wUGEhOLc7sS8iiopxvdNJMzW5P5 -iOJYR6ly6+wPU44nkLzSzUNQI+RjQYu13mSZDmmWgaqWGrCfADmdrn+iTcvPDxIJ -SV3MJhvx7JstIs2eBIozag30HkTtiheawvQzY4QoSMCdrX82ALjmAZe59OX8OJPW -yKyogoHF0pw4vLmRIyvtqnA99MwtHTZ4nitfRGy180JcO7vCgTFg/q5mEGhiEN7o -ibUHmQzG5gzS5Bp6l2szJQ --> ssh-rsa hjSvjw -AOB0+mcvuPEhMHTi8pEP5BqDJ4DWNsp/V5DRwDvxQnb35Lv3XgeCGFvOUGQVRzE1 -F9ZTUxGVp7N1bvgoQeb+xgHh+PJmrgH8Cycqsno4weBY1DYA+F1CElRu0QusnKRl -JnsKsgfdiWqQLGWgxLZJ7ZcrLTqUmI3kC+Zw35HbV7vH/sCJfMQIv6oGFlv9DfyN -tgxBX3S77trfPrSkiB7VP2g1UZ2a0NwT8/DX2BguFjhQr1qn6ZsuzX9bsLr2m+ki -IEEjFbswM7BPI+1WUqNxNmHdrA84bDSciRMly4gIThvVQ1V1K6pkOE8nZOYuItHc -YhJVKl1B5j91QSaPpjJ2TV+5PFmNRIo4P681EyfHQrFjyX6GOCDWQw/crFlETmUR -xkqjlhmkHVXCTCOyJ6d39EVM8V3KiGj/v5XBG5qyDNPR/HxeWJOH5yKvWP3yvKZE -RG0VWoILc9UQiffV5Vrw89i8cyonE9dG9YA5PerVywgI3L/PRsY+o0NfjCGZZAGX -DiPOVes2ON+SH15hKaWsiyK+dADdEJ0S4fiA3jzlhRIuN3Etx4Y+5niUf+kAPVJI -gO7CUKGz4FTEJKYtZuKUF7dGyAkq5xV5CV0qgy6svIblMKl4CWWOltXonwa3Pw3E -8GutbIBadLan3C1iEFeJghlD6b/gsIVCeWomeM0VJh8P7qkLajk6efcLKxe7jpr0 -sLqEyUrY57P1biAKCeGcUw0ZWUr1JDdAybYyPZLMccCZku7kgi+zUphqBk5nuVt8 -wgf2FsSQdA75xItuyAv9ZQ606j5+J/fFiICAEjuFnHrb2e1yVoElncVIwIYylS82 -3S4Wbnigkg3j+TPyUTVO1iIXSYO4b6Kjii12NtpIjSyUCTBDizxBazz4mKODKvJ2 -YwfvXGoW9IPEcXVtmIdatRYJWc7qwYTb7NKgG706RDLOoEXNGTo05NHYtU2d70L2 -pzQDTGfRJV6yKmjYeLyYqkY6QleMN3IB44rncfBE3vSMMciY5WE5iUVIpnQtofd2 -U69J2lwfJt7nTJSqX/CkIhEN0UUv60cxEyLcilXlYOmCqj4wqFv01sWTtYRggDRo -cVG27EXqSzludEu6T0hORl0dW2VZCGigT+gtyGGweqv92fwLWZC7qhvPtLABzrbF -CzGfb9qOgVRNpsH9ZLmNjxEKB4utpZ9PGJ3KHSG26SflZDUNi89Jv9np4rftqOr0 -VE0J9rT5rA774roXTp1poaJknyIdCxZDgIAkUcdpJPQ324JdCl/4WhhJ8WWxZDwM -QjNmi1EKFJum6i7pqeI0vAQLvYV0pv6BDPRtRX129sUDaafmhB2GkHexMZuGTrgE -qr1eNvdagTVPdXYgkoA12Q --> ssh-rsa hjSvjw -nY1aqIZ7Jy6nma08oqJTdEkqxRbAKURbHnCq4Uk0Cxhegj81X+uP7izp3wpi8Tri -o/SPq28qiBsZSU0H//D9XQ+f+wjchNen9McR6gUM/D3/zu8TXVfddIzH0t+tGe+H -SPhlzZkjiCzft/Ur3c6EgZeW3b2Hl46zh+fVrXMI6W+5wl3/rsklMWhTYQu3fO0p -Dm0Zwi7TVJ0qOPbrXKQaJvkU/aUeejxEv43I9gZZ9nVD5Uj6WXkVD7fuYvlfeMEP -RbpH+ywqp0MNY4nhFUdC/PQnHB9hyfTqifnvb5nuGCJHtJIqiqQuTzsk4k1S1njn -w2YtFrEuE7j4SCFHfELtAQsFmRUqKaWKw3Dhz4t2LRwgW+16IDsn7LJkPbnL8m6u -Yoh5tW4YMUOvgN3u07mr9PfMqVVzfMZjyuplB1Y0bKMn19viARUtAIIlGidx7cko -zcLCVpIk/rqU4JfECL1d2WgFY7kmPLgMYGZ6f0fyPCnzZS/8RBjAo/FPCqBx60XV -rkkNlgtqcEUFHPa6eWJD29FZkuiJxvH2ZwF9uMRksPclDYhPlCQEHsC8T+CM6wQX -qH9hjFcE1WhSoiQWjNmYjFNYGUMM3nRkK9Qyiw2BqtrPI5ludLJFkPH0KTbMZtFE -H+V24qx1IgS8c4qiVTZEcKlVK69svKCiJ40Udy2PJTHt4bjAw/tANiZjZcZnA4XX -o324/YHv5RAOmV8hKwRYW6hAHlUbpVIKQJMl8tmZVM3sk95qyW8C+7OSJUvz3KYt -8ZF3GjmSLA8g+qyrOEKioNjJLBd1Pz3Jgfn0BLP+kwRxHOgEfloSiDDTCxlXJChf -kghtWEz0QFgKSIJFR6Qrnobgjhwos15+dE9T5j9blnfp3In+A33ajwGDrHeiv+FO -vaSvXNOpoJ5qBsTbHulRlkFMJ8JF1stgi6q64Y2gJVMqtSvMpsrVmvlhQjWhgwSW -1ncgO9Hv6jmYf3CqhBamEu6s0zaqDhb8gEuN12NTcg0zD5Vl9Pbx1a+FzokQ+Sws -3PGmOa1F9NAm5tIPmQAU+8izRPkkUZTCvVbuYwscnAhH1CGjH5vzJ6W3GiEpdOxi -DYENYuA06JtKAOSRUci233jB8Ak/bWbnd2yjlUZdma/QxqKhbwK6zjXdWazWAyOG -e+l7i5jwjvyGExWbHydhhChS4rnKODwXLKelHCGmLPlgFMhpDjcgAidVv51bqymU -WbUhCDRoxeYvlmRjpv14Lt/nThjEYu7gEqFjBLtFyXP5cbdtf2hAJawRJljNcl77 -zHZPKc/lcMBBg0aCiba3ENqU/H/N2Nvdiu0HklNKqWQ8bF/Fc1eRgreFBZnOX5GP -yYHP9gwSQITeDoq1Eikjvw +-> ssh-ed25519 mOmPfg X+7CjshhqaThstA+gFDN23HSrhaJPG/GSkeZSXRXqTg +btgSgDtB5tPaJMMfvZqv/CKqdAcFXBeHEm2ZuC8Fzvs +-> ssh-ed25519 YJiRbw EW9X5R7XGczSOoC5fc0gsHgHcK3nTT/KQzjYurw9tws +MB2AyaJFx44mdbsK2sBAYjILuKZxXpd25Ci57q+WyiE +-> ssh-ed25519 Nl/5yA lsY4ttlGcJ3FyPDh/Eg2P/xNsynBLLLqKIbzyVUVoQ0 +iEAOfYQyMaglmF+QeMatBLIgG5N2MUNDhM5LP/jNvuk -> ssh-rsa FS7DnA -ZhP6jj0xgG4gIWTvFElmdARkeZgkwVuvvsFd4VcYsqJbbZL5AM9HL5+xU/3SJ2tP -XVdZc8ItW1lhfxYlolxiy/aHaN/HTgk1dE8KaVaWe38r5kYaq/TEFDh1PWM0UC+U -u2zmdK1ZsU+Mbv2l9NbM5JSyyLCneKle6+uTGHGa67/ZT6U6IaeL0JeEGufRSw4X -wdyFiH1dcc4sfHzNXR+LMDxIv8u7PvdnSeYFvIkyZtG5MgEQ/G1r+4/TahZWyeBw -OyiK/HKsaaITSBhEy8dk6xpQ6OZgTZI5EY1lkI0HygoH1uCl1XEOa84dXEzNKlja -Cn89NlWVLsjuGOKnoM9ywqdlSySYCIHBtEbiyVJkF5tHptdDVYIvpS84rGUpcdXR -8nn3EQgR6wcQJgKI5HsN7oWJqvZy288EMSJZped37bwMp7z5OjNE4Q46XbiLXu43 -KNWCNqroWH3OQAd3sGFUwAQ0hEzMudGfj0lKIt9om9jdy0naLnUQNUaA6aODzc6p -ydp3bU6hVRhRGEzQCe3/JDXpxfaRXZZErDfRfXiqNnIBDPrBiIlU21cQgud0H/p0 -FqNFM//s65IxgXQuuFUptv5YzsVr9NXesSpCb39RKkd2LenJVIuvjV1l5W/ZMnCX -IpmBsFklqOoKRenaz3dKpl0Wa6T2fBhddSI+USA60RYpFwIrsUTn4tbgIn9ETB5i -RXa7G7SePMnKwUhi8sxYzNGfV7BWSU+09z8otAhOBxIzzvAryZy7Z2HOdddyTsWR -O4L+ejbeGg/BHafSms2DitdkDZSUaxeVRUCeGTa1cWIfc/6AbVpMU124d/cBkYwO -E6PgwzoaMnBu5OK4PznUZqc/i6o7jzSaNouEqJPXoTPihSD3IW2r2mzdeQjx66vm -C22lPM9NTf2PXb+BoHMmsfHUcLMK+mXrSKZOP8JHkN9jBAvxaUTJc0dFgtjYxamH -g8g+12KjdzzZQkzGhTrVLC2bDW2L3Y08tpbeSsA4HzCEWgutw3xzmVp/MrI4M064 -NsPI5Z0j43UTlfvuWSXlFLOmdu0JS0vInUJSO5qBcEB7N/I/pkbWOa9gWFe3LsyQ -2Yu+ca2pOvPuFpjbmwBwdYCOBowEWBurN4idqYdE5k6W69iB8tM+Mi18pvVSlpGI -MCaxoXe8uXBHWEmd2VV2+aHCYeGVzFH1wL1GKLF+NGxaHp0DvlNJpmhKszc6wGk1 -0EJYTtOVjcDiZLBkL2FLn0P6KP5iyTTkMl4NSJXAyOrhhEw9bhrxRjTnjBeFj6fd -648bJen2Mp7Eavxm3/3oq1DchMWrnFX8o/sMoIVwbd+rbZJdbJBFaZXOaouAUbOG -E1dt8P+JLCUR1xn4daEaAw --> ssh-rsa mMfKqA -nW+jbGdLzUbEXIjC9GB+XYHfydrdQ2dN8Cbso2adbxRt2/zFc9YtfnpJTUCjQrD5 -fFNYoc6yIZ6DMu/ZZXG2AlHWkNwf2HU1lJH3l3qgAakUIynicx0i7WB4zop+YJWj -/halr1AuSnyMmPdDhkqBkrzJ7akcEr7c5kcIOm1IN5hMd6IH33RmrbEj8y/DW2ll -gvFLzyalP5bzp8BDro84K3U82rr7do2gUNLHkSUhiDitHQbR7vwKLEUScP/n1faD -oV5EXAiIeHTONSRnc5OGUXDDn6Yg6ch2T/2o5z27n67wElktWtcarlQTIw4X1FBw -6gy8Zld/pSSsVx7scAp4OlBEoPnI3nR9APFlFaVxdbBHFD2uUQhzWNUzdqwVFd+W -GKQOTbHkAYwRLJ7n3Ch7odTwow9QIXyZQKwlaIWdCAJn3ywqzzrNGaZTS34I+HXN -xQa5uzTRJx1HGvVcAVKWU7Gzt64zDZsLXsBe3ZtWZdA2Mu7So4LhX7DSFfaA2Otm -FvIEV+kczCP71D6hcoJM50dJaszgSgQ+Mq8TtVaI8nyRogbbNC0PI7ZFjz5udiQa -ctR7kC1UxE+aAqs8AUL5Hi9+/66Ge1Hx7vVq4ZbQryMsFz3cGz+OzE/TSQDLZvOV -cqhvf9dKoHsvVuEqv36/mpinPRiV5h4E4RuBeMfvo/vn66+HCggBxRR6g0JLHA6X -9FSZRtr1fBn97WQf3eZZiNUZ8i46KskpBzvHMiLcrWndf/or7b8i6ckLIY1Aai4p -qUWdjMWjoqm2sqs21LTlXIQgNRCIRhVM+v683vFft5EWBFW7JoZINTp3i2MYTFt1 -nnrEJdDsEskLqoLfokRFhPpt+vyUL6Vw2b/gP43q0mr8K391hbNmNJq7pA3zWWa4 -tGe4c+z7aPHFctZvbhlBIHY/9jLOhk2wKENfnFFUyC1P4P2GGG6IJdkcuMfi9C2D -piBtLbmdwsfmduYzyqyIYbT03T76APa0DvAoAtEUSoLSk8RA19xDid23qnWOpBle -U/VBw9X6vdkmS25Qcs/hL60w+HTY8l50XxKfPDec9TlwvHmLASQToxL4bCsovyGx -SFL7bIxp//ejJoEU9ch0WRyWvVGrD2gOMw6mcsG4ZcsZctLN1tc6ai/NSNfshnzJ -fZDJBxTTWx4WtzS4fw04zC4k9GhBQhYZQ95ye/ukJvJda1shdAedJLi7Q0htsNhC -cPFicdS9N4+i32h4DLdCm1XqRZt8KJIp4SlcEU9sx2BpRVMzoOxWEbD8Lj3DMkf2 -R4XO9Z/sHOBhPkCYAyGPYcpH+FFxJ8koUkNZQLi3j2Xp23q5Itpaeu+rQSpci41K -Nbub6jBctsvKFhpes+W/vw --> ssh-rsa PYwg6A -QDLaClasS6unrhtp8kucWtwY0c9cHs5w4QBcRUmVcgogjWTS2QYysbC3zDu1bUCV -T86+ik4EHVb29lhx07SD1lASvNdTAxRCKmukn2NyaBdnYwOtOLQQAKv1gfjJrIxG -I3X7NdUn7iGautJIbxl7+XuDuhngDouFXMfbTrOujrC2w8N8OPV5SIxHnQOzYxQj -fIX2xJD/4b77+m75JV+YxNAxc3wkzUnL4SbESMryu9epFRfOXH3DiNCJX8i3wboH -N9C7DTciaJsDoLVi58JjzSZae6DH/2h50CICW8llx90T9p8Ql+vHMeIig02oCo9X -P2whvLg1bCr0wXU9Wlf5x8JS+MylgT7fwa4MzvKg1xFpC3/ULI4Ogy/3YzRDu9v0 -5dw8uoFIUBmr1x8Q1E8Fw3/zzJMHBPgQFdRWlZtyqWk7W0JL+PzXm7Xmnn8pndZ5 -/Vq7aWdavEQX7ucZNlzKFtJ3tjaQCbDdZDqyfuMp1qLDj6iM6GSWItEVGUfzaekf -2ly5vHmy2RUirhOXSfh3zlZaG8VbgI2mIhKIry3YVoTmhapJBlUaqF62PMwCbvJu -KEYybRFCRocyMOFwAnhDUItYPDE+SGhmS9wPbPzU7Ulw+HI1U2V/YibSJjv/R3/s -G+OKMYBoSEWh2PXWCTD2uKzurnPBvyfsZfpv8xqgrPDGI3VwIn/XuHB3M/zSRx5i -nQ8UuHiYw12x1k7dhPDhdeVrqhWi5KDN77oXbAk3xCXzBiW5UyDU3xRfGLUR0p+C -Zq/5kTulVMmsaDhRRnl+rRC4Bc/RiAxQr16tGFyFXm8UQXQw4+THGUzpyt6CDOKu -KjrG7BlR+HjhTQl44WlaJHtWMA223lGA17VeUByPVsUdcaTuxMQQEuIdijrZtG5F -CkOrWJT6do7sVMhGqoeKae/JtN5IYBnaLfRTRgmFpvLIhxcmRGm9kksLyBrlvoYM -YhcCjEQUvle3TebHnFu+yt8X34rHgSr0gk9+6z/Ve/vPK0GcVZmoaxwmc3DhvC42 -lUyvo3YtZbxerJ4byZE0Y8TzSYQ1uPr447h/5t3jm3xAZGnyHe/RIcxCu1+M3UCE -b4rgicmsv1XXJn3mEsbsDFJzFUUmfhGMqD7htE4ipw9AmT3NIqIZZeX/HD581snK -8aOGouLXXYevYx8ZjTNTc1yXkdKL1pobHG7lDcWFhjhos1dcZ8azGEws/tJ6sjEf -gM+1BhIUohVumsWGIWI9QqCjk0sUguGRxjomGFVBInY2cX644Knzxjl47mohg547 -0EiqQNbJAwQwr5lkp66UGlImLq8/8lzz0UuVv4ti9XpZDwDri2jgWCBwlhq9cTGj -ViFaGZlXnG0JwFubXQqSWA --> ssh-rsa 5JwzEA -vzLX81ycqnHy1m/OrS1It1G8VTHYFZv/46qy+s96cQS/nMEDrf62jgrg2tZgfjJt -O+KB3gHv8vJlz6c0Y/Jwtnty4Y0onZ/LOzYcsbLsZ5LpOh8VN4Bjo83JxqLeuRfH -5rmfrjxYaQJLsfuv8Ax9ZgRiwOz0Uf5/IkiDpcGf+YAdXBOLt10o4cIDSCahdSHj -aGOQ0MFQ+s+smpHNvgFei88R7Iq/09hxW93Kkp7NA35K9TSZp2kI5ylAgIXuHe7l -XvrG21WD6ahjHl13xgqgGcFBHyO8A4Cdc24l5YdxLzeJElK6t1OK8AvoXzohTSby -fiJKgY09e6EG/q3ZpFxTl1JVMJWvFq/yMwOnN5QKYeK4Xxv6EBMmtfX9UrDADbC4 -fnWzfkUpGb4IriX0xmB9Jl/k41wClcBiein5eXxUu1h+PGDON3VVRStrqWFyVLaf -pAtMWihD2L0bEolg2uwwgXsbUzzBMObv+C3uuAT97qlC/lZeVpLRjukIY6J1snP5 -b4kx4OwBA+VZiJwyxNIYNXfTx4xvZfrqn73OJe+kPaMBfNgF/f+zREF1uIK0Jv5Y -5JoW/4bZlyebqFWF/mNSidPlghmIIHJyF6ICLKad38/MgTZeDobXZh7EhP2lH+lU -6c3oWVf1zo0PHQpgRk+G4g/iHCi3KB7mGO7dKQNc5lcv5CmJW+qu87NKK3m2kAAn -2eG2PdDDowwVsXpED3mLXUT0rKeDdNkbBbPefAA5M5lvTMgx/wz4RXMQVvko2FF7 -vqJdvCW5l0i6FuVpQ8lSXNgSDx7jMKtyyrflXWCLII+lGEyxc90A25Mx949gtLep -F/oJGOc6XgxCHJFe9smN4+lZEmEthDlCkTvsNhP2cC+n9rl1P3lHuC8SsdBLHfVx -DXvP4kwHhJTwC82pT9+MZVrAk7iPyAKyu45Kei4L1rLoKgvZOynQOySHtR/2mCPE -b/SIaIwuFWi03UM14c4laTdi3O1241lNLYzR7Dk5m+Ds/44HJwd9J8tcZidj8Qyg -2lKI0OFCkSSVd6SvuQ2oKgd/iL5iLhPm7K1SAvQdoYhaj+9hRr7ucG7yRv8wFR5n -R0H+25idwLtMnmyRh2QjitZKYlQ/oalLgT30CbunOm1sQEdWMjmNQ3R7ZIMDNJ6C -XuBvwLgFUhFal59vWt9ovMyWSKVC174FvG9Lor1nG7ewHywxCFqPlRqhyBf2CfzH -tfXoRB5e9ghuUEMlvrsaWChy7E3rr8Gi7jyfQVlYVtzlaUQApq7Uk9NNuiaiOVZ/ -6s/RXkwCOMTTCVC2XVJf9W9g77/FG9/03spMEYy8FidWDyJfdThj54KV036aPIRt -rmsVMKqGFzFPdjoxMhouAg --> ue%$ZN-grease |3q|qBy M !Uj?5!G -AvY47mVmQdNJP2mfPMa8zLD0esey6FSuaQrW7IYGvwC+VTFmLbOWJfckfyg7kHI1 -4mQ8BXYiYT7y+4azvw4ZmjuQVzSI/+wmmyEuV/HmZw6gO/lx3BubBkoOMAVmzX0d - ---- xnCkxTE4ec8+eoxpxInpSJyHCHL+whloW2tT+S0zQwo -10"TL\RqHC#L _=:0H VXԱ](ƌ{%չO}=kAB.>* \ No newline at end of file +QkRi9WLtEknHPvJktTXdMOMkEwufHU0JStgCc11rFACJ4ZAa7qb3448jWwq5slFi +G27RoJnMFmEhYkh5Yd6ck5fg/MELTLq/RHaXKJKUwcoXdej8EGN7B3/t+boVdMDK +ab37gwrQl4ek/8wlx/zNowkESPtNuA87MIOjOj2H7ZgvpchTPFqeTmNdR0AcoNBb +Yi7K8Y5yM3UPeUrot+Ad5wvqUzrlK77NNwsybvFSjeTCulUHlTj1FtIJL6xobT0v +IM4Iy/KcwjKK3QoIyMfAt95KuIRMT5GIkfdbQU/wUWSAunX8RiRV4USlkAgg5c0k +b7kKrGkCweAxfwD4AblVXmK9kN8SAwIMhh41PRRvTbtUJNtjUkFA3gNArpsmmVPI +5tNM8JUoe9E2F9WgJHkX4ctcN+Qu3gDKJbg7zvpTNLgw0wgfjh9h54L3p8L46x9L +Ut60f5oAYb6IqZu65WwTv5souNtq1soT3n3H2Tp7NPzAmdBy6G/p++xZ1RNfSeij +dnMMxOGmBiJ14upRaC7s5JZFbu/cwnX/2qLaY0sBXlpJpOFAsKmwd9TEm0+WCaSk +m5moOT7Ivjl8alPXQuOaAZfDFZvpcgOxNviy8iB1D22xkdkXerzbsL07uzKayU0r +SCi6XJmzCtS7TKbfmDjbLnDcVPylkWaKxXw9ekKoZBJ7LPMSfBVVPD+Zap20tV+u +pnfTkLTW3o8pRjvcip1Hl9XuWvyMnIgoKL4CYc0JzLQAcieRn8tVbDXes0O1pAMh +1LWwBHYQyVFTM8qIqpbt/ndKTB9euqEMzeMJ3oMYhDIchozSSwmbsRMrKqh6gWdI +ldeYn3F9sEi5pQwDA0KikDCuT2W2oek+KlQKKquGln/nWf+5m6HTgwvA7QxgIfZi +wYuG9aYxOWwylyUDeHCUJLQ7RPJk6Cik32pVEMaviNwTOnQPBlyzFAwDlq+0crdj +dV+6vo/rRY3UyU7FCuWE8SVZFTwP4E8SfEiqYgOOhE/6jDkAo8q32eEgLMG/9hi4 +Ro6Zy6DEv5la3cHZEUz550K8PHhajScoOiNK5RcG0YgBpLO93awz/iyrUDM2KuwS +xNFcpD165x9VpD2F9yNzvIqnTc3F5rDWa7PhffOV1ECdZaUgxhX8vuNN78sW+A4L +ppuJsVgx1rQFxtavUijFbS5Oona0aOlRLQop2BaW9an+PIRghsYJb/e3vjIGshVH +T5GxobOT7C7nxxs+ovdUUNmr0bWEINicQ9eTAHFx6pGSzgodMS1qrtROoY1L3+My +KVAeLhS7S4ls3W7TDm/AnqNoZG/HUOEyBkXOOzOGgZvD7/LiohNVzW/e1rLO2ziQ +QZByHxpv5gHZCUSq+3jqrA +-> ssh-ed25519 FpzvfQ ztmplW5LE5mbFG2oxsnUQ5botTjz1427pPi47zwKTVs +l2leKVw0HKME7pfbP2P/S6YgwR+UDnLfLdyOszZ+2Tw +-> ssh-ed25519 GdLgCQ otYdayZhkpESECiKhTSuaoJufMNzdGNboK06fMDWWnM +EmdT4yHbso/SqzJsHpYIHZpTUTUM+5V57yJkftIusSY +-> >p|7o:_-grease O:zn +55ZZNnY7ZEWxwJDA +--- 6P7VSDuTwwkEO0Kc9r1COPei6CpAdumIdh9nwWtKQd8 +ː[5{MsݧGR ͋ OҬj9d;;/|"HaA $i#DvU1[(Y5j< \ No newline at end of file diff --git a/secrets/nextcloudadmin.age b/secrets/nextcloudadmin.age index b6ad3a7..2a2a5d8 100644 --- a/secrets/nextcloudadmin.age +++ b/secrets/nextcloudadmin.age @@ -1,192 +1,38 @@ age-encryption.org/v1 --> ssh-rsa KsR+0w -uEe6nhDJEfOSY/zDBYqjdSpx075qbgQSTWYNv+3t6/Nw8Ia/0LK/ZZEfO7TUFZO+ -EpckZuNUMiEyrxwlOFZGvvxZbu0lDZPRRgd1knl8mIGwyRUf5Q/BR3pOfNw/NuxL -pQErJLAezFoZtk8XW7wVXY/raZhlwMkVcjsUYWk3IgY3QdZjsrXqyMHsqv5Qifhx -l9lo7lB8KLWVwnsOthqWjelIJ4CMYpGZuixQBYTptMuEb/Lf8PMIGqpO71F0DxXh -4lXFC/d3PD1O6frRIt2OHNFk8R8F0awpMO+rJe9teUNNBcG4QZ5WLI+keFVzDyy9 -AAma8rY5OH1eP/KXuGKV9t8Ddbp/ekPErudNvIvm7gjtae4j8uLnm5iy3e/mkhFN -qktlm/IIZAhHTHqkaF+zxT5sqyqlqO0CKrDvXOGLdEeAoteQxlqT7rD/6eAl/nm4 -Uw0Vtei4uPGSo7lTyCPl8/52IZEdB5dF2K4LWtha58CMc2VVHe/yQ/jOlmqrCamj -e0MXjBIfpxsQs8xdBeA4ud7gD1vNAgt12GwwT98RRKz4nSvX6OIchvnoRCB1+oqf -OaqHddHAMX1S913LnUgfxg7adCLT4mcNvVIuIQKRC/trkirS5hvPyZvYzWmLAQn1 -LEFRXv0zg4fN+Auk6nYxN6Ofr4q/SOays0jklRLfeYo --> ssh-rsa kEvMzA -M0KEYcUKnV12kLX1PSy+eSWHt1aWE9B0P0FGFsKguqgNvtVcbNQJ2mVKDBgDDBQJ -TFU4HgK7MeAv3wm7kPFzFm4330wYjQQi+9kofA/Da9BdhGsnhcYdQ1uFPW5ahIgm -xbw5Dmx82Ja/04zZgLAxJ6FNwP+z6n0OXqZ78hAQeGa34HQ3urNc50UxTtGFpPDp -w11jSGtoeS0MGxYursGkmcyotcZL8mrnppYqUYJEoRsjeg269mF5wpQYyfPlufxH -9bGdI0AisRpZ7bQNQJdQeK3obp3rpjEHOubJ5XrK3xFgUULqtcQOm516UnGUb4G1 -+t+zk3gTDkYUm5C0tFyhAeVQajtr/3PL3dQlRza7aNz7bgSmxAkqWHc5SiW9bOw1 -sqghGCd0loZmzCvNUxZ5dB62/vvXW99EG8uFQjC7p3LHKb/XArYDH9Qip8FqQHiC -s9yBgxl9rmyKRba/9iilNwBtwDYxUF+tzILebw3eSXuEwJVl95793Mw3Ccz4CUE9 -FdpIJoXls5lAUGyoQuPQnzP/x5iKFW06yb2ibpE+wF6lVWKW/aA5mw9jO3juRllI -3rihlWKSf43egZGN/EGscDPBDIqCeVPbyiHb8p9WgtKyCUdbYpavp/GANP6f4rb+ -9uOge0tLuaMArg2WAwE4lfnUNlQHY/CSZ18NbCIaXj8 --> ssh-rsa hjSvjw -IR4b7UJ4OqdagwLN5lReaUj4Z8+iRNGc4Amwj00SBedn06st0K8EOfwbFG4OeNgZ -PfvpDUy4vnpzUkhmCHnqdUqg+gD7h+8Flv41rHQN+LoBEcaHO86eFK92oVzmcYuF -sQi3Q85rHydXjhebJ+1oVwc/LPIo9EM1k2+Jv5EJ6uuZmL7iNKDYc1H7ECX+cwxp -TlcZBcoeQYf+dmWKfxOocKjviOA0036NUJUBAOLCIjYA5ZueCjiR2f2WUe1IC4fe -rSazUqKshR/ZVtrG/AabkL/kN96KxIEMe0sdX/NXjNpY+noS0/CLCR7NPklUpC5B -LjbeSiBmcmygNvDx8HWjROSmmLyiHiI52QziyqFyLo6wW9bOMXRFv5L4foPuQ/3G -GQb9xDhkAQu21ukRD2eVOfaBmxYHIUyz1pIXFqQsEyrFheBYJdsoP6emtiOYXlmF -ToJ0Ie7ChPJoBHUJSxBLeHSQ4/KSNR1Mkk7KBrzn5bD/v6ALvTsSrxbejX6f1tWR -p4teVvgLCLev/I0INZLc0hR35g/Jdz6Qg4hcEBqINFbDQR7NggOfdSRRloyYmbZi -kvMfnGcxzOciCh42m68yo8nm+yOkOvb1OxKM/fVXzpXZCknir0tTMZd0lIonAvMg -yd4Y6QsqpAb7yy51abXQe7grOEH2F8kMdDH5bFKLASrcX3kKyblscwkftaza4H/f -yFRCimnHjvVoQZPG9w6heOkgDJCGIH3Ai2NnRnAMV+jOt2CGG6MWO3kwqmP+vpOj -WrYUhgN1HhQkCAq59VdJkEXa95sfRHwpa/7ES4YwYmk8YZE2SvwKA22eLJB4XQ9f -3LcO13O0BNuIpMJq+JOrmabCp3qEeY48ZsCZdJTvHUvV9RvR4GafXIN1KNeGDbiV -knNILYzRxfWA71nNHtAXv2KjOZsEqtxuTl8aQjnxVztTLe6g6woNtHy5fgJLVoAH -5rr3Z6XjcWe/4WJmQf2kjpfrbqu4ex4b/+W/zg+GKmKNhLmyGEeUgGPwF7TeyfzK -Dx6zzx8ijnVBFRlq2fvFqWYlspmOagKvN7WvPK0h3LESVw+mOVLqypaZ5NQI5A0X -vAnmJq/2wXrabETLHYPDAJE6Zr+PWaJr3fVoW6tr74/kxMXtuV+EsHmTDrqmZUQp -Yj/pQLeaT9VtSk5MqwBq709cBtNipsXFE5DJFUuB1H2OHKzVP8TkgiqKWkEuX1V+ -llUi6vq2ZHl4VXImx9/bi6GZ3aKkBvz/Kei6aFCflujrh4xs5TJdmbMnw735fQgC -Emo8wwMCr4DQab/6C3pAgRKMQ33x01jXIwpnQ9Ni9ECVnpWgUQl/Ipm5vc/QdW9d -nbQNg9BQwBX5JSPKIw82Jw --> ssh-rsa mMfKqA -eNHzuaUhRLdB654cTcLuFvWH2wFrihTASYUJbIEBfi/VpqGeozYBbg7eG2FBjKgI -WGWodtYdK9kakyX28QAvil6XAj1FM63yJVXApfaljKPc58yfaA1QLx1U1D5PmoWk -08H2Q5OmwFIfHweLbrRn5mWVNYvpD+dblS/dvsPSi3MIVfa8rRS1Ex5wVmUENsAW -v0GQkRXheRP4OTF7brC7W629eGpfkVxR2Pepv94zzBQgt7ODb7oCOtgesEyDElCH -64XXCnZrLc83IeCTqUig+JU3uHOkNYmKhBCd/Qd7ODILEVD9WKBZbi7vDyqsv6uc -/USCBU8T01rT4hYcgQbz6olVA1Vf41edinnzD3f3nVZafo08LEBQDmlToEjdJAIW -+lcnXIDMZg0t6NUr+ePQ3so9wom8Se8azITnkv/df213KzX3T3ujEv+oE882PmL/ -bapT+TleeIj7e1YAsWNGzbG2VPpWHGfwra97LpGplcsusEtj2URxuMiiP3X8tAxv -PC4JXfxuK+icDf1pdtHTb1TUxbgy/cuASGJzjgjmPsv00RPGWt6y2zMuLCGKa4va -0UN5UXwXNtl6IzK3TnPkvWbwydon8cUxoi9OBHOljt4pvZuwl3fCAQkTxSlHlVS/ -6GZSmb/J2HMFh7iELJK0jmulRWwAlS72xc+BuRSv2Z2I1vLSxBWoZL3Znw4Wxy8c -+zJkTKN5VjfJ4fhmDUjRZlFgvyu3YIFV1oD0DYZWSM7QKxQWDJMSBzP3zodalBp/ -CI2b/yjDpEhmXvo/wWRazz8u5eBBGAi3H43H7wUXU2f7WST50S76AA9c09jg3XK3 -iG57BvlMnJGVceCQQIpdOGxZ0bNlGLJW9uBisMTmhQ2K4BiTU5bmoTe9jeKwtUv2 -QcGJCuTFjM6sxQSaIWTBjkXUmNBUlMQNmpTB+t68lNBGAhmMHMpzoz/NDF50NqIH -fTHMAU8eC/8euMRGR8dums4FSq97AFMlrybcnnPLPktM/tDEIsfvSkix/wtpDfUw -Tnpsj14j0tUl0yq557dmC87NZNR9q4iH4NhtUdMKUBV5LpeW7zZxuGQd70p3XTOx -6Z11+Sz2Jp/xsALytPds0SAWEss2c5vTX4sp79qk0ACbBOiGG0r3YN0BqNE/ajPj -W+nKdTc+3ncZhOt+tcipGRtIaM3+5GHs5tE7BN75NwKygYXywvQZgXhN29Lhtr4T -OUDaakNt4uSiCuA7rAwVt9Z+RppBRalU03YoAJgAbvThVI4kveJURDLEOLneivOv -gVaIpQphCmHZgYauo3hgTTxYohqvqafP3FWfHWk/z369e3WySvtNC+KCue5qMFOF -Egmx2Mu5c2Heui/55KqSHQ --> ssh-rsa hjSvjw -R1dwwXod6s4y+gIe0pmHb7d+f4zTRZVUyvZZqiMp6f7udSWwwpTACW0+ygt8CAHh -9F7Xmlz6o1eXVvpgbFZI1s85aK9lgeljOk+tqKHk6D/0l4u0r3rex3cTTXgkslL9 -57AvNoXOSUdLgka7k3AlaNiPW9sppyeTydRd9ROQAcOdd4o9rc/q8XlrK2FdyJnX -rxhBEmdMXkkDrlA7gKHHBC2JK4vq+zSYPFnqJgqYmKm5m7VaxJSE18GoWEBVv/jr -s2xY0RPr/y8QTUo66vFVZLJ8dcMG3nv4wj7cbM1wBV3gepdo6ZXN1RwFyXxB2piG -0S8PubnoeVUr7PRMtUraEsv6yEyxcsX0QnFPUiHsWNVBbr5Cj1lGCQTVseecORrO -tAikxVPMrmTWWBWp2ddSjgLicz32ry7bQcshFrNU+GoGXofr6eVGu7OnMj6aKmRe -ie8pfLodJBLPtCB8g+WXhSQrOsKf9ACro6cMcfo4dFhi07V/zbOhlvwUk+K/cOI7 -DqFtYwvItsKK/uahJd+gjBEORGjS3jri7PG9LabVVBWeg/w64ZTq781jcnJY/9rP -zOZpGu9w2BYnH5x1SCqbUaC4yLS5RIkW3C3Vj4+ZmyQTxCcErkwJiTlDQfoDZb2L -Vv7wQx+fn/EQzeTnhWhhDCHMiTjjzYEr1mg9Wub+SMvyX8bDemgTP+OJxhxAjXcV -HsO/AI+Fm7nVF6zDf0WvqKv1wDOEmpg2EYeirEE2q/xDAUo0+K4AXtbS5YEUsUFs -p4HvmoCCpriuEZY7q9a7i91IgSVeCrfKrH7slC15eXw0IjqqRY63zceGVS+FtDHV -gTduM6CpDx/f4OLKY0YXgeDgSKZsG4Qkeb1++db7tv/q/SeIS62LgTpaUUSxVnHZ -WaBASxJO8iutgSg6OichMNFiIwfIuioCQNW/P2PYXB8Y0uD00zTJp0/gOPwxNzIp -wJKy6DFMIKBh3yQx7wSy50Mcl3Lp0oiIFc6lt5v0PJPLOGWf6/ebsjglfgtCWc79 -HKeGIUPiILEs3y4NIS7k3JVSlfm17WSSRH4ogq6nDiKUOzIl/2P9tI6KHQ7Hm5lI -gmH6yGoarBodxf1vbbeVMTNjvTxTC5rbfDAeXubTJ8gAOrPVgCGi9el4BWu9yw1+ -PekATy/O9BPDp/LN9GUi6cJgz2NDAH5Q1j1pl+lhBd5TmJASx/809K8dvpoTWP0h -njLKgufW+8wVcpBitDvCaJLulkgerzZP9uUvGCT3rMjMj4ac3S//fVaYWAwc7Cxs -qyaBz2x6Kz06AF3LpZV2d2k56YmdaIKAdd+2cnU/2eD2GBcFIKBjP9nFE+KIJVZf -4xYWuJQovYbejkBfqWHiIA +-> ssh-ed25519 mOmPfg B3R4LNyimq4w8ZJptUWyAlEawpCGqhhDbNdg4hJ4+CM +D9GPbn19Kb1MRiJio+DtVqzQLBNgMcxSLHioYH162Y4 +-> ssh-ed25519 YJiRbw 5waVm+Z46zEyDD8KZAW6FNGyKjzP58QcTsT9gS6Hiyw +A/yO7sNrUeWByQzVGTjGA2I4f7G4TCUnEELcOCtCxwQ +-> ssh-ed25519 Nl/5yA QaYAuv5+XnG4ummBdhqHwPQs9blMI7D50RKZ4FosUBQ +rIdkykKWPbHqR15eOzG497thdcb4LdM10Y1Xo+jxACg -> ssh-rsa FS7DnA -kGER2nVJY1PFXepVRgmrFtfq6xRCIFHtPgFqz+VPudvDiQaW6eIflQSDFKpwr1rQ -wf6I1yXJY1Mm4+rlYWuWze3qslONFSes5FoFHNjD9pmZ6IBiGV3HYPmeCPIO+PMR -CXHnLMDl4dKBnl7QtEZwX9E7ez2cBGq7IRs79pCpRRpARYjjbQRQVcnmmBk0Ze5l -WgqYJeTWnBo/4OywKtVtYhY5/LqfkjLcdPrslMdGriraDK8YiDpv2YbNgxY7DrZE -VXq5qTjabYQ0oU93QbIc9XTtn1UGvoaAKb7VV6o+kPNU8MwXfEzdCbyd73ZwlPOp -wdVOuiQRnL3I2M2Yy0dezlof2GIgQ7BHJpxgbKLSH835NlFky67Ooz5GDg0C1eqI -dpbIeDCHG5b/TZGeGlkPsLccblLAvekZ98CRTsBN3h/LMzSgD5Ysgi+M39W4kE+4 -7Y1OwO8TQ9KU0CBe7njtiGhtcMaT2+QpCocXeNGKJOXDjneYX9yPWx6N1jL/U3rf -yM/9COD/09bDNDkn+aWqWR1M0GS0+z4WUjxqjjDuQcwu2LI1rYBcPs6Ys8/iWIY9 -vQ4qf0kBkoDrS2gPnSSxfu1/HEE1Y3i6YGmOAZvrdtK1/OVJl16WposmVlPpYlp4 -dIG3zuQeQSYSyGvGsXPmv+WKYIz92NyFTn8tiV1jE92rnZzsCux0VP09N0hOSlmv -B+QLHh9LsnJwhTYZElZfgeXB/C+5RwLWgL1jnql7/eJhjp342zlVE8CLcUOfe902 -A89ECYN+mg4Mhp9WFRG29LkTsy7HYyl1PkP4TZOMiRIQaqndTbm1Ld+3OQ6Pfgz7 -ksOLdfJSeoX09WBP/k3cevbm908hnU7KUC1WpDN9MsSf1lE1kYMWM9IR6OrfRDlW -NmyWHpU8824iX1clFNTZMLCIDiJmkbALeezuQqO0EXCrgNyCP2r3tJsv/BD6aXzu -h+wTiGv0maHZXlYeU5BtdMRcKZ6I4dNHgo2Mf8h+xxv0XuJHPHQfQSpbVxkNK26A -oEt4onSPvM4LXdyEQJ7iHWSuebN1vY/r+0f5GxC9qavL4DDiPR8S2WXEXoHnKgnp -b/SmPluBITVGSYEB9k7Z72r1MNpOcDN+nAD7Jn5CBsWVEtKoCGy7qpdlYHwdoSDb -6sdqk372RAOyiH6o1WtN2xmM4OccUJYdh18N2tXmjtXfxm2QOLCNZmw5iz56figG -VOrkybTDXUm3dBvCvefhgR8nhcTsI/XrDo1BK9jAIax+SnnYvEwOsmzZsmvY9reX -7EtWVU45O7yHLvZyuSZFXS8XpW41yTSXMlXGLS/CwTnCZdTFGFNaHfbH3gryyw8W -wm2iPDhrbSLjpmWywyvkGQ --> ssh-rsa mMfKqA -o6dPmyM7WB12mXdpK5MPXjsuzCevVhlo7Ud2vIAsAWf8SErATIF4/59rVZGIusu0 -RM1+P/ZagI13L4VdC4OOfdEU6cOw5zpYzRRacI/uaG9By2i9ohqSvqAzyg7Rf3/z -DKQjiVwDDv/kyTzzAGRhAIuw7ZfuXgkYkeM11H3wpNUuFjPg4P5Inef5g/MEYijQ -sckJDxZ1xFuX0SfkOOR9XUQcUkVMHT3V6/tEYfNPbSoaN1txH7NA0aLTI12yGFgr -6OnlVV30Accdn/zmj0sP893ockGoAs7PgE281vRpljlHyzcygEU+luRjR0vY8Hy2 -J1q3TDXBAG4Is9aVUFBc3nwWFpB839qQTu8HNGfg14oYcm1ctB8aMEMMPMCbtrCm -ToiF2LSsSMQ7V5wqyKPra5jHc1KurjQ/vNvWZW2vvZHrh0indOyI291/H8xT8YlT -RUPZUBKuZZH/xbuzSpbEJvaO8ui2TZIQvYc+2JOGHjzIkoO8CaC/WY9yGKBOdjx+ -RD1MYKR6CPEoFxGGiYz9kIkJYVUfcySxCcMgs/L0YhnEbNMjS7h4YWIfRJjoTFCz -fm4mfvFqzAqdrn2acUrYgd6G2ZuKNIuey0Bgs9IGwL3S9o1VXSDenP7ON7iF7y4q -jiXw84u5hG6F1kEJkI9oqbxDtzBt2r5nemiGxWBFVnpKKv/R6i4eP5Y3zyTyDhN8 -IKgjVSU35q7ZwpbN6w+IivQIrEEMGMhU0Xz5UJkAQRzTG8+t2vvod70EgOIkuV2J -KSbwOlAlLuMt2g+IbVwHGYefEYWe3qU5irrcELwzgV93VFJIwf9sy8h42RbsnI4C -9nKGRmfNn/aYv0CI87NlpxsUgN8swzLq6jU6JKT9xPjw3LojON0kk4Dp5TsRVHoH -yH5sugIzLpfjJ7ERR+j1S25l6GXR0Tpz1VGZ85vy0sMIU22lvSe/TPTjvHkbK/E5 -wOAahiGXN1z2f/P2jHxhxb6CaCJRWEEW1W9fnUbo6fgLAlWyRPVkm8sSOrssxgea -Q5ZivuosfkTMtr0AXpJdXK5Lzy9TCyK5H+fpc0TYlnvWkZgpX6X4meIJqAGkf+rf -Q5TOrK9o0pROm2i9WTXoHyBSe7IuvcFSgaZSAl688tnS2aQTICrRqBIC1m//EYDS -M8AA1lo6d/Ub6lUFcSxif1qwiMreOGGtEJldTJ3kxSS6+uGQMMvzbBRjezXTTMAR -59FU1zUPZL4R4RAxv86wY4qjEOMnWHQf7+OZKd5scwxSLIIyZPVf+SSGY3B9nj7V -/HQoi8wAaBuJzTHEIFay1eDR/137yea+6/z2e71HfPLCoLwlMNyCkangnp+ycQ8w -QHHpovjPt0f3L8Ue1yX83Q --> ssh-rsa PYwg6A -PhfZacWUEX4MoBjBMeBJF/78ayDslWIC1cV9XY0fvrr5h+Hof2rkitZHBDr45Mb1 -tpoLMGrMtAYKS7Ea1qz64SPJAjQLYmXJzWoGxy1p++ym/kPr3QyalO1OLK3vuaon -oCgguT0vs0dZ4hurDa4n3BWYy5lhmVo7x2jkJp3+LRxMA7JJZhY9oVbyp0sw0xWz -jRn4QRfdZyt3XDN/bHvNViplYslzSLlEILaZtn24eojIAvFc7RoyxV1oAwIRpvSi -kMgWTRTglNG9pKB5XtJ3hxFCQilIIRLrio46Aj6BCj6xkkT7wwGqZ6gWXqJYqu74 -e8nkGm2/+A0NtDQr1ocpWq6x51pL4rBj2ZBE4PphAs431yxPkqKnPiS5/cR84ldo -7opm3Zd4PvP/nM+sed/VUblatlgS6MN8QwxxEMdKr9giMZJvhkcBf6f+EAS06Hs3 -bITY9k0rVL+DwNvk7aVjxWyp3vpJcd0CQigJhjVNtgveKMit4alEY13SkVA0sHdH -iBOx9o4dxP/QziBL/M6sRpXQ0edxriUU0ehoIkWg2Jwzxii1hAlCYjGpyhr5ksOn -QWRYhYfTc+JXaXASHoTO8IlsSIHUh5ydrcn/5pJhpENQY4nqtrc+7+gfSBPOUWfH -wD0l7WdCaRbVNSEaFV5JUGtFiNwVg21rqBiFeCqlNiMADEyOAc0scLmroeqk0Unx -vXykd6GtBu0ep9WzZwOYXmjXPe0nNMl8wtazNJC5MfXPv5lh2eF9fqST1BjxHQyz -8R+20ZC73qilLvr2BqWbPV6mcKXPyTrweV66anUhmXkayWUOv/UbtvMhiLgcoZjN -q0MSrmVy1cOC1gx3CpDkGroExq8LntMlJVbHvlrnb3dt5wpNuoWd+CfNS68nz2s2 -FxESRM62huXR/GeSG4isOKWCSTer0kYL1GtIUaYTTjhXYiT1YBaJUtJol6q1UBje -blWJ+kwnCdzVCOzFrKlsnFO2JVwrLNfSm0tagXephy05+hrHMx5e1x8RA97z8kYV -dG+cu5n1t9FmyCoZzj5OC4xHqF2jdp66trRdvhps8nBCzsCWEl+s4mcG2VOePbrd -L1lV9aIys7UrOkzUDvl+DhT6ykyl6oV4tYiuumcmFwE8Q+uj1RDXlNsNOq1Y40S6 -oX1kyuiq4D2IxuIfG99DLSvjKbn95NX1UMwOJeKpghihdH4MfEyTtqGs/2AJka00 -SQme2RkTNi+ze9Aif4MbZPHKbQ1pR4FgwZZWOryXfo7mxJUizF0CTlWGuC1EN+VX -m0xrS7cFlH3eRoNgWBUI6m4WqbhFzUFeIErnk7FOGq1/uBvi8pGFt+CV6wu/AykA -b3HINkLMTvhgEHn/XnzkDA --> ssh-rsa 5JwzEA -BCKJDtQfy2AME+ll1rpcnxxJK7yM6lQxBM8TyruNBNxyk6bK3OPRUoUE1otOt7O5 -IB9HexflFpMlEH+uTy9Z/k9wQBbPWNKtDlEGl73jWpC7gp9rjGtwNbeVvckSSt0D -ia/T2ctUmLVozZMskYgWPkra7M+anGVp5FCTg/kNg71AIc7umLrbBj8aKiQKzXEF -GgMD+fdLgXsJeNC3kYRpBgG3PE/PGirfja2rEs5XXjo8RkXpXyVoQ/MYqAxY+daR -OgCW2GHMT8F5lwCFlFLGsEKCaHrNgFCnrp3nTc0Yz+qjoekCi35OCGVxC1+jVew2 -vCHNhsOitFveBfjLgkblVl9EK4uGOaSRdPlgIZbWOO4WgrQGHGo7nlTr45khUOq1 -P5VxMdqovseIlCeFIYBKmCDaS+cCvMejKsREOgR4+QFGp7U72fDwg1uY3yxubBvg -FIm45kS9vsR/ae6pWi2OKzqAkCWuI/mLy1Wv2UhHrVpbElaZ98L7o/2/+vu2hZtG -uLS2mZNrkiz1Cy/JVRn8eW/7yO28M+e+mOzNiLa3eZoRdI7ClER53L+H8QQ/X+GT -XIHGaRntGnOiHmROgGkfn6smaaF+ZoT7kC6Y1G9X1tUqIvRVKT57JyRagYICGHyj -QCv/S+9VGiFMagnsOviO1EjvcimKk4XI1rgNWIfpVsXHQlWcO9VaXHl/iN24If0S -sU72NFbAMPiuNCnt0I1wsgz+DSbA+pvZmGPrO96PAPgOej15w8gxp8OYUKirUGu0 -FACXZeLWiInIr7yJ+ahtaKuwVqgN7WtYnxndXL+/AGq0qajo90+0X/by9Es8dQfW -M1IMQC3hIuGckq5dwZ+sVbn5kyrw8FweAM5pp9WOZg1S+0kVUm6EC3RMUZrva+rg -NPdYCsb/ng57I0dq6C0PJ5317mNhfS9IPE8H3Ul8lLjHSlLLT3v7gMATHof8wxuz -y7HFH7RKkvxOsXkCqizMuEYiDOUVVywR6ezojpxhrhovZIRh3BBFBlkKrbRcus7w -l+iaJJeWsB2b0H+L4kj1IaeeJoKBMaio6OFIPcatJorv2GVGm0wkSxuHLet/1svu -IYb3Nfz4iqLhvjeh46vO983K+x54MX8fsvRWFhTZ4WT2Hrr/+mqldgDBvh1Dg/uJ -Uy+LN6o4Gbu+EsNCm/biM3EvXVSmpKeLhSzSswx3itdOD3caODvNJKRxKGJ6E2Wt -FQiSFGywF3DJSgjs5+psZj9spFlt2jzoZnLSLkLNj3zbYBTc2DkijJ66juPLkXHx -NEym3rdK5XZS28LlivJ5gzfrQN+J2YaL0U/oV5yau3p7m+GyJNVr+ruVeK76tPCD -GhpPN+LjVbVItTBme+x/tQ --> Wh4shPrk-grease 3Z?p -vDyeBSBkunx5fJuQUvG8rXbnafBfDg3vZofg1EZir+HBwSQhhUCTiCNAZJwqv6f6 -x12Lk29wt/Q+h+ru ---- D/xNQTu3lbJG4bmFx3SCwjSyWexKLAarsbuOa0fqAzk -, 46 -3PKvo*v')dd+-= \ No newline at end of file +OEtESGATZF8GKpzgmew+nN6ikurUOMViyLXuggLgZzMZGPdXAZlCZRLpvNRxD1KV +EYaWM7TVjp50Ov8R0ZR1XyyjqhG3lMoQpEBnxmjE3MZcEDS9phnR4u/zWtZZCYfk +m88ieJaJGzg8+CFUHVnlMwPQweC6hyhdKZWN8J2O908JcpNBCc3QYd6gzUoOicF1 +0rfjwk8lGwLnkDAiSwwTey6gqh/hNkvVb+IUWPVJfxdszd6uFDtjQFvjgaTl93rk +TOp62UfS52n04zqXMSMFGTElP3OahZJGjA0Ee1EPoVNNdCyVY4K7niJRele4flg6 +JP/BFCAXqVsbHJyL8G+1ldQmmg6bNSxXgb81pFvsCzQzoBu/+wJ7l0VPcJ04k/Zq +4PAZVSzESQhngohbC4ibFpcWYEQEHtYae9tAe3x7W50RZVs8g5ffGxwCT4m0VCQd +e70j1eeFvVVXP3BUQBBcHua2BXc+UU+1x8WBASUEGc8zGlVckfvYeMtol9PYoieB +eajlncyMwseONHr1uXZ0Gsv38xumPyzdp7xUMYW+EmHOXVJjoEpu8t9fEEFnaBB+ +xDt3m9WIyy7Fdd99jQ+rM5fWd7vHYdszXwYs5NtHbN/PB6kmYtPJ7672wLxIp7or +2xz7ED6j2NTXCYIzTwNxu5WKxnpv9B5sbXPOR8lQKeywy3+7TsfTMMjHDefd+Hff +fmJpnGXScGoux9ZbuDOf2T425/dD+TDTU30DA7NwYGcVKkhP3f47qNSwSkwTXZlN +IqR2cic1IQLUI/od4na8XcINVnTmie4Tvnk+seIYzEwmf4YJodXl4fW+n0keHVBf +aQQCAOQgE1BxqZD7PlHw7eDfXHiY7XGcvGvYVPLV4WSOmVQ+lDCybxgrGnRIcR9o +13EQ+YQye4GvR4ndmWhWgtY/5OZeAgaxI+Uth/KM/v38Qw1IIqz2VqIQ2ehZ5W73 +aSgVHDIY4+5rAIkGvXUOauZ0E1OdJTdFEApwCp2dInY+jjCCdrfOLZgkMF+7jG2t +hHtZi0DM6xeniG4fQd+7qwepeWyHoGx7mh4HMHz/T6a66IqMaRA3EWLhQUHO041f +G3KV7X6rQrZdgD4yeXjnyWHKkySldm4oRodzsRxEWQBPKT4Vw4WNZDncqIMxOQiu +/K0OyHVEAjcHIqnKLRt1GsiubCGZK9YqtYNbgRn7ve7HWr4brvE2Se7WV5jnwGza +RzdZt0SdbFdeFTRix9ADIYLCXEHOLssjZy37XsSeIO6aaFhK5sq+J80pCv7sHJc6 +8jb1lUoB0YEjJr/22WKAif8avJ40fEZZRcPgd2NBiSwUHFWnIf+jetvU9N9ZNapQ +MTe2RI2Trd620gwUT2WUuw +-> ssh-ed25519 FpzvfQ rGPYKh2xn9ovmn0UV2lF6jEi64c7uj7PjTaBuPIPj3g +pwvHpkS+5sQSNtpYtMnyPDBGm9mC/nosxrZgWdtCmBo +-> ssh-ed25519 GdLgCQ DukkDpEfmfDNR9MnjOMIjyRJ8ub0Hv8gKE6EX12Emy0 +/ktSIdYR6sxwbsbrpxWby2y+a0xseb10IuOs2CMKY5k +-> >|TN\.\/-grease g Wy(/zvy/ mRVSE uD4Cz +C9ik3h3oW90Z +--- I1rEn05JeEis5RwZCccQoEz5cDvJKsCG0xwUIWZHF5U +l`cq1 "I=0nXfԦoRֿ \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 9231a9a..11f00a5 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -1,11 +1,10 @@ let - linode = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBFQOgRYNWsmG8SUV6T8oEFw+581hNLCexCmdzFY2YwH9tgKiE3+doxrKqAmBnxsg80zzzRmIqs+4i+PKCK5waqI+/70Qozf/SSJDzepjQRhrIvZBlhXF9N7ZfAlrOySjjvHgvkaQmS96eOxGy5jNpGR8uSMDu32bwY9urnJ3lskPajaHeu6/abrcFc9rEMkVgC55Itr6kbR9Lv6oRWc+faue6LAEhND1RTflPloUyueWSxuZF7jvOCgEWkuynWHXiy1rr+5PlEp7pVDV+Xz0EXRt/kCDPh6VDdQdJPx98FX6zdz4u2HvIxo9dXao75k4xelFsLPb1t7+meMDkOtYLRiVkPzl6/0F23nFvLRWvnSl6nduO9RwCsVgI4zgUvYWm1aabw9YG0+JcaqU62GFwediFiyU4F7h9ALNnZwhvL3UWvbRJaOxuZl4TJk9tKUIIZsn1nGElw60wbSzknm0AD3fR5NnXEd0zJ3NE8dAS3Yy2TolkrTAeZrVd+7x00roPM4lcXgccWHl8e/SDyDULxMObwVlYOf+CcYisQGdzqJ9GC5Y39X0NeIpgcInpkxW8FYfQUADZ5msHrXNp7FGPrVJe3q7JBdLL4fDjiByHlH/qBziCHjbrhoSWzYZMDSYO1w+Rl0J8A4dSRm16+YwQ+hca3iEwcoKFJcrOeGTGGQ=="; + linode = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMv9Zud3kZOl86gtmkn+uj3D4kiXWDPtyUL02VVLNR4Q"; jude = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOos0zQePsa+T6Z2dsKbPOvEdrBQ8a6mx3s7pN6ysCI0 root@jude"; systems = [ linode jude ]; user1 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDLQRq55JKqLifX+31kEXyuoB8gfM+5thAlgR7XLPvvdu6g2a5cCWyozQ1I2oGbPRfJtzcJ5ifM7Ii2PuqAj3MdYFLHBEDOhIpBBWme9Ts2YB9HJ4NorBvB4zEfJd0Q7k2MmylyeBOwdwGz3bVqPRDcJbxWFMDHqr33FEs6SXdfyAQ5SvhWGARI84qz8zUUdOp6M4e3aIGO3cx1gA+YzYQ4FbUtL8+m1NFO8VoNFMZBMf5q0iF/SgEu5bmGWUCePia6DvfeBFQ2/y4Y7WmOj980WE+JmFTkIvmGruMYeGI8FuDQ2JIIIcehddy9bQbPF4VlGnTFsHqJYVRUUWc+vH1cPNMn01oB8s27ogf9e1lyhIN+cZOgp/jDt4eXcO4Wr04uwj7CI6m+d8iMQOa5Jv0hmNgqqiwOMVBlKeo0FCxlovzwvn/Lia9WZ74JqM6JwLCD8SZ0oFgiSIHOTHrQhr7iaCmj7X/0ey7VR8FnCrpeAJpG+ELTfWGshF1d9QR2zW7u4EsXTDLiuOmdJ+/KxwMvjMcWdlg2+Qch6SwulTQRxWaED2IWJo+YiAql8eaiVXu/eZJGLoiskGFZnONoLrzIT4pSjakPlrSpn/M/GkP1pDpaMkr24OhJsGpJNEU3F1ZcOMqy2iJzIxlPmU8Xg0I/OrnbJplpaXeRCqnmouJUJhWkaPzawaVyW7dtvprLWcpQtUgTRet18WLyOrLKlq1jwvNRMTPKUJ2IFJMpk2pNEP6bdiUxyMa4vrRIEU2p1zsYSUJpCRLtccZ/i/+yAqwnTA2L5TdAORi9nD2uCdM/Ljz52V3A14QapS6oqcoWx2soWKgnsbVXoG8DxmUTpll77Ze9t7Y5216SMInWuOu0vstP8ZcgFmWsiBgIYIuLA58abWHMxgD251phYidua6R3Gtkf8J/kYqTR1P6eJF1bt5efEg7FD2aL1QQZsYJo3CRNz7yVe1XqMdPbfe2mFXQVF9TDX5x6r9Ir3d0KiEmTlBdByz8nSyPJ8IQxC58NT4LNVQs3p2XH2Zcf6B4JOBSmV4NNBnLseFobsxniWjkWwZigED/D2iu3OXuuhmskCbw0hKy2rBcKffaSNMioVqYIiYNfKlMlSvAacQKqc/1HCpqgX8PwAcSgNSLy4K7/gIrTHmjY+g+CH7onzatWzkLo+0vsZRa/D/qwhhK2CU2FeU07mhnWxWuzqpJuqVaAwDTaEforK7nQUtAOFAZZP6qGhIoqsynYt4THb+QORb3QYfaP0PVgQwXfVU5Q8eUQFZ8A+siPtOASFjDumsIbseB5VzkF+UhvdseJwkX2+4pVFu8eHFDyvArYsHeGK6fBcQGJFQc2jSs6doIP9HD9IO2R ghelling@unknown38BAF87CD102"; - user3 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDUd5LQVl/spIfJ3mh/MERlCfSIHCh3jXnaNVnyHY2AVD2dFVgFX+Q+1adA64plXqXHEQVb3q2EMzVW14QAMP9VJspnODgpyMHwpxp6ZNUsZIH83RN8kauVHgW2LRDCZ4DLRzbqaeDm92rntapoUB74Vjto00AE3gWyGQp/v6BeAUhqE0J2p6T6xDgsuyJ+Tzm2YEUozFW8w8LSGDgaoTKzjq0WVkAo9rNaxGLr/ez8P3SUHgb2VSUrL1qrHE99KL8rravOjP0aQmGGWu/MOjgvh7icQuqYlBF6MHfxeSd7/FZApVNKzEXD9TKBg5IaCOjHH2GHnxthSC0mcjKmF2EVAXuWYDARqxmtIfV/9YdeECEFxzB6X+t6b3RYxA0/oa5Zt70WH2LILmc3U5EfiRf88x4WcsdmbcsKQ74/julgg7vYlTlndBxvl8Nd1IKd6ZD3nJBMMMKrDOYbME5r6x2VTzm/RQkpp+SHarCMXxjukhguYY3Iz9CTO2hdGaQ/41ftlOhpb3I1Gai9GymTPFDt9n3JCEVyQ1+a97ELVr+Ky1L3hMewE8nqZFIoXUB2RFMu2pD9GggDO2e6bXdN3SIHLL/8amoDK62iYgVEp1XBkzHJ7U6hhIYbkFji0KK8A7Cwg8+gOKdovycJIAWndHjaDcLmWDlBktqHIRQvLMTzE9f935faTcrSTpnrCLK/pR3f7ir7HGpD8lUug8m7DfxhH3am1Fz7uY9iNI1GLctexC7espXq/xEA/+j7JRVVKbpIubXcmJjNlKs6jOx849SpdWvLlnJpqo1PIjxE9ZDa7zlPSLMTKGTuY0ekKvvbuaOhcOBuYg1RfbdN1QIX5ba86U7giFMZb7wGh7Pbsy0PhFgO7ANgNZy81RKp45G8ozHLnXCj/qhstqjcEgUICDkT/CGnNkreu023kqOaix0nELBLwWBVM/5iWmKQZnpiBhHHDNJ3Q6DsCkIUdfOWZNCIRwGDPuV8uMOEHJIemg25Z282QqWUIfWzGOO1f0ylVmhTQooZIfjhyGXxKa6AV+/tAXQtkF5B1Z8rB5A3pYYLDmnY1E007sWpvm2L/HKV7cWUX7bkuS+qBXZyHxEn+cc6YvalJbDi5/bE5kFQudZFgKInwFiMLhX/8BpbgBUv+6MvvCn79o9qnoOnkI36A9bEOdQKpjwPdg9tkVWr0RotXfP62tIAQsxS05J7yxprC5Uitf+Bhp+Hph0tS/hyxTbN1h30vfdABouvQpcqbgUlp6psyTT17efeNbGcs9l4gkg4HOGpmF60alA1+PBZ1l7ba6bglp+CZoeA5qsCTmMxT5yLaWcEck/8WR3NHQqkER5ZyH1204Kci35kNon69y1/ greg@linode"; user4 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCoGGV3eD1oF0O62JZfCWNxmViRjRGQsfOhRkQfzQROkwDlFZ7S1+02fudD9t7mPtZE6dQ4yS2+6Q3NIfGW8NBbZAlWwsQ6PnrpuAhWpWc+ng/IDQd9CH/rBCt5bWSLL8AGHa4c+qde7iyoFGK0l9jXVD9wATBFQ274WTmPacVQVHmIAmJS6ISmR6vlq9eaDj1fX8wixao6WvzfwAUvXIs8nhPEfmtyu4T/1Eev9rVIxOw3ODQjk/E0VWV4Koeptsyc+V+j+XMyA91v8f20T4Uwe5LGnJHSQS0WavHnCMWHb1tzkmiKdaNCymoDUcUF2rywMYry7JN0kZo2mp2d7OzE/RP3bz/IsAI33+DwRlDYDNzgeLsLVmOJij61AtqBZque6WDcyCF8HN0ZaY0KJPOtNlN92+GUBRF/Faei0MXZ7wW2BZL5Bc7qnXc9USyhPNsm2vQ7LLhh/NtBGqB88+C+AidTTZ/xiIHKWZJXPkWLPRcK5cfaFqHFqcVMk4U+b0FYB95vYPKmjURlAZ6WrU6dNaNaMH9hJSE6/03is4hb4t8RCRiNaR41pEACDZbATjY0DInFn1LxxpUV66xfpOVg5hKm5ScIks3KxWJ8i3v4/cX7WvbDC/UzWb2UygpsqR7/1n5LV1SNPl+/qxFfdaOyZ8WVvx7DKGxkKfkPBgGwdpSthdv7BY+SC4sT9WXQAPGnvOIk6HwKhHjJYX7AIKK64ACfGZbjBC2gg7Ocl4HkgwpYYlUWLRJdJUhHOCi3VhPZDspYhw/UxPnUhYa8lxq5l7kgkks/tFe1qHOvPe3QRW6brg3EdJNkwtMrlrstW4/nph/KFqSshzNVDlEqTAnhE1cjbBZNmlHt1Un4ixcW1b8b86mE+472pSsIEfO8vxP26brQhxepJFZGOFv2vs3XDrrtn6IMJok4e+AQSCCY0kCcgfG5nMYXUoWpGyTpN/JLG0joJuhPWt58OaOzzKNPq2+rCVAbS7/UmDCqkwxjCywxOZRwluBsEWbZaLEdOwQOfIZQGwSDBM0hfHJJxMSaLN3rCe6VZb+c/5mFXUZ46L5mOGkRlO1TOEAe4jqawAQnuGaHN8mMWSw1gKM+UBXTKa0tBR6Aj/OSfPW0jU+mz/YzzJkzNnlRFiSrLxWvL4eXaBsMZvgKdpA41+E4JG8Vu+9D9KNGRnLASOCxRknV18MubZlEEyKby9A6TaKoPrz7GVQZP+36V9DtAJAza74nHSDNAQG/4w2BLOw9+VrDNdXwjMbgG+SN4f1K+e554OirtSMVB73VXjdwoH/FyX+7+dcUZRQ7V2n37jIVOE6CcuEPjzdnkvKSqBsdTO3Bt66+QtS9BwGHu5c01+Q7jvIl greg@nixos"; user5 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDR4vmc5TiymSjMB7E+oYsiTxOg+2xwnLAILYjQKPA7dIvz/A/HW31R1aVVxNEgkHm8qeqmgE1bUysMMl128zvdKmwkMmq2uagx9hboyfCwOYRaQOtpS0dlgSllhM654vL9553t94sTuMIfNUiXBD3EV2Z5JJ1RteCkBTJjzmXQnV9he0xozBYOdGv35UGneQzAr7Pps9iK81mR4yW+vLcW3pAaPmDBbN7C6WFxqcEBWsaJZK0rLCTrQo+6B130XgH6gPgh4GyDaRmtRJl63yANiP/RfkDFTPKOh87slLLZaHJUe94P2CTZw0e9xSzWuzx71nBp9JhkoZkI9XD+AnbHIZ9X3twIADUf+D0fivzOH+Yzne0gNRFa+O4x8xd/xj8QeM+Rr1ATikBf/FRfyx+RzHgHS1ZyOKfIpQbrm44E8Smv7FzS5RcCfAScSn0npOqP0cilYjtDCEoeMVsx4XQy4+iYLOA/EaMICSz2PwQFG/KXe7NK30Cc5flq5qUiz8TX1Mzlxuro4qTktYSXZBs5YyEg3Za/hcqMV52kVn0W8S1DatHOL4TlRKYeKsg1hWNvtm2MRqJvWkqK9vNNL86Ew5D5hgXdCk+AiRzOhQxfprPYMea2Vx1Mkaq3VYHWmJBWc/m4aOKUSajhFu8KG7l8bc4IkgC+qQCYzr6pCUDlCaCEF1iQ3lItSkbJJmRBHKEOb85lsIJ/SZ0bhsMl8bc9z33zY+bwv2NezG/aKVGrny4ZTAI1BKkZN/60L0yzJihyKamEa442jjnvG1jzC2wEtd/0gCGWScfZsQWqDu97spbeq8jrc67U9xqlGTrWyyNsCW2lpu26cQWWRC8ufl5zBNRDFDSYKceBaJ2+sx1GPj3YYdJSlTt5JvxNyBg0BGfGqCTd0w4IXF3KP9IZRWWAKPaOZcil2MRZwYhWEd7p+CtKVAL93uW0sE+0C13+iFMnBUkFBJ2dZH+tWpywCRYcrVNvrBlsHe2XniwBwvQHUFgKaQAB8upFTK1xBWTh2S+CVyNed/fckAUrPDj4sI2NERGcyPC5Oi6r0fUPtcWvKRfA/yXx5A0iNWc6acTqd5wwSO3s8rOCjIwdczZmkmnjAf3UKhmtDnwRd9rbO5Hanom80re9Dk0W+z9E2+70b9iYvZ60pbw+cG4WqEQnr02RS8hKvU0CsYFoDMTzV4snqTKNrl0IeD+Fmjl7oDkcC4YQbZd2902qVL3WHHvW+p0WQ1B/rk8BPVRYVmrUQbqwPFCQlmTe3Zy+LpqbWYemhQJGVSiEiioVNCc7pHO6RyWLCoEQKwKHAoNleKtkG94hT/d0z+1RYpB/nbJ51BPihK5EMlXbw/Hu1SVaaDLOSL6p greg@mm"; From b1d4d72b6b274d44b76c34fc8b4425cd5918988c Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 11:48:48 -0600 Subject: [PATCH 14/25] Add runner to jude plus module --- flake.lock | 6 +-- home/hosts/jude/default.nix | 5 +- hosts/jude/virt.nix | 11 +++++ modules-all/ci-runner.nix | 84 +++++++++++++++++++++++++++++++++ modules-all/default.nix | 4 ++ secrets/jude-forgejo-runner.age | 17 +++++++ secrets/secrets.nix | 3 +- 7 files changed, 124 insertions(+), 6 deletions(-) create mode 100644 modules-all/ci-runner.nix create mode 100644 secrets/jude-forgejo-runner.age diff --git a/flake.lock b/flake.lock index cccbd38..7170cee 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1690228878, - "narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=", + "lastModified": 1701216516, + "narHash": "sha256-jKSeJn+7hZ1dZdiH1L+NWUGT2i/BGomKAJ54B9kT06Q=", "owner": "ryantm", "repo": "agenix", - "rev": "d8c973fd228949736dedf61b7f8cc1ece3236792", + "rev": "13ac9ac6d68b9a0896e3d43a082947233189e247", "type": "github" }, "original": { diff --git a/home/hosts/jude/default.nix b/home/hosts/jude/default.nix index a2a4498..304492a 100644 --- a/home/hosts/jude/default.nix +++ b/home/hosts/jude/default.nix @@ -4,7 +4,8 @@ imports = [ ../../vscodium.nix ]; - home.packages = [ - (pkgs.mumble.override { pulseSupport = true; }) + home.packages = with pkgs; [ + (mumble.override { pulseSupport = true; }) + fluffychat ]; } diff --git a/hosts/jude/virt.nix b/hosts/jude/virt.nix index a5cbeda..1f456bb 100644 --- a/hosts/jude/virt.nix +++ b/hosts/jude/virt.nix @@ -33,4 +33,15 @@ users.extraGroups.vboxusers.members = [ "greg" ]; boot.extraModprobeConfig = "options kvm_amd nested=1"; + + greg.ci-runner = { + qemu = { + labels = [ + "qemu:host" + ]; + packages = with pkgs; [ + qemu + ]; + }; + }; } diff --git a/modules-all/ci-runner.nix b/modules-all/ci-runner.nix new file mode 100644 index 0000000..d067986 --- /dev/null +++ b/modules-all/ci-runner.nix @@ -0,0 +1,84 @@ +{ config, pkgs, lib, ... }: + +let + cfg = config.greg.ci-runner; + runnerNames = (builtins.attrNames cfg); + makeRunner = name: value: { + enable = true; + hostPackages = with pkgs; [ + bashInteractive + podman + git + nodejs + ] ++ value.packages; + labels = lib.mkIf ( builtins.hasAttr "labels" value) value.labels; + name = config.networking.hostName; + tokenFile = config.age.secrets.forgejo-runner.path; + url = "https://src.thehellings.com"; + settings.runner.capacity = value.parallel; + }; + + userName = "gitea-runner"; + +in with lib; { + options = { + greg.ci-runner = mkOption { + default = {}; + description = "List of gitea/forgejo runners to configure"; + example = '' + ``` + greg.ci-runner.snarfblatt = { + labels = [ "ubuntu-latest:docker://ubuntu:latest" ]; + }; + ``` + ''; + + type = with types; attrsOf ( submodule ( + { name, config, options, ... }: + { + options.labels = mkOption { + type = (types.listOf types.str); + default = []; + description = ''List of labels. The syntax is + more or less going to be something along the lines + of `:docker://` or + `native:host` for a system that will support running + commands directly on the server.''; + }; + + options.packages = mkOption { + type = (types.listOf types.package); + default = []; + description = ''List of extra packages that will be needed + in the running environment for this worker.''; + }; + + options.parallel = mkOption { + type = types.int; + default = 3; + description = "The maximum number of parallel jobs this runner will support."; + }; + }) + ); + }; + }; + + config = mkIf ( runnerNames != [] ) { + services.gitea-actions-runner.instances = ( mapAttrs makeRunner cfg); + + age.secrets.forgejo-runner = let + aName = builtins.elemAt runnerNames 0; + target = "gitea-runner-${aName}"; + in { + file = ../secrets/${config.networking.hostName}-forgejo-runner.age; + owner = userName; + group = userName; + }; + + users.users."${userName}" = { + isSystemUser = true; + group = "${userName}"; + }; + users.groups."${userName}" = {}; + }; +} diff --git a/modules-all/default.nix b/modules-all/default.nix index ce97e9e..68a1f9b 100644 --- a/modules-all/default.nix +++ b/modules-all/default.nix @@ -1,6 +1,10 @@ { pkgs, lib, ... }: { + imports = [ + ./ci-runner.nix + ]; + # Enable flakes nix = { package = pkgs.nixFlakes; diff --git a/secrets/jude-forgejo-runner.age b/secrets/jude-forgejo-runner.age new file mode 100644 index 0000000..3db24a3 --- /dev/null +++ b/secrets/jude-forgejo-runner.age @@ -0,0 +1,17 @@ +age-encryption.org/v1 +-> ssh-ed25519 mOmPfg 1Q/zfHlucVlB8FkxpOSYnWgFBJre3KeW+uANvUC/PFU +/uuW2lV2SwdekZPeJsCXK4T+msMtBFVio5fvFPOlcCI +-> ssh-ed25519 YJiRbw 4s8W7hOd8/kxQ4lImUYmF0DhXCuUZeCWXE+ueAFRbzg +el12BcxbsdyDHHalcucjqZz/Hzegg1J+Nvr0BFXXpu8 +-> ssh-ed25519 Nl/5yA CP6ofzQfDKGGv2yFhjBx58xHPOaTazZ0jW0R6WXRiX8 ++jOI7EIa0O1qh4ARyctAr8NHvp8Y8HSkA9tT8ybNrUg +-> ssh-ed25519 tOH/HQ oI1ltqtnlvl5WUrebrdy8LErHleiNHQJVc9FXuUwZ28 +FNeE2F6tM6CWXiFwJnguL/0BGMz1oejyV+vX25UN3cY +-> ssh-ed25519 FpzvfQ XeYdcSTqUtY6mNwzZ9vfohJ/4y17OdoaYCNpGZxWrjw +3qA8Wsik3/JH+JVOr8T9ue2Y9wDzwrf6rWsfwbGTJAE +-> ssh-ed25519 GdLgCQ dAfetOmfUR4G4qcS4mjw2Z1h0iFt22Yh4GioqpJpimo +HQ5auu9P454fqMgCeYu5ynMXqyM35kvzlK4DFozhcC0 +-> FilBs@/-grease %U4V^CDH 6'KK:"` +dirZXZvJaCxTTtTT +--- qvxgsWakIV8/n+LxUXw9WQ1nkKEfEBRv6oBSsc6KFJ4 +DpY֤ӜIp)>N dՐr~x'`~+UWF $.2%9>ʺ Date: Tue, 12 Dec 2023 20:01:02 +0000 Subject: [PATCH 15/25] Use unstable for forgejo --- hosts/linode/git.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/linode/git.nix b/hosts/linode/git.nix index 2229315..df5968d 100644 --- a/hosts/linode/git.nix +++ b/hosts/linode/git.nix @@ -23,6 +23,7 @@ in { services = { forgejo = rec { enable = true; + package = pkgs.unstable.forgejo; database = { type = "postgres"; user = "forgejo"; From f0e2e418aa7b2fd6ad3f75490b2bc8ab51b49976 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 20:16:16 +0000 Subject: [PATCH 16/25] Cleanup Monica and git services --- hosts/linode/default.nix | 1 - hosts/linode/git.nix | 89 ---------------------------------------- hosts/linode/rei.nix | 27 ------------ secrets/monica.age | 38 ----------------- secrets/secrets.nix | 2 - 5 files changed, 157 deletions(-) delete mode 100644 hosts/linode/rei.nix delete mode 100644 secrets/monica.age diff --git a/hosts/linode/default.nix b/hosts/linode/default.nix index 06a8883..eeca23e 100644 --- a/hosts/linode/default.nix +++ b/hosts/linode/default.nix @@ -8,7 +8,6 @@ ./nextcloud.nix ./nginx.nix ./postgres.nix - ./rei.nix ./synapse.nix ]; greg.home = false; diff --git a/hosts/linode/git.nix b/hosts/linode/git.nix index df5968d..b0029c8 100644 --- a/hosts/linode/git.nix +++ b/hosts/linode/git.nix @@ -133,99 +133,10 @@ in { # CI SERVICES ########## ########################################################################################## - - # Service user - users.users.drone = { - isSystemUser = true; - group = "drone"; - home = droneDir; - }; - users.groups.drone = {}; - - # Environment secrets - age.secrets.drone = { - file = ../../secrets/drone.age; - owner = "root"; - }; - virtualisation.oci-containers = { backend = "podman"; - containers = { - "drone" = { - environment = { - DRONE_GITEA_SERVER = "https://${srcDomain}"; - DRONE_LOGS_DEBUG = "true"; - DRONE_SERVER_HOST = ciDomain; - DRONE_SERVER_PROTO = "https"; - DRONE_SERVER_PROXY_HOST = ciDomain; - DRONE_SERVER_PROXY_PROTO = "https"; - DRONE_TLS_AUTOCERT = "false"; # Suppress it generating SSL certificates, as our proxy handles that - }; - environmentFiles = [ - "/run/agenix/drone" - ]; - extraOptions = [ "--pull=newer" ]; - image = "drone/drone:2.17"; - ports = [ "${ciPort}:80" ]; - volumes = [ "${droneDir}:/data" ]; - }; - - "drone-docker" = { - environment = droneWorkerEnvironment; - environmentFiles = [ - "/run/agenix/drone" - ]; - extraOptions = [ "--pull=newer" ]; - image = "drone/drone-runner-docker:1.8"; - volumes = [ "/run/podman/podman.sock:/var/run/docker.sock" ]; - }; - }; }; - systemd.services = { - "podman-drone".serviceConfig = { - StateDirectory = "drone"; - StateDirectoryMode = pkgs.lib.mkForce "0777"; - WorkingDirectory = droneDir; - }; - - "drone-exec-runner" = { - environment = droneWorkerEnvironment; - description = "Drone pipeline runner that executes locally"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - path = with pkgs; [ - bash - drone-runner-exec - git - podman - ]; - - preStart = '' - mkdir -p ${execWorkDir} - cat /run/agenix/drone > ${execWorkDir}/conf.env - echo "" >> ${execWorkDir}/conf.env - ''; - script = "exec ${pkgs.drone-runner-exec}/bin/drone-runner-exec daemon ${execWorkDir}/conf.env"; - - serviceConfig = { - StateDirectory = "drone-exec"; - StateDirectoryMode = pkgs.lib.mkForce "0777"; - }; - }; - }; - - greg.proxies."${ciDomain}" = { - target = "http://localhost:${ciPort}"; - ssl = true; - genAliases = false; - }; - - ########################################################################################## - ########### - # CI WORKERS - ########## - ########################################################################################## virtualisation.podman = { enable = true; dockerCompat = true; diff --git a/hosts/linode/rei.nix b/hosts/linode/rei.nix deleted file mode 100644 index 55b3ab7..0000000 --- a/hosts/linode/rei.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ config, ... }: -{ - services.monica = { - enable = true; - appKeyFile = config.age.secrets.monica.path; - appURL = "https://people.thehellings.com"; - database = { - port = 5432; - }; - nginx = { - addSSL = true; - enableACME = true; - serverAliases = [ "people.thehellings.com" ]; - }; - }; - - age.secrets.monica = { - file = ../../secrets/monica.age; - owner = "monica"; - }; - - greg.backup.jobs.monica = { - src = "/var/lib/monica"; - dest = "monica"; - user = "monica"; - }; -} diff --git a/secrets/monica.age b/secrets/monica.age deleted file mode 100644 index 26f7658..0000000 --- a/secrets/monica.age +++ /dev/null @@ -1,38 +0,0 @@ -age-encryption.org/v1 --> ssh-ed25519 mOmPfg X+7CjshhqaThstA+gFDN23HSrhaJPG/GSkeZSXRXqTg -btgSgDtB5tPaJMMfvZqv/CKqdAcFXBeHEm2ZuC8Fzvs --> ssh-ed25519 YJiRbw EW9X5R7XGczSOoC5fc0gsHgHcK3nTT/KQzjYurw9tws -MB2AyaJFx44mdbsK2sBAYjILuKZxXpd25Ci57q+WyiE --> ssh-ed25519 Nl/5yA lsY4ttlGcJ3FyPDh/Eg2P/xNsynBLLLqKIbzyVUVoQ0 -iEAOfYQyMaglmF+QeMatBLIgG5N2MUNDhM5LP/jNvuk --> ssh-rsa FS7DnA -QkRi9WLtEknHPvJktTXdMOMkEwufHU0JStgCc11rFACJ4ZAa7qb3448jWwq5slFi -G27RoJnMFmEhYkh5Yd6ck5fg/MELTLq/RHaXKJKUwcoXdej8EGN7B3/t+boVdMDK -ab37gwrQl4ek/8wlx/zNowkESPtNuA87MIOjOj2H7ZgvpchTPFqeTmNdR0AcoNBb -Yi7K8Y5yM3UPeUrot+Ad5wvqUzrlK77NNwsybvFSjeTCulUHlTj1FtIJL6xobT0v -IM4Iy/KcwjKK3QoIyMfAt95KuIRMT5GIkfdbQU/wUWSAunX8RiRV4USlkAgg5c0k -b7kKrGkCweAxfwD4AblVXmK9kN8SAwIMhh41PRRvTbtUJNtjUkFA3gNArpsmmVPI -5tNM8JUoe9E2F9WgJHkX4ctcN+Qu3gDKJbg7zvpTNLgw0wgfjh9h54L3p8L46x9L -Ut60f5oAYb6IqZu65WwTv5souNtq1soT3n3H2Tp7NPzAmdBy6G/p++xZ1RNfSeij -dnMMxOGmBiJ14upRaC7s5JZFbu/cwnX/2qLaY0sBXlpJpOFAsKmwd9TEm0+WCaSk -m5moOT7Ivjl8alPXQuOaAZfDFZvpcgOxNviy8iB1D22xkdkXerzbsL07uzKayU0r -SCi6XJmzCtS7TKbfmDjbLnDcVPylkWaKxXw9ekKoZBJ7LPMSfBVVPD+Zap20tV+u -pnfTkLTW3o8pRjvcip1Hl9XuWvyMnIgoKL4CYc0JzLQAcieRn8tVbDXes0O1pAMh -1LWwBHYQyVFTM8qIqpbt/ndKTB9euqEMzeMJ3oMYhDIchozSSwmbsRMrKqh6gWdI -ldeYn3F9sEi5pQwDA0KikDCuT2W2oek+KlQKKquGln/nWf+5m6HTgwvA7QxgIfZi -wYuG9aYxOWwylyUDeHCUJLQ7RPJk6Cik32pVEMaviNwTOnQPBlyzFAwDlq+0crdj -dV+6vo/rRY3UyU7FCuWE8SVZFTwP4E8SfEiqYgOOhE/6jDkAo8q32eEgLMG/9hi4 -Ro6Zy6DEv5la3cHZEUz550K8PHhajScoOiNK5RcG0YgBpLO93awz/iyrUDM2KuwS -xNFcpD165x9VpD2F9yNzvIqnTc3F5rDWa7PhffOV1ECdZaUgxhX8vuNN78sW+A4L -ppuJsVgx1rQFxtavUijFbS5Oona0aOlRLQop2BaW9an+PIRghsYJb/e3vjIGshVH -T5GxobOT7C7nxxs+ovdUUNmr0bWEINicQ9eTAHFx6pGSzgodMS1qrtROoY1L3+My -KVAeLhS7S4ls3W7TDm/AnqNoZG/HUOEyBkXOOzOGgZvD7/LiohNVzW/e1rLO2ziQ -QZByHxpv5gHZCUSq+3jqrA --> ssh-ed25519 FpzvfQ ztmplW5LE5mbFG2oxsnUQ5botTjz1427pPi47zwKTVs -l2leKVw0HKME7pfbP2P/S6YgwR+UDnLfLdyOszZ+2Tw --> ssh-ed25519 GdLgCQ otYdayZhkpESECiKhTSuaoJufMNzdGNboK06fMDWWnM -EmdT4yHbso/SqzJsHpYIHZpTUTUM+5V57yJkftIusSY --> >p|7o:_-grease O:zn -55ZZNnY7ZEWxwJDA ---- 6P7VSDuTwwkEO0Kc9r1COPei6CpAdumIdh9nwWtKQd8 -ː[5{MsݧGR ͋ OҬj9d;;/|"HaA $i#DvU1[(Y5j< \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index b0492e6..f3f31e5 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -34,8 +34,6 @@ in "3proxy.age".publicKeys = everyone; - "monica.age".publicKeys = everyone; - "linode-forgejo-runner.age".publicKeys = everyone; "jude-forgejo-runner.age".publicKeys = everyone; } From df29de17cf87f97be6d6293a9aac5576efa9d5c4 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 16:25:58 -0600 Subject: [PATCH 17/25] Add myself --- home/hosts/myself/default.nix | 4 + home/ssh/authorized_keys | 1 + hosts/default.nix | 1 + hosts/myself/default.nix | 131 +++++++++++++++ hosts/myself/hardware-configuration.nix | 51 ++++++ hosts/myself/runner.nix | 207 ++++++++++++++++++++++++ 6 files changed, 395 insertions(+) create mode 100644 home/hosts/myself/default.nix create mode 100644 hosts/myself/default.nix create mode 100644 hosts/myself/hardware-configuration.nix create mode 100644 hosts/myself/runner.nix diff --git a/home/hosts/myself/default.nix b/home/hosts/myself/default.nix new file mode 100644 index 0000000..04618ac --- /dev/null +++ b/home/hosts/myself/default.nix @@ -0,0 +1,4 @@ +{ ... }: + +{ +} diff --git a/home/ssh/authorized_keys b/home/ssh/authorized_keys index f861375..250453f 100644 --- a/home/ssh/authorized_keys +++ b/home/ssh/authorized_keys @@ -2,3 +2,4 @@ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINAX6pNx5mbwIa8X+GzktyNijfYmJUpgROFpRxSW9js0 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFWPSFQT0AH77wrwRhiskcBS0w4ZakBRdJywYYBsnm3S greg@genesis ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMYzms+KIe5/bYF3uCyFjA5e1AgMPLIA3c4k417coqBe gregory.hellings@ls23003 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINnRc/kBhxcjpUtiRQY+BXnSObdp0jFL1395wAQxJip7 greg@jude +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAl6DJVrPSujvJSAEA5Q8tRrzfJs/c6DMwqwQEUFffIR greg@myself diff --git a/hosts/default.nix b/hosts/default.nix index 18ce96f..fd2cd79 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -51,6 +51,7 @@ in { linode = machine { name = "linode"; }; lappy = machine { name = "lappy"; }; mm = unstable { name = "mm"; }; + myself = unstable { name = "myself"; }; iso = machine { name = "iso"; }; iso-beta = unstable { name = "iso"; }; # nix build '.#nixosConfigurations.wsl.config.system.build.installer' diff --git a/hosts/myself/default.nix b/hosts/myself/default.nix new file mode 100644 index 0000000..f7b5ea6 --- /dev/null +++ b/hosts/myself/default.nix @@ -0,0 +1,131 @@ +{ config, pkgs, lib, ... }: + +{ + imports = [ + ./hardware-configuration.nix + ]; + + environment.systemPackages = with pkgs; [ + git + (python3.withPackages (p: with p; [ pip virtualenv ])) + tmux + tree + vim + xonsh + ]; + services = { + openssh.enable = true; + }; + systemd.services = let + def = id: { + enable = true; + ephemeral = false; + extraEnvironment = { + HTTP_PORT_MIN = builtins.toString (8000 + id); + HTTP_PORT_MAX = builtins.toString (8000 + id); + }; + extraLabels = [ "nixos" "isaiah" ]; + extraPackages = with pkgs; [ + config.virtualisation.virtualbox.host.package + curl + gawk + packer + pup + (python3.withPackages (p: with p; [ pip virtualenv ])) + qemu_full + qemu_kvm + xonsh + xorriso + ]; + name = "isaiah-nix-${builtins.toString id}"; + nodeRuntimes = [ "node20" ]; + package = pkgs.github-runner; + replace = true; + runnerGroup = null; + serviceOverrides = { + Group = "vboxusers"; + }; + tokenFile = "/etc/github_token"; + user = "runner"; + url = "https://github.com/greg-hellings/vms"; + workDir = "/home/runner/${builtins.toString id}"; + }; + runner = (import ./runner.nix); + in { + gh-one = (runner { inherit config lib pkgs; svcName = "gh-one"; cfg = def 1; }); + gh-two = (runner { inherit config lib pkgs; svcName = "gh-two"; cfg = def 2; }); + gh-three = (runner { inherit config lib pkgs; svcName = "gh-three"; cfg = def 3; }); + gh-four = (runner { inherit config lib pkgs; svcName = "gh-four"; cfg = def 4; }); + gh-five = (runner { inherit config lib pkgs; svcName = "gh-five"; cfg = def 5; }); + }; + networking = { + hostName = "myself"; + useDHCP = false; + defaultGateway = { + address = " 10.42.1.1"; + interface = "enp38s0"; + }; + interfaces.enp38s0 = { + ipv4.addresses = [ { + address = "10.42.1.6"; + prefixLength = 16; + } ]; + }; + nameservers = [ + "10.42.1.5" + ]; + }; + virtualisation = { + libvirtd = { + enable = false; + onBoot = "ignore"; + }; + virtualbox.host = { + enable = true; + enableExtensionPack = true; + }; + }; + users = { + users = { + runner = { + extraGroups = [ + "kvm" + "vboxusers" + ]; + group = "runner"; + isNormalUser = true; + }; + greg = { + extraGroups = [ + "kvm" + "sudo" + "vboxusers" + "wheel" + ]; + isNormalUser = true; + }; + }; + groups.runner = {}; + }; + system.stateVersion = lib.mkForce "24.05"; + boot = { + extraModprobeConfig = "options kvm_amd nested=1 vboxdrv"; + supportedFilesystems = [ "ntfs" ]; + loader = { + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; + }; + systemd-boot = { + enable = true; + configurationLimit = 10; + }; + }; + }; + nixpkgs.config = { + allowUnfree = true; + permittedInsecurePackages = [ + "nodejs-16.20.2" + ]; + }; +} diff --git a/hosts/myself/hardware-configuration.nix b/hosts/myself/hardware-configuration.nix new file mode 100644 index 0000000..7a0d889 --- /dev/null +++ b/hosts/myself/hardware-configuration.nix @@ -0,0 +1,51 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/714744ca-dd9d-4713-b571-c6ccfbf56d79"; + fsType = "btrfs"; + options = [ "subvol=nixos" ]; + }; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/714744ca-dd9d-4713-b571-c6ccfbf56d79"; + fsType = "btrfs"; + options = [ "subvol=home" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/29E7-E20C"; + fsType = "vfat"; + }; + + fileSystems."/myvol" = + { device = "/dev/nvme0n1p1"; + fsType = "btrfs"; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp38s0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp39s0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp42s0f3u5u3c2.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/myself/runner.nix b/hosts/myself/runner.nix new file mode 100644 index 0000000..8578100 --- /dev/null +++ b/hosts/myself/runner.nix @@ -0,0 +1,207 @@ +{ config +, lib +, pkgs + +, cfg ? config.services.github-runner +, svcName + +, systemdDir ? "${svcName}/${cfg.name}" + # %t: Runtime directory root (usually /run); see systemd.unit(5) +, runtimeDir ? "%t/${systemdDir}" + # %S: State directory root (usually /var/lib); see systemd.unit(5) +, stateDir ? "%S/${systemdDir}" + # %L: Log directory root (usually /var/log); see systemd.unit(5) +, logsDir ? "%L/${systemdDir}" + # Name of file stored in service state directory +, currentConfigTokenFilename ? ".current-token" + +, ... +}: + +with lib; + +let + workDir = if cfg.workDir == null then runtimeDir else cfg.workDir; + package = cfg.package.override { inherit (cfg) nodeRuntimes; }; +in +{ + description = "GitHub Actions runner"; + + wantedBy = [ "multi-user.target" ]; + wants = [ "network-online.target" ]; + after = [ "network.target" "network-online.target" ]; + + environment = { + HOME = workDir; + RUNNER_ROOT = stateDir; + } // cfg.extraEnvironment; + + path = (with pkgs; [ + bash + coreutils + git + gnutar + gzip + ]) ++ [ + config.nix.package + ] ++ cfg.extraPackages; + + serviceConfig = mkMerge [ + { + ExecStart = "${package}/bin/Runner.Listener run --startuptype service"; + + # Does the following, sequentially: + # - If the module configuration or the token has changed, purge the state directory, + # and create the current and the new token file with the contents of the configured + # token. While both files have the same content, only the later is accessible by + # the service user. + # - Configure the runner using the new token file. When finished, delete it. + # - Set up the directory structure by creating the necessary symlinks. + ExecStartPre = + let + # Wrapper script which expects the full path of the state, working and logs + # directory as arguments. Overrides the respective systemd variables to provide + # unambiguous directory names. This becomes relevant, for example, if the + # caller overrides any of the StateDirectory=, RuntimeDirectory= or LogDirectory= + # to contain more than one directory. This causes systemd to set the respective + # environment variables with the path of all of the given directories, separated + # by a colon. + writeScript = name: lines: pkgs.writeShellScript "${svcName}-${name}.sh" '' + set -euo pipefail + + STATE_DIRECTORY="$1" + WORK_DIRECTORY="$2" + LOGS_DIRECTORY="$3" + + ${lines} + ''; + runnerRegistrationConfig = getAttrs [ "name" "tokenFile" "url" "runnerGroup" "extraLabels" "ephemeral" "workDir" ] cfg; + newConfigPath = builtins.toFile "${svcName}-config.json" (builtins.toJSON runnerRegistrationConfig); + currentConfigPath = "$STATE_DIRECTORY/.nixos-current-config.json"; + newConfigTokenPath = "$STATE_DIRECTORY/.new-token"; + currentConfigTokenPath = "$STATE_DIRECTORY/${currentConfigTokenFilename}"; + + runnerCredFiles = [ + ".credentials" + ".credentials_rsaparams" + ".runner" + ]; + unconfigureRunner = writeScript "unconfigure" '' + copy_tokens() { + # Copy the configured token file to the state dir and allow the service user to read the file + install --mode=666 ${escapeShellArg cfg.tokenFile} "${newConfigTokenPath}" + # Also copy current file to allow for a diff on the next start + install --mode=600 ${escapeShellArg cfg.tokenFile} "${currentConfigTokenPath}" + } + clean_state() { + find "$STATE_DIRECTORY/" -mindepth 1 -delete + copy_tokens + } + diff_config() { + changed=0 + # Check for module config changes + [[ -f "${currentConfigPath}" ]] \ + && ${pkgs.diffutils}/bin/diff -q '${newConfigPath}' "${currentConfigPath}" >/dev/null 2>&1 \ + || changed=1 + # Also check the content of the token file + [[ -f "${currentConfigTokenPath}" ]] \ + && ${pkgs.diffutils}/bin/diff -q "${currentConfigTokenPath}" ${escapeShellArg cfg.tokenFile} >/dev/null 2>&1 \ + || changed=1 + # If the config has changed, remove old state and copy tokens + if [[ "$changed" -eq 1 ]]; then + echo "Config has changed, removing old runner state." + echo "The old runner will still appear in the GitHub Actions UI." \ + "You have to remove it manually." + clean_state + fi + } + if [[ "${optionalString cfg.ephemeral "1"}" ]]; then + # In ephemeral mode, we always want to start with a clean state + clean_state + elif [[ "$(ls -A "$STATE_DIRECTORY")" ]]; then + # There are state files from a previous run; diff them to decide if we need a new registration + diff_config + else + # The state directory is entirely empty which indicates a first start + copy_tokens + fi + # Always clean workDir + find -H "$WORK_DIRECTORY" -mindepth 1 -delete + ''; + configureRunner = writeScript "configure" '' + if [[ -e "${newConfigTokenPath}" ]]; then + echo "Configuring GitHub Actions Runner" + args=( + --unattended + --disableupdate + --work "$WORK_DIRECTORY" + --url ${escapeShellArg cfg.url} + --labels ${escapeShellArg (concatStringsSep "," cfg.extraLabels)} + --name ${escapeShellArg cfg.name} + ${optionalString cfg.replace "--replace"} + ${optionalString (cfg.runnerGroup != null) "--runnergroup ${escapeShellArg cfg.runnerGroup}"} + ${optionalString cfg.ephemeral "--ephemeral"} + ) + # If the token file contains a PAT (i.e., it starts with "ghp_" or "github_pat_"), we have to use the --pat option, + # if it is not a PAT, we assume it contains a registration token and use the --token option + token=$(<"${newConfigTokenPath}") + if [[ "$token" =~ ^ghp_* ]] || [[ "$token" =~ ^github_pat_* ]]; then + args+=(--pat "$token") + else + args+=(--token "$token") + fi + ${package}/bin/Runner.Listener configure "''${args[@]}" + # Move the automatically created _diag dir to the logs dir + mkdir -p "$STATE_DIRECTORY/_diag" + cp -r "$STATE_DIRECTORY/_diag/." "$LOGS_DIRECTORY/" + rm -rf "$STATE_DIRECTORY/_diag/" + # Cleanup token from config + rm "${newConfigTokenPath}" + # Symlink to new config + ln -s '${newConfigPath}' "${currentConfigPath}" + fi + ''; + setupWorkDir = writeScript "setup-work-dirs" '' + # Link _diag dir + ln -s "$LOGS_DIRECTORY" "$WORK_DIRECTORY/_diag" + + # Link the runner credentials to the work dir + ln -s "$STATE_DIRECTORY"/{${lib.concatStringsSep "," runnerCredFiles}} "$WORK_DIRECTORY/" + ''; + in + map (x: "${x} ${escapeShellArgs [ stateDir workDir logsDir ]}") [ + "+${unconfigureRunner}" # runs as root + configureRunner + setupWorkDir + ]; + + # If running in ephemeral mode, restart the service on-exit (i.e., successful de-registration of the runner) + # to trigger a fresh registration. + Restart = if cfg.ephemeral then "on-success" else "no"; + # If the runner exits with `ReturnCode.RetryableError = 2`, always restart the service: + # https://github.com/actions/runner/blob/40ed7f8/src/Runner.Common/Constants.cs#L146 + RestartForceExitStatus = [ 2 ]; + + # Contains _diag + LogsDirectory = [ systemdDir ]; + # Default RUNNER_ROOT which contains ephemeral Runner data + RuntimeDirectory = [ systemdDir ]; + # Home of persistent runner data, e.g., credentials + StateDirectory = [ systemdDir ]; + StateDirectoryMode = "0700"; + WorkingDirectory = workDir; + + InaccessiblePaths = [ + # Token file path given in the configuration, if visible to the service + "-${cfg.tokenFile}" + # Token file in the state directory + "${stateDir}/${currentConfigTokenFilename}" + ]; + + KillSignal = "SIGINT"; + } + (mkIf (cfg.user != null) { User = cfg.user; }) + cfg.serviceOverrides + ]; +} + From 931c52263285999798405be8a310d73e74df392c Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 16:28:47 -0600 Subject: [PATCH 18/25] Remove lappy host --- home/hosts/lappy/default.nix | 5 ---- hosts/lappy/default.nix | 15 ---------- hosts/lappy/hardware-configuration.nix | 39 -------------------------- 3 files changed, 59 deletions(-) delete mode 100644 home/hosts/lappy/default.nix delete mode 100644 hosts/lappy/default.nix delete mode 100644 hosts/lappy/hardware-configuration.nix diff --git a/home/hosts/lappy/default.nix b/home/hosts/lappy/default.nix deleted file mode 100644 index d8147ea..0000000 --- a/home/hosts/lappy/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ ... }: - -{ - -} diff --git a/hosts/lappy/default.nix b/hosts/lappy/default.nix deleted file mode 100644 index fb9dd7e..0000000 --- a/hosts/lappy/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: - -{ - imports = [ - ./hardware-configuration.nix - ]; - # Bootloader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - boot.loader.efi.efiSysMountPoint = "/boot/efi"; - # Graphics, please - greg.gnome.enable = true; - # Set host name - networking.hostName = "lappy"; -} diff --git a/hosts/lappy/hardware-configuration.nix b/hosts/lappy/hardware-configuration.nix deleted file mode 100644 index 19de254..0000000 --- a/hosts/lappy/hardware-configuration.nix +++ /dev/null @@ -1,39 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod" "rtsx_usb_sdmmc" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/63bcc80e-0501-4aef-bb58-30bb83881055"; - fsType = "ext4"; - }; - - fileSystems."/boot/efi" = - { device = "/dev/disk/by-uuid/C617-B2B1"; - fsType = "vfat"; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/bc4f24a3-5969-4bcb-95f4-f80109e36ebb"; } - ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp7s0.useDHCP = lib.mkDefault true; - # networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true; - - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} From 35de7160ca0b72a2e9754e4bb7de21c31b96cd6c Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 16:30:16 -0600 Subject: [PATCH 19/25] Remove jinja2-cli which is upstream --- overlays/default.nix | 1 - overlays/jinja2-cli.nix | 39 --------------------------------------- 2 files changed, 40 deletions(-) delete mode 100644 overlays/jinja2-cli.nix diff --git a/overlays/default.nix b/overlays/default.nix index e63fb1d..ec7a7a0 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -52,7 +52,6 @@ in rec { pkgs = final.pkgs; }; inject = prev.callPackage ./inject.nix { inherit (final) pkgs; }; - jinja2-cli = prev.python3.pkgs.callPackage ./jinja2-cli.nix {}; libbluray-custom = prev.libbluray.override { withAACS = true; withBDplus = true; diff --git a/overlays/jinja2-cli.nix b/overlays/jinja2-cli.nix deleted file mode 100644 index 4cca67b..0000000 --- a/overlays/jinja2-cli.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - - flake8, - jinja2, - pytestCheckHook, - setuptools, -}: - -buildPythonPackage { - pname = "jinja2-cli"; - version = "0.8.2"; - - src = fetchFromGitHub { - owner = "mattrobenolt"; - repo = "jinja2-cli"; - rev = "0.8.2"; - hash = "sha256-67gYt0nZX+VTVaoSxVXGzbRiXD7EMsVBFWC8wHo+Vw0="; - }; - - propagatedBuildInputs = [ - jinja2 - setuptools - ]; - - checkInputs = [ - flake8 - pytestCheckHook - ]; - - meta = with lib; { - description = "A CLI interface for Jinja2 templates"; - homepage = "https://github.com/mattrobenolt/jinja2-cli"; - license = licenses.bsd2; - maintainers = [ lib.maintainers.greg ]; - }; -} From 98f1740f970c8c2f0f9bf6bb0d880ed5a25a1731 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 16:32:24 -0600 Subject: [PATCH 20/25] Convert to tabs --- hosts/myself/default.nix | 252 ++++++++--------- hosts/myself/hardware-configuration.nix | 76 +++--- hosts/myself/runner.nix | 342 ++++++++++++------------ 3 files changed, 335 insertions(+), 335 deletions(-) diff --git a/hosts/myself/default.nix b/hosts/myself/default.nix index f7b5ea6..a0920c7 100644 --- a/hosts/myself/default.nix +++ b/hosts/myself/default.nix @@ -1,131 +1,131 @@ { config, pkgs, lib, ... }: { - imports = [ - ./hardware-configuration.nix - ]; + imports = [ + ./hardware-configuration.nix + ]; - environment.systemPackages = with pkgs; [ - git - (python3.withPackages (p: with p; [ pip virtualenv ])) - tmux - tree - vim - xonsh - ]; - services = { - openssh.enable = true; - }; - systemd.services = let - def = id: { - enable = true; - ephemeral = false; - extraEnvironment = { - HTTP_PORT_MIN = builtins.toString (8000 + id); - HTTP_PORT_MAX = builtins.toString (8000 + id); - }; - extraLabels = [ "nixos" "isaiah" ]; - extraPackages = with pkgs; [ - config.virtualisation.virtualbox.host.package - curl - gawk - packer - pup - (python3.withPackages (p: with p; [ pip virtualenv ])) - qemu_full - qemu_kvm - xonsh - xorriso - ]; - name = "isaiah-nix-${builtins.toString id}"; - nodeRuntimes = [ "node20" ]; - package = pkgs.github-runner; - replace = true; - runnerGroup = null; - serviceOverrides = { - Group = "vboxusers"; - }; - tokenFile = "/etc/github_token"; - user = "runner"; - url = "https://github.com/greg-hellings/vms"; - workDir = "/home/runner/${builtins.toString id}"; - }; - runner = (import ./runner.nix); - in { - gh-one = (runner { inherit config lib pkgs; svcName = "gh-one"; cfg = def 1; }); - gh-two = (runner { inherit config lib pkgs; svcName = "gh-two"; cfg = def 2; }); - gh-three = (runner { inherit config lib pkgs; svcName = "gh-three"; cfg = def 3; }); - gh-four = (runner { inherit config lib pkgs; svcName = "gh-four"; cfg = def 4; }); - gh-five = (runner { inherit config lib pkgs; svcName = "gh-five"; cfg = def 5; }); - }; - networking = { - hostName = "myself"; - useDHCP = false; - defaultGateway = { - address = " 10.42.1.1"; - interface = "enp38s0"; - }; - interfaces.enp38s0 = { - ipv4.addresses = [ { - address = "10.42.1.6"; - prefixLength = 16; - } ]; - }; - nameservers = [ - "10.42.1.5" - ]; - }; - virtualisation = { - libvirtd = { - enable = false; - onBoot = "ignore"; - }; - virtualbox.host = { - enable = true; - enableExtensionPack = true; - }; - }; - users = { - users = { - runner = { - extraGroups = [ - "kvm" - "vboxusers" - ]; - group = "runner"; - isNormalUser = true; - }; - greg = { - extraGroups = [ - "kvm" - "sudo" - "vboxusers" - "wheel" - ]; - isNormalUser = true; - }; - }; - groups.runner = {}; - }; - system.stateVersion = lib.mkForce "24.05"; - boot = { - extraModprobeConfig = "options kvm_amd nested=1 vboxdrv"; - supportedFilesystems = [ "ntfs" ]; - loader = { - efi = { - canTouchEfiVariables = true; - efiSysMountPoint = "/boot"; - }; - systemd-boot = { - enable = true; - configurationLimit = 10; - }; - }; - }; - nixpkgs.config = { - allowUnfree = true; - permittedInsecurePackages = [ - "nodejs-16.20.2" - ]; - }; + environment.systemPackages = with pkgs; [ + git + (python3.withPackages (p: with p; [ pip virtualenv ])) + tmux + tree + vim + xonsh + ]; + services = { + openssh.enable = true; + }; + systemd.services = let + def = id: { + enable = true; + ephemeral = false; + extraEnvironment = { + HTTP_PORT_MIN = builtins.toString (8000 + id); + HTTP_PORT_MAX = builtins.toString (8000 + id); + }; + extraLabels = [ "nixos" "isaiah" ]; + extraPackages = with pkgs; [ + config.virtualisation.virtualbox.host.package + curl + gawk + packer + pup + (python3.withPackages (p: with p; [ pip virtualenv ])) + qemu_full + qemu_kvm + xonsh + xorriso + ]; + name = "isaiah-nix-${builtins.toString id}"; + nodeRuntimes = [ "node20" ]; + package = pkgs.github-runner; + replace = true; + runnerGroup = null; + serviceOverrides = { + Group = "vboxusers"; + }; + tokenFile = "/etc/github_token"; + user = "runner"; + url = "https://github.com/greg-hellings/vms"; + workDir = "/home/runner/${builtins.toString id}"; + }; + runner = (import ./runner.nix); + in { + gh-one = (runner { inherit config lib pkgs; svcName = "gh-one"; cfg = def 1; }); + gh-two = (runner { inherit config lib pkgs; svcName = "gh-two"; cfg = def 2; }); + gh-three = (runner { inherit config lib pkgs; svcName = "gh-three"; cfg = def 3; }); + gh-four = (runner { inherit config lib pkgs; svcName = "gh-four"; cfg = def 4; }); + gh-five = (runner { inherit config lib pkgs; svcName = "gh-five"; cfg = def 5; }); + }; + networking = { + hostName = "myself"; + useDHCP = false; + defaultGateway = { + address = " 10.42.1.1"; + interface = "enp38s0"; + }; + interfaces.enp38s0 = { + ipv4.addresses = [ { + address = "10.42.1.6"; + prefixLength = 16; + } ]; + }; + nameservers = [ + "10.42.1.5" + ]; + }; + virtualisation = { + libvirtd = { + enable = false; + onBoot = "ignore"; + }; + virtualbox.host = { + enable = true; + enableExtensionPack = true; + }; + }; + users = { + users = { + runner = { + extraGroups = [ + "kvm" + "vboxusers" + ]; + group = "runner"; + isNormalUser = true; + }; + greg = { + extraGroups = [ + "kvm" + "sudo" + "vboxusers" + "wheel" + ]; + isNormalUser = true; + }; + }; + groups.runner = {}; + }; + system.stateVersion = lib.mkForce "24.05"; + boot = { + extraModprobeConfig = "options kvm_amd nested=1 vboxdrv"; + supportedFilesystems = [ "ntfs" ]; + loader = { + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; + }; + systemd-boot = { + enable = true; + configurationLimit = 10; + }; + }; + }; + nixpkgs.config = { + allowUnfree = true; + permittedInsecurePackages = [ + "nodejs-16.20.2" + ]; + }; } diff --git a/hosts/myself/hardware-configuration.nix b/hosts/myself/hardware-configuration.nix index 7a0d889..7d20b31 100644 --- a/hosts/myself/hardware-configuration.nix +++ b/hosts/myself/hardware-configuration.nix @@ -1,51 +1,51 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. { config, lib, pkgs, modulesPath, ... }: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/714744ca-dd9d-4713-b571-c6ccfbf56d79"; - fsType = "btrfs"; - options = [ "subvol=nixos" ]; - }; + fileSystems."/" = + { device = "/dev/disk/by-uuid/714744ca-dd9d-4713-b571-c6ccfbf56d79"; + fsType = "btrfs"; + options = [ "subvol=nixos" ]; + }; - fileSystems."/home" = - { device = "/dev/disk/by-uuid/714744ca-dd9d-4713-b571-c6ccfbf56d79"; - fsType = "btrfs"; - options = [ "subvol=home" ]; - }; + fileSystems."/home" = + { device = "/dev/disk/by-uuid/714744ca-dd9d-4713-b571-c6ccfbf56d79"; + fsType = "btrfs"; + options = [ "subvol=home" ]; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/29E7-E20C"; - fsType = "vfat"; - }; + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/29E7-E20C"; + fsType = "vfat"; + }; - fileSystems."/myvol" = - { device = "/dev/nvme0n1p1"; - fsType = "btrfs"; - }; + fileSystems."/myvol" = + { device = "/dev/nvme0n1p1"; + fsType = "btrfs"; + }; - swapDevices = [ ]; + swapDevices = [ ]; - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp38s0.useDHCP = lib.mkDefault true; - # networking.interfaces.enp39s0.useDHCP = lib.mkDefault true; - # networking.interfaces.enp42s0f3u5u3c2.useDHCP = lib.mkDefault true; + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp38s0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp39s0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp42s0f3u5u3c2.useDHCP = lib.mkDefault true; - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/myself/runner.nix b/hosts/myself/runner.nix index 8578100..fd9b129 100644 --- a/hosts/myself/runner.nix +++ b/hosts/myself/runner.nix @@ -6,13 +6,13 @@ , svcName , systemdDir ? "${svcName}/${cfg.name}" - # %t: Runtime directory root (usually /run); see systemd.unit(5) + # %t: Runtime directory root (usually /run); see systemd.unit(5) , runtimeDir ? "%t/${systemdDir}" - # %S: State directory root (usually /var/lib); see systemd.unit(5) + # %S: State directory root (usually /var/lib); see systemd.unit(5) , stateDir ? "%S/${systemdDir}" - # %L: Log directory root (usually /var/log); see systemd.unit(5) + # %L: Log directory root (usually /var/log); see systemd.unit(5) , logsDir ? "%L/${systemdDir}" - # Name of file stored in service state directory + # Name of file stored in service state directory , currentConfigTokenFilename ? ".current-token" , ... @@ -21,187 +21,187 @@ with lib; let - workDir = if cfg.workDir == null then runtimeDir else cfg.workDir; - package = cfg.package.override { inherit (cfg) nodeRuntimes; }; + workDir = if cfg.workDir == null then runtimeDir else cfg.workDir; + package = cfg.package.override { inherit (cfg) nodeRuntimes; }; in { - description = "GitHub Actions runner"; + description = "GitHub Actions runner"; - wantedBy = [ "multi-user.target" ]; - wants = [ "network-online.target" ]; - after = [ "network.target" "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + wants = [ "network-online.target" ]; + after = [ "network.target" "network-online.target" ]; - environment = { - HOME = workDir; - RUNNER_ROOT = stateDir; - } // cfg.extraEnvironment; + environment = { + HOME = workDir; + RUNNER_ROOT = stateDir; + } // cfg.extraEnvironment; - path = (with pkgs; [ - bash - coreutils - git - gnutar - gzip - ]) ++ [ - config.nix.package - ] ++ cfg.extraPackages; + path = (with pkgs; [ + bash + coreutils + git + gnutar + gzip + ]) ++ [ + config.nix.package + ] ++ cfg.extraPackages; - serviceConfig = mkMerge [ - { - ExecStart = "${package}/bin/Runner.Listener run --startuptype service"; + serviceConfig = mkMerge [ + { + ExecStart = "${package}/bin/Runner.Listener run --startuptype service"; - # Does the following, sequentially: - # - If the module configuration or the token has changed, purge the state directory, - # and create the current and the new token file with the contents of the configured - # token. While both files have the same content, only the later is accessible by - # the service user. - # - Configure the runner using the new token file. When finished, delete it. - # - Set up the directory structure by creating the necessary symlinks. - ExecStartPre = - let - # Wrapper script which expects the full path of the state, working and logs - # directory as arguments. Overrides the respective systemd variables to provide - # unambiguous directory names. This becomes relevant, for example, if the - # caller overrides any of the StateDirectory=, RuntimeDirectory= or LogDirectory= - # to contain more than one directory. This causes systemd to set the respective - # environment variables with the path of all of the given directories, separated - # by a colon. - writeScript = name: lines: pkgs.writeShellScript "${svcName}-${name}.sh" '' - set -euo pipefail + # Does the following, sequentially: + # - If the module configuration or the token has changed, purge the state directory, + # and create the current and the new token file with the contents of the configured + # token. While both files have the same content, only the later is accessible by + # the service user. + # - Configure the runner using the new token file. When finished, delete it. + # - Set up the directory structure by creating the necessary symlinks. + ExecStartPre = + let + # Wrapper script which expects the full path of the state, working and logs + # directory as arguments. Overrides the respective systemd variables to provide + # unambiguous directory names. This becomes relevant, for example, if the + # caller overrides any of the StateDirectory=, RuntimeDirectory= or LogDirectory= + # to contain more than one directory. This causes systemd to set the respective + # environment variables with the path of all of the given directories, separated + # by a colon. + writeScript = name: lines: pkgs.writeShellScript "${svcName}-${name}.sh" '' + set -euo pipefail - STATE_DIRECTORY="$1" - WORK_DIRECTORY="$2" - LOGS_DIRECTORY="$3" + STATE_DIRECTORY="$1" + WORK_DIRECTORY="$2" + LOGS_DIRECTORY="$3" - ${lines} - ''; - runnerRegistrationConfig = getAttrs [ "name" "tokenFile" "url" "runnerGroup" "extraLabels" "ephemeral" "workDir" ] cfg; - newConfigPath = builtins.toFile "${svcName}-config.json" (builtins.toJSON runnerRegistrationConfig); - currentConfigPath = "$STATE_DIRECTORY/.nixos-current-config.json"; - newConfigTokenPath = "$STATE_DIRECTORY/.new-token"; - currentConfigTokenPath = "$STATE_DIRECTORY/${currentConfigTokenFilename}"; + ${lines} + ''; + runnerRegistrationConfig = getAttrs [ "name" "tokenFile" "url" "runnerGroup" "extraLabels" "ephemeral" "workDir" ] cfg; + newConfigPath = builtins.toFile "${svcName}-config.json" (builtins.toJSON runnerRegistrationConfig); + currentConfigPath = "$STATE_DIRECTORY/.nixos-current-config.json"; + newConfigTokenPath = "$STATE_DIRECTORY/.new-token"; + currentConfigTokenPath = "$STATE_DIRECTORY/${currentConfigTokenFilename}"; - runnerCredFiles = [ - ".credentials" - ".credentials_rsaparams" - ".runner" - ]; - unconfigureRunner = writeScript "unconfigure" '' - copy_tokens() { - # Copy the configured token file to the state dir and allow the service user to read the file - install --mode=666 ${escapeShellArg cfg.tokenFile} "${newConfigTokenPath}" - # Also copy current file to allow for a diff on the next start - install --mode=600 ${escapeShellArg cfg.tokenFile} "${currentConfigTokenPath}" - } - clean_state() { - find "$STATE_DIRECTORY/" -mindepth 1 -delete - copy_tokens - } - diff_config() { - changed=0 - # Check for module config changes - [[ -f "${currentConfigPath}" ]] \ - && ${pkgs.diffutils}/bin/diff -q '${newConfigPath}' "${currentConfigPath}" >/dev/null 2>&1 \ - || changed=1 - # Also check the content of the token file - [[ -f "${currentConfigTokenPath}" ]] \ - && ${pkgs.diffutils}/bin/diff -q "${currentConfigTokenPath}" ${escapeShellArg cfg.tokenFile} >/dev/null 2>&1 \ - || changed=1 - # If the config has changed, remove old state and copy tokens - if [[ "$changed" -eq 1 ]]; then - echo "Config has changed, removing old runner state." - echo "The old runner will still appear in the GitHub Actions UI." \ - "You have to remove it manually." - clean_state - fi - } - if [[ "${optionalString cfg.ephemeral "1"}" ]]; then - # In ephemeral mode, we always want to start with a clean state - clean_state - elif [[ "$(ls -A "$STATE_DIRECTORY")" ]]; then - # There are state files from a previous run; diff them to decide if we need a new registration - diff_config - else - # The state directory is entirely empty which indicates a first start - copy_tokens - fi - # Always clean workDir - find -H "$WORK_DIRECTORY" -mindepth 1 -delete - ''; - configureRunner = writeScript "configure" '' - if [[ -e "${newConfigTokenPath}" ]]; then - echo "Configuring GitHub Actions Runner" - args=( - --unattended - --disableupdate - --work "$WORK_DIRECTORY" - --url ${escapeShellArg cfg.url} - --labels ${escapeShellArg (concatStringsSep "," cfg.extraLabels)} - --name ${escapeShellArg cfg.name} - ${optionalString cfg.replace "--replace"} - ${optionalString (cfg.runnerGroup != null) "--runnergroup ${escapeShellArg cfg.runnerGroup}"} - ${optionalString cfg.ephemeral "--ephemeral"} - ) - # If the token file contains a PAT (i.e., it starts with "ghp_" or "github_pat_"), we have to use the --pat option, - # if it is not a PAT, we assume it contains a registration token and use the --token option - token=$(<"${newConfigTokenPath}") - if [[ "$token" =~ ^ghp_* ]] || [[ "$token" =~ ^github_pat_* ]]; then - args+=(--pat "$token") - else - args+=(--token "$token") - fi - ${package}/bin/Runner.Listener configure "''${args[@]}" - # Move the automatically created _diag dir to the logs dir - mkdir -p "$STATE_DIRECTORY/_diag" - cp -r "$STATE_DIRECTORY/_diag/." "$LOGS_DIRECTORY/" - rm -rf "$STATE_DIRECTORY/_diag/" - # Cleanup token from config - rm "${newConfigTokenPath}" - # Symlink to new config - ln -s '${newConfigPath}' "${currentConfigPath}" - fi - ''; - setupWorkDir = writeScript "setup-work-dirs" '' - # Link _diag dir - ln -s "$LOGS_DIRECTORY" "$WORK_DIRECTORY/_diag" + runnerCredFiles = [ + ".credentials" + ".credentials_rsaparams" + ".runner" + ]; + unconfigureRunner = writeScript "unconfigure" '' + copy_tokens() { + # Copy the configured token file to the state dir and allow the service user to read the file + install --mode=666 ${escapeShellArg cfg.tokenFile} "${newConfigTokenPath}" + # Also copy current file to allow for a diff on the next start + install --mode=600 ${escapeShellArg cfg.tokenFile} "${currentConfigTokenPath}" + } + clean_state() { + find "$STATE_DIRECTORY/" -mindepth 1 -delete + copy_tokens + } + diff_config() { + changed=0 + # Check for module config changes + [[ -f "${currentConfigPath}" ]] \ + && ${pkgs.diffutils}/bin/diff -q '${newConfigPath}' "${currentConfigPath}" >/dev/null 2>&1 \ + || changed=1 + # Also check the content of the token file + [[ -f "${currentConfigTokenPath}" ]] \ + && ${pkgs.diffutils}/bin/diff -q "${currentConfigTokenPath}" ${escapeShellArg cfg.tokenFile} >/dev/null 2>&1 \ + || changed=1 + # If the config has changed, remove old state and copy tokens + if [[ "$changed" -eq 1 ]]; then + echo "Config has changed, removing old runner state." + echo "The old runner will still appear in the GitHub Actions UI." \ + "You have to remove it manually." + clean_state + fi + } + if [[ "${optionalString cfg.ephemeral "1"}" ]]; then + # In ephemeral mode, we always want to start with a clean state + clean_state + elif [[ "$(ls -A "$STATE_DIRECTORY")" ]]; then + # There are state files from a previous run; diff them to decide if we need a new registration + diff_config + else + # The state directory is entirely empty which indicates a first start + copy_tokens + fi + # Always clean workDir + find -H "$WORK_DIRECTORY" -mindepth 1 -delete + ''; + configureRunner = writeScript "configure" '' + if [[ -e "${newConfigTokenPath}" ]]; then + echo "Configuring GitHub Actions Runner" + args=( + --unattended + --disableupdate + --work "$WORK_DIRECTORY" + --url ${escapeShellArg cfg.url} + --labels ${escapeShellArg (concatStringsSep "," cfg.extraLabels)} + --name ${escapeShellArg cfg.name} + ${optionalString cfg.replace "--replace"} + ${optionalString (cfg.runnerGroup != null) "--runnergroup ${escapeShellArg cfg.runnerGroup}"} + ${optionalString cfg.ephemeral "--ephemeral"} + ) + # If the token file contains a PAT (i.e., it starts with "ghp_" or "github_pat_"), we have to use the --pat option, + # if it is not a PAT, we assume it contains a registration token and use the --token option + token=$(<"${newConfigTokenPath}") + if [[ "$token" =~ ^ghp_* ]] || [[ "$token" =~ ^github_pat_* ]]; then + args+=(--pat "$token") + else + args+=(--token "$token") + fi + ${package}/bin/Runner.Listener configure "''${args[@]}" + # Move the automatically created _diag dir to the logs dir + mkdir -p "$STATE_DIRECTORY/_diag" + cp -r "$STATE_DIRECTORY/_diag/." "$LOGS_DIRECTORY/" + rm -rf "$STATE_DIRECTORY/_diag/" + # Cleanup token from config + rm "${newConfigTokenPath}" + # Symlink to new config + ln -s '${newConfigPath}' "${currentConfigPath}" + fi + ''; + setupWorkDir = writeScript "setup-work-dirs" '' + # Link _diag dir + ln -s "$LOGS_DIRECTORY" "$WORK_DIRECTORY/_diag" - # Link the runner credentials to the work dir - ln -s "$STATE_DIRECTORY"/{${lib.concatStringsSep "," runnerCredFiles}} "$WORK_DIRECTORY/" - ''; - in - map (x: "${x} ${escapeShellArgs [ stateDir workDir logsDir ]}") [ - "+${unconfigureRunner}" # runs as root - configureRunner - setupWorkDir - ]; + # Link the runner credentials to the work dir + ln -s "$STATE_DIRECTORY"/{${lib.concatStringsSep "," runnerCredFiles}} "$WORK_DIRECTORY/" + ''; + in + map (x: "${x} ${escapeShellArgs [ stateDir workDir logsDir ]}") [ + "+${unconfigureRunner}" # runs as root + configureRunner + setupWorkDir + ]; - # If running in ephemeral mode, restart the service on-exit (i.e., successful de-registration of the runner) - # to trigger a fresh registration. - Restart = if cfg.ephemeral then "on-success" else "no"; - # If the runner exits with `ReturnCode.RetryableError = 2`, always restart the service: - # https://github.com/actions/runner/blob/40ed7f8/src/Runner.Common/Constants.cs#L146 - RestartForceExitStatus = [ 2 ]; + # If running in ephemeral mode, restart the service on-exit (i.e., successful de-registration of the runner) + # to trigger a fresh registration. + Restart = if cfg.ephemeral then "on-success" else "no"; + # If the runner exits with `ReturnCode.RetryableError = 2`, always restart the service: + # https://github.com/actions/runner/blob/40ed7f8/src/Runner.Common/Constants.cs#L146 + RestartForceExitStatus = [ 2 ]; - # Contains _diag - LogsDirectory = [ systemdDir ]; - # Default RUNNER_ROOT which contains ephemeral Runner data - RuntimeDirectory = [ systemdDir ]; - # Home of persistent runner data, e.g., credentials - StateDirectory = [ systemdDir ]; - StateDirectoryMode = "0700"; - WorkingDirectory = workDir; + # Contains _diag + LogsDirectory = [ systemdDir ]; + # Default RUNNER_ROOT which contains ephemeral Runner data + RuntimeDirectory = [ systemdDir ]; + # Home of persistent runner data, e.g., credentials + StateDirectory = [ systemdDir ]; + StateDirectoryMode = "0700"; + WorkingDirectory = workDir; - InaccessiblePaths = [ - # Token file path given in the configuration, if visible to the service - "-${cfg.tokenFile}" - # Token file in the state directory - "${stateDir}/${currentConfigTokenFilename}" - ]; + InaccessiblePaths = [ + # Token file path given in the configuration, if visible to the service + "-${cfg.tokenFile}" + # Token file in the state directory + "${stateDir}/${currentConfigTokenFilename}" + ]; - KillSignal = "SIGINT"; - } - (mkIf (cfg.user != null) { User = cfg.user; }) - cfg.serviceOverrides - ]; + KillSignal = "SIGINT"; + } + (mkIf (cfg.user != null) { User = cfg.user; }) + cfg.serviceOverrides + ]; } From 65c35ae78020f897106c16801985bef9487ec858 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 20:44:53 -0600 Subject: [PATCH 21/25] Add myself --- hosts/myself/default.nix | 25 +---- hosts/myself/git.nix | 120 ++++++++++++++++++++++ hosts/myself/runner.nix | 207 -------------------------------------- secrets/gitlab/cert.age | Bin 0 -> 2816 bytes secrets/gitlab/db.age | 19 ++++ secrets/gitlab/jws.age | 19 ++++ secrets/gitlab/key.age | Bin 0 -> 4280 bytes secrets/gitlab/otp.age | 20 ++++ secrets/gitlab/secret.age | Bin 0 -> 998 bytes secrets/secrets.nix | 19 +++- 10 files changed, 196 insertions(+), 233 deletions(-) create mode 100644 hosts/myself/git.nix delete mode 100644 hosts/myself/runner.nix create mode 100644 secrets/gitlab/cert.age create mode 100644 secrets/gitlab/db.age create mode 100644 secrets/gitlab/jws.age create mode 100644 secrets/gitlab/key.age create mode 100644 secrets/gitlab/otp.age create mode 100644 secrets/gitlab/secret.age diff --git a/hosts/myself/default.nix b/hosts/myself/default.nix index a0920c7..b214b5f 100644 --- a/hosts/myself/default.nix +++ b/hosts/myself/default.nix @@ -1,8 +1,8 @@ { config, pkgs, lib, ... }: - { imports = [ ./hardware-configuration.nix + ./git.nix ]; environment.systemPackages = with pkgs; [ @@ -25,18 +25,6 @@ HTTP_PORT_MAX = builtins.toString (8000 + id); }; extraLabels = [ "nixos" "isaiah" ]; - extraPackages = with pkgs; [ - config.virtualisation.virtualbox.host.package - curl - gawk - packer - pup - (python3.withPackages (p: with p; [ pip virtualenv ])) - qemu_full - qemu_kvm - xonsh - xorriso - ]; name = "isaiah-nix-${builtins.toString id}"; nodeRuntimes = [ "node20" ]; package = pkgs.github-runner; @@ -50,7 +38,7 @@ url = "https://github.com/greg-hellings/vms"; workDir = "/home/runner/${builtins.toString id}"; }; - runner = (import ./runner.nix); + runner = a: {}; in { gh-one = (runner { inherit config lib pkgs; svcName = "gh-one"; cfg = def 1; }); gh-two = (runner { inherit config lib pkgs; svcName = "gh-two"; cfg = def 2; }); @@ -87,14 +75,6 @@ }; users = { users = { - runner = { - extraGroups = [ - "kvm" - "vboxusers" - ]; - group = "runner"; - isNormalUser = true; - }; greg = { extraGroups = [ "kvm" @@ -105,7 +85,6 @@ isNormalUser = true; }; }; - groups.runner = {}; }; system.stateVersion = lib.mkForce "24.05"; boot = { diff --git a/hosts/myself/git.nix b/hosts/myself/git.nix new file mode 100644 index 0000000..802423a --- /dev/null +++ b/hosts/myself/git.nix @@ -0,0 +1,120 @@ +{ config, pkgs, lib, ... }: + +let + extraPackages = with pkgs; [ + config.virtualisation.virtualbox.host.package + curl + gawk + packer + pup + (python3.withPackages (p: with p; [ pip virtualenv ])) + qemu_full + qemu_kvm + xonsh + xorriso + ]; + + secretsList = [ + "secret" + "otp" + "db" + "jws" + ]; + + secretsPaths = { + secret = "/var/lib/secret"; + otp = "/var/lib/otp"; + db = "/var/lib/db"; + jws = "/var/lib/jws"; + key = "/var/lib/registry-key"; + cert = "/var/lib/registry-cert"; + }; + + registryPort = 8001; +in { + age.secrets = { + gitlab-secret.file = ../../secrets/gitlab/secret.age; + gitlab-otp.file = ../../secrets/gitlab/otp.age; + gitlab-db.file = ../../secrets/gitlab/db.age; + gitlab-jws.file = ../../secrets/gitlab/jws.age; + gitlab-key.file = ../../secrets/gitlab/key.age; + gitlab-cert.file = ../../secrets/gitlab/cert.age; + }; + + containers.gitlab = { + autoStart = true; + bindMounts = { + "/var/gitlab/state" = { + hostPath = "/var/lib/gitlab"; + }; + "${secretsPaths.secret}".hostPath = config.age.secrets.gitlab-secret.path; + "${secretsPaths.otp}".hostPath = config.age.secrets.gitlab-otp.path; + "${secretsPaths.db}".hostPath = config.age.secrets.gitlab-db.path; + "${secretsPaths.jws}".hostPath = config.age.secrets.gitlab-jws.path; + "${secretsPaths.key}".hostPath = config.age.secrets.gitlab-key.path; + "${secretsPaths.cert}".hostPath = config.age.secrets.gitlab-cert.path; + }; + privateNetwork = true; + hostAddress = "192.168.200.1"; + localAddress = "192.168.20..2"; + config = { config, pkgs, ... }: { + services = { + gitlab = { + enable = true; + backup = { + keepTime = 288; + startAt = [ "03:00" ]; + }; + host = "10.42.1.6"; # Just for now... + https = false; + initialRootEmail = "greg@thehellings.com"; + initialRootPasswordFile = pkgs.writeText "initialRootPassword" "root_password"; + pages = { + enable = true; + settings.pages-domain = "pages.thehellings.com"; + }; + puma = { + threadsMax = 6; + threadsMin = 2; + workers = 6; + }; + redisUrl = "unix:${config.services.redis.servers.gitlab.unixSocket}"; + registry = { + enable = true; + certFile = secretsPaths.cert; + keyFile = secretsPaths.key; + externalPort = registryPort; + }; + secrets = { + secretFile = secretsPaths.secret; + otpFile = secretsPaths.otp; + dbFile = secretsPaths.db; + jwsFile = secretsPaths.jws; + }; + }; + + postgresql = { + enable = true; + checkConfig = true; + ensureDatabases = [ "gitlab" ]; + ensureUsers = [ { + name = "gitlab"; + ensureDBOwnership = true; + } ]; + settings = { + log_connections = true; + log_statement = "all"; + logging_collector = true; + log_filename = "postgresql.log"; + }; + }; + + redis.servers.gitlab = { + enable = true; + logfile = "/var/log/redis-gitlab.log"; + }; + }; + system.stateVersion = "24.05"; + }; + }; +} diff --git a/hosts/myself/runner.nix b/hosts/myself/runner.nix deleted file mode 100644 index fd9b129..0000000 --- a/hosts/myself/runner.nix +++ /dev/null @@ -1,207 +0,0 @@ -{ config -, lib -, pkgs - -, cfg ? config.services.github-runner -, svcName - -, systemdDir ? "${svcName}/${cfg.name}" - # %t: Runtime directory root (usually /run); see systemd.unit(5) -, runtimeDir ? "%t/${systemdDir}" - # %S: State directory root (usually /var/lib); see systemd.unit(5) -, stateDir ? "%S/${systemdDir}" - # %L: Log directory root (usually /var/log); see systemd.unit(5) -, logsDir ? "%L/${systemdDir}" - # Name of file stored in service state directory -, currentConfigTokenFilename ? ".current-token" - -, ... -}: - -with lib; - -let - workDir = if cfg.workDir == null then runtimeDir else cfg.workDir; - package = cfg.package.override { inherit (cfg) nodeRuntimes; }; -in -{ - description = "GitHub Actions runner"; - - wantedBy = [ "multi-user.target" ]; - wants = [ "network-online.target" ]; - after = [ "network.target" "network-online.target" ]; - - environment = { - HOME = workDir; - RUNNER_ROOT = stateDir; - } // cfg.extraEnvironment; - - path = (with pkgs; [ - bash - coreutils - git - gnutar - gzip - ]) ++ [ - config.nix.package - ] ++ cfg.extraPackages; - - serviceConfig = mkMerge [ - { - ExecStart = "${package}/bin/Runner.Listener run --startuptype service"; - - # Does the following, sequentially: - # - If the module configuration or the token has changed, purge the state directory, - # and create the current and the new token file with the contents of the configured - # token. While both files have the same content, only the later is accessible by - # the service user. - # - Configure the runner using the new token file. When finished, delete it. - # - Set up the directory structure by creating the necessary symlinks. - ExecStartPre = - let - # Wrapper script which expects the full path of the state, working and logs - # directory as arguments. Overrides the respective systemd variables to provide - # unambiguous directory names. This becomes relevant, for example, if the - # caller overrides any of the StateDirectory=, RuntimeDirectory= or LogDirectory= - # to contain more than one directory. This causes systemd to set the respective - # environment variables with the path of all of the given directories, separated - # by a colon. - writeScript = name: lines: pkgs.writeShellScript "${svcName}-${name}.sh" '' - set -euo pipefail - - STATE_DIRECTORY="$1" - WORK_DIRECTORY="$2" - LOGS_DIRECTORY="$3" - - ${lines} - ''; - runnerRegistrationConfig = getAttrs [ "name" "tokenFile" "url" "runnerGroup" "extraLabels" "ephemeral" "workDir" ] cfg; - newConfigPath = builtins.toFile "${svcName}-config.json" (builtins.toJSON runnerRegistrationConfig); - currentConfigPath = "$STATE_DIRECTORY/.nixos-current-config.json"; - newConfigTokenPath = "$STATE_DIRECTORY/.new-token"; - currentConfigTokenPath = "$STATE_DIRECTORY/${currentConfigTokenFilename}"; - - runnerCredFiles = [ - ".credentials" - ".credentials_rsaparams" - ".runner" - ]; - unconfigureRunner = writeScript "unconfigure" '' - copy_tokens() { - # Copy the configured token file to the state dir and allow the service user to read the file - install --mode=666 ${escapeShellArg cfg.tokenFile} "${newConfigTokenPath}" - # Also copy current file to allow for a diff on the next start - install --mode=600 ${escapeShellArg cfg.tokenFile} "${currentConfigTokenPath}" - } - clean_state() { - find "$STATE_DIRECTORY/" -mindepth 1 -delete - copy_tokens - } - diff_config() { - changed=0 - # Check for module config changes - [[ -f "${currentConfigPath}" ]] \ - && ${pkgs.diffutils}/bin/diff -q '${newConfigPath}' "${currentConfigPath}" >/dev/null 2>&1 \ - || changed=1 - # Also check the content of the token file - [[ -f "${currentConfigTokenPath}" ]] \ - && ${pkgs.diffutils}/bin/diff -q "${currentConfigTokenPath}" ${escapeShellArg cfg.tokenFile} >/dev/null 2>&1 \ - || changed=1 - # If the config has changed, remove old state and copy tokens - if [[ "$changed" -eq 1 ]]; then - echo "Config has changed, removing old runner state." - echo "The old runner will still appear in the GitHub Actions UI." \ - "You have to remove it manually." - clean_state - fi - } - if [[ "${optionalString cfg.ephemeral "1"}" ]]; then - # In ephemeral mode, we always want to start with a clean state - clean_state - elif [[ "$(ls -A "$STATE_DIRECTORY")" ]]; then - # There are state files from a previous run; diff them to decide if we need a new registration - diff_config - else - # The state directory is entirely empty which indicates a first start - copy_tokens - fi - # Always clean workDir - find -H "$WORK_DIRECTORY" -mindepth 1 -delete - ''; - configureRunner = writeScript "configure" '' - if [[ -e "${newConfigTokenPath}" ]]; then - echo "Configuring GitHub Actions Runner" - args=( - --unattended - --disableupdate - --work "$WORK_DIRECTORY" - --url ${escapeShellArg cfg.url} - --labels ${escapeShellArg (concatStringsSep "," cfg.extraLabels)} - --name ${escapeShellArg cfg.name} - ${optionalString cfg.replace "--replace"} - ${optionalString (cfg.runnerGroup != null) "--runnergroup ${escapeShellArg cfg.runnerGroup}"} - ${optionalString cfg.ephemeral "--ephemeral"} - ) - # If the token file contains a PAT (i.e., it starts with "ghp_" or "github_pat_"), we have to use the --pat option, - # if it is not a PAT, we assume it contains a registration token and use the --token option - token=$(<"${newConfigTokenPath}") - if [[ "$token" =~ ^ghp_* ]] || [[ "$token" =~ ^github_pat_* ]]; then - args+=(--pat "$token") - else - args+=(--token "$token") - fi - ${package}/bin/Runner.Listener configure "''${args[@]}" - # Move the automatically created _diag dir to the logs dir - mkdir -p "$STATE_DIRECTORY/_diag" - cp -r "$STATE_DIRECTORY/_diag/." "$LOGS_DIRECTORY/" - rm -rf "$STATE_DIRECTORY/_diag/" - # Cleanup token from config - rm "${newConfigTokenPath}" - # Symlink to new config - ln -s '${newConfigPath}' "${currentConfigPath}" - fi - ''; - setupWorkDir = writeScript "setup-work-dirs" '' - # Link _diag dir - ln -s "$LOGS_DIRECTORY" "$WORK_DIRECTORY/_diag" - - # Link the runner credentials to the work dir - ln -s "$STATE_DIRECTORY"/{${lib.concatStringsSep "," runnerCredFiles}} "$WORK_DIRECTORY/" - ''; - in - map (x: "${x} ${escapeShellArgs [ stateDir workDir logsDir ]}") [ - "+${unconfigureRunner}" # runs as root - configureRunner - setupWorkDir - ]; - - # If running in ephemeral mode, restart the service on-exit (i.e., successful de-registration of the runner) - # to trigger a fresh registration. - Restart = if cfg.ephemeral then "on-success" else "no"; - # If the runner exits with `ReturnCode.RetryableError = 2`, always restart the service: - # https://github.com/actions/runner/blob/40ed7f8/src/Runner.Common/Constants.cs#L146 - RestartForceExitStatus = [ 2 ]; - - # Contains _diag - LogsDirectory = [ systemdDir ]; - # Default RUNNER_ROOT which contains ephemeral Runner data - RuntimeDirectory = [ systemdDir ]; - # Home of persistent runner data, e.g., credentials - StateDirectory = [ systemdDir ]; - StateDirectoryMode = "0700"; - WorkingDirectory = workDir; - - InaccessiblePaths = [ - # Token file path given in the configuration, if visible to the service - "-${cfg.tokenFile}" - # Token file in the state directory - "${stateDir}/${currentConfigTokenFilename}" - ]; - - KillSignal = "SIGINT"; - } - (mkIf (cfg.user != null) { User = cfg.user; }) - cfg.serviceOverrides - ]; -} - diff --git a/secrets/gitlab/cert.age b/secrets/gitlab/cert.age new file mode 100644 index 0000000000000000000000000000000000000000..80a6d0f11ad64e49549080233f2cff44b78a6914 GIT binary patch literal 2816 zcmZY6`9IVN1HkbRYN9Q*m0G*n!gd?*AnFt6G*8(IdW8_e>6u<#dfu^rDJ)Hz4F~FK+ zIG3g%qfuNVMocymSjl>+8EZ^7KvmIjJx<183&s2>8lEZAfy{|aoJr3h)4~)%cr=?# zC#!L4LPVf}s#J#SERi^N7*ni7QqUsq*BVi6F$x)ACRHpA3Z$VU{X$_PhCYxTBNszS zfD{@4kc>DciAUk%B@~k|CORCXAd4&n9Y?LupxL1jRE!8u0>nlnJ=DmNTbLp}iXRY& zml4qx-v51*B}W=93~-`Z2IEo5B$~y{;2SV1CW(zvU=(m1EXJ6OKq}<~6&z!NQ)6&Q zP?AWFqAIik07GHJOms343KQwVjAkm6fQZ4fP*Hv|j!qvD%Gb;O*9Pp|1}HW`L|Q?j zP5|DDW`Psqxqw&$1(_qnn4~0hOn4MbrIQB=XcV3qKy!m=ST@qHD3@KO@LB(I)aESNuq&3HiNrZ+KY-1v2(9=hf5p=f$a+ea@+8W(#U@CtkSD&JEbqOj6n3brbi1p7rKH zBSaYu*1( zR=PE<%^6sA=ZNE*y7?dd7EbjGZ>>*!(PAr`a&58+$&gg3&%Y1EWhVUnhAR^vLm#J`XyeG_&FCztz&u9eZ<+_hfyi#~+b?Ud8Z%|f4> zdm2~&oSdduaS66l3f#U347F74_N)lb-ci1__35z9m$T>M%<=T?6+1gT`ZlWqC{;gp z3o!fqSGX39HuU<&k2=TaZF4UYM?I|R+T>k3HlKF-QeQpxPekI9dEkWbo@8P?deNF& z+z4A*SN1)4+5JZfPoTob=T)=+WJt$>+6VcftP)6_cgLY&`N~`UM;WP4ulnzDk{ODH zp~tzkTYPkmv%dFdl{vm5V5mHX(S)}fvN{qsF<^C~@6m^ow9O+vtVUJ-ej%~s zddX+Fi`}T7xDT}_ET!g2|;GfcW^P?Ev}(!_E?ZsHgcq*9)m7Ulb?X( zb$bLiY-2rooI2<*@M(795riuOM3LDwiAchNrtwCM;8|Un!yN0U$Wx!$ z)^HuZ{q3$DjAL3WXF*z)nDY4k*|Oq)j;;GwRrleoaLDSDbLLS|3RHBm^&FnF#^;#4 zsGvG*%S7t0g!Pf^s=UP-wZ!aSd4c+Bq6XXZ`ryL>1NPCykk?*p+dPlq?$XC&@sz!X zQ67wkb`_N2jxOelkxl&%yicM)#Huse(y^Gj)pN09El;mzrpmh7>fB}+l@ZnZOc(!I z5rhv+wht!B3BlVw&?Z;x4CeR{O{(QN?IBhh>l|wQImlk!+VSMj}-!4CY z-E}-R?P$xO4x7|J*t2O3r2{baa4mJSiN&|I&(1&b zIN0fAXa4@BC$`+W%LF>M^Wfa(o$y9ooW+)JB>BY(dZi`P219;;XwhQ|36{EVu>8hb z5VjM;B|dq8DEhu$-N5)bF-6tQBLwWPuQX<++-ai@*A;37Bl}G<()}jXir59A|Z=!MLVPSX6hw zroOyWG5ujl*uVzRy@tIXS{I}e-Q@vTJfy0Syy3ii*&*0TZEo|sO6G<~$jjYr{?-N? zLQmuA%FT6!xeEiYZr;e76kK`>8}{k^^296sR_)?kuEXCe%d3R_#tXsDpIY>Ht8+YF zd%t@T0>XZF?{<*H?k=U*$L{rxXz9$%$mwfe^K#?6K<(NqcSq;1ILxN};5E3H4A1}R zBc8cdwzhp~>*d9t8VJvt9@K5DGN0|=lJsJ=D63}S)4K0C_U_D_zg@ga*3Zpi`F=M8 zYwgkAGb46cYHgmgt!zZGyWr0&iREm`B9ZHnUH@6J0_S){B>&9I2G1;PFODlB-nCs> ze~;D9V&=`1Mtf-_NxjzhyiS*8zCMk~IPYpgq4vsVkg&yY_@!6&Oy;utUMWs-$kGC!m3QKKbG3Zk lIA^2v+e_1+Z-Od*+qf-v`}pcwBj}9%@8Be ssh-ed25519 mOmPfg 5aqdEg4OJNg6Pw10HFpFKoRWZLvaiqsh0UWW2N5ql1Y +JfnQad6DgEqvRT7GJpjg+kFjgkz9P/Dc+rE3azeArOs +-> ssh-ed25519 YJiRbw R7DVCK0kirWs/OhPg4zUGqLMdO1usfDZNnmY5jndSQM +D47/wwjjRuzVSBdd5BG6nL4s1TtAGCBvrdGuwanyV68 +-> ssh-ed25519 Nl/5yA JkVW7aHVpsqPKY9wPoxS2MNCfmYv20Sk+844sNGjQxM +VojCPfa0dUGph/PJjocKVIGC1k9XYLiNfv7CPJyM8BY +-> ssh-ed25519 GdLgCQ WULneYbP+M1DrFX5JLVeCtkHycxtFBm9/x+oUXTu7Uk +2ez2hdvzXfhOePZsVzrVL+9XanmhyqcK/XkLdV43x68 +-> ssh-ed25519 tOH/HQ hHa+OtsIBPtYkDChXg2vhWhYdSqruooaWiPbdk9RgVQ +Ku6StrR8ZICUQEnXeZZ6gXAQp49tbluPKQIAa3KfuCc +-> ssh-ed25519 FpzvfQ DhdgZQSDKgmMmcitO4dHMJAbe+c67tfd8gDScp4Tvgc +h8PAX2B9t6VcqG9W1b0Z5moxD1b9P7Qgex6+ousoi3E +-> ssh-ed25519 kdPvzQ sSSfEIPPvA99/ziU676wPt9uLrHBIXECTuUmszYcZSk +TcssCYpN5wQTPCay8/gOeot1f6FyUK7sEBkhdwPIG3g +-> !Zmpi]O-grease KVI iU\+ he'#C +2O3D +--- Z3aUd7U6jlt1NiGY2oCzZKeD26gsiqB/Ysr+wRp7Y5E +T*#X )>D=>G|ZO2 `Fퟚ`f̎Z3+g=$ҫj1YԌxumqƅ \ No newline at end of file diff --git a/secrets/gitlab/jws.age b/secrets/gitlab/jws.age new file mode 100644 index 0000000..81cef5b --- /dev/null +++ b/secrets/gitlab/jws.age @@ -0,0 +1,19 @@ +age-encryption.org/v1 +-> ssh-ed25519 mOmPfg kNX5PaaipRVvjzMrXxjhlTSJD550eSGoa5zDbI4zQVc +VAWoBCGuVqKgDw7yEi0YkeIlO+YwdxFoEdLVPXO9y0s +-> ssh-ed25519 YJiRbw 9r/cKqXdhpXcDL9S8CDRGLD65Y8yopFGiMmWILtbXG4 +uifiAw7UCRkHc/uvwEnlzc7+2mKuLCYiAMREHzXdWZs +-> ssh-ed25519 Nl/5yA eVSbQEyXXYEBBiMenLZ6uEP/NNlB4pW4GYMaww6KJTg +8L2cYg6eYSFHAeY1jgk3GPDOYQYHsRcSXZDMxDW0hBQ +-> ssh-ed25519 GdLgCQ HDciLBHQg0Nhd8/QVfgY/6aOEfHdWMs2CwWjieKgIBM +/U/EP99DxhcMrhIa9ggQJSczTQCpDf2mzDJI0uXUYZo +-> ssh-ed25519 tOH/HQ ZHmlo/urIFxi8zShOTUqJRuVpFm9RdNtDi6+Fc79dE0 +RC+z3vkORLSFETGPoSbaml7kfA5GG/NK1IwNwn2XD0c +-> ssh-ed25519 FpzvfQ kQHudI+8AYPU9gWEp5rR5UeBoppKtdNONPgNpAGM0mo +025maJUyvy7QQpvv+eW7F0rOBMF3BBrwYHHnvwz67dk +-> ssh-ed25519 kdPvzQ lUYVBtzSufAD2XZmIH3J788y9oTunIFSNjKIOjuFCBM +bvW8hq+4iFgTpDf0zBIcxWwKMq6xkdKgnjm8q3YYYDk +-> NJL_l7-grease y4c : +kVPvEEpHy8iy//hr42NPPa1DWxgrk2+iAy3KqTZ4oQ +--- /muOWusu9T+JEtIWyMOb78bya/kLZ7AJ9VTNJeZrKLw +a{(F!&h,Ncy!66-<˃6tqi3 *WtXi|r?E'42YJ \ No newline at end of file diff --git a/secrets/gitlab/key.age b/secrets/gitlab/key.age new file mode 100644 index 0000000000000000000000000000000000000000..38d0f7e0aec5b3f2a6e656e98e69fcd39feba649 GIT binary patch literal 4280 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 NLVt+vW%HL2>wiW@l|BFf literal 0 HcmV?d00001 diff --git a/secrets/gitlab/otp.age b/secrets/gitlab/otp.age new file mode 100644 index 0000000..6f3c7d3 --- /dev/null +++ b/secrets/gitlab/otp.age @@ -0,0 +1,20 @@ +age-encryption.org/v1 +-> ssh-ed25519 mOmPfg LVJSQ+R7PMpUpKdscHK4alpoivahuvF6hISGdY7gujU +XsmhzzTlEIWo8trvWg7wL6uI6bnHmc71tS8OIz61Xus +-> ssh-ed25519 YJiRbw Nl46Ujkg1RQDQ3jo6MoOWvOuiAce2Vhmk43wDiKC03M +Si/YWv3MSpQAwiD+IQWUD8eWPsWwI19ojsi46+ENr7Y +-> ssh-ed25519 Nl/5yA XDT/tyZ+W5dT1VkBNQcpYMtebHc/37K0hY6kMrtOzl0 +ugulqsgQ5Wp9t7nwhbYvdmL/9YAkpiTF0hJSVPiOvEA +-> ssh-ed25519 GdLgCQ hlBfw0CRRL+d7g5Xxp9zjOVGkO5wy8PAA7ukMCAb5Vg +MDrDCysJ3LJ7o0y/bXkxnx41Bq6Wr0EYEpqeBkbtbPc +-> ssh-ed25519 tOH/HQ 8QGmTG8sbWch2xOFqf9SfLiMY8hLmwIfWMOuHUg+AE4 +3cMeP+NMohzZ8ecMqKEvOo3vta+m1aUtQPBg+jCjyQs +-> ssh-ed25519 FpzvfQ cCNXN61RMnEqcGw199t2xZHug3qVrdtaSkbnqO4Onx8 +MfJHCpsMULqxj2/NSJob24uhFZR0ZhbIh1Arncs9bPw +-> ssh-ed25519 kdPvzQ SDan5OS6ZlZ6+btBx/nDwrPt1kAucMDVZZNlYnAFYA4 +cW6PL2fA8xazBvEe7SjW14o8R4djmCDmtuU8Z1+AEGw +-> }d^ +l78JedCUzpJH0PazQTE3FhpXmW39G5W78avwFQ +--- OvRr3P4ypXczMWZTi7HrsbPEz17jPYAS/k+XScuzEJM +v)WHr/w% +3+rǫK/ᅪ*^{:2dbXCd aQ( +7"|L43E=?t߁ \ No newline at end of file diff --git a/secrets/gitlab/secret.age b/secrets/gitlab/secret.age new file mode 100644 index 0000000000000000000000000000000000000000..19f0a957370c323802a1982d9aae416dbde8c885 GIT binary patch literal 998 zcmZY8y$j=X90qU~mx9yXqTG;09AdA@uSuIA2x*hFd1>0TP0|EG^ZrZHq-oxo#9Iyr zCkF=?2M0mW%|#bapSDmrENPenLt z@WJp^q%7gk_W()aG?K2-&(g7!B ztAWCE;J9y`Oe6?Nv;4$zVgOrJ+C_#1S!qd@fOSZY^37Y#6r-(kL0Y}*#k>Im(eo~Z z1PM{q!3nnSt9rSqR$D?*-F%IrdO2t;Y01RA6|MuL2IgjZwtID&t@IAsOt$r$isvNx zJT0mJY07a#b__BXdO3{&GqWd(wsDw1@oUs}X4rwM$mYy)98*GDL+wx)OnFtmI%OfK ziK5j(H*GUvCm!p?3H5?Fr6!!3GNKgisM~A{PY&lQl9Lhc1G%Hm!YtDhA@_{AZu66k z5={>NCbz7l-~t2Vx7q;P=ey9^aUn>Z-D2*rd;u1acTKe-0NR=unUA#7tyZm< zqos-%@!mDs6bg*67F2s-d)V~k^)+W77>!;nEM;b`B{TJ|O=?-(MIpPH@xl>^SmII^ zU{iB#GUWA^Cm3=;$c1SNMdnuH^S%jGL`n-h1oD`c>|zeF(pKFrQfb@Zav+^cYSj_l z%ys+%mV>oXK)If^eUpv!Gu+5_a&T&L7qKhcsS1Xq0m+J~j$V7X`N_oFG`)&=drDJF zvWZcsV}*iML4)h#$_jLP(kINt$50rub{WOVKpF|e7#6-=`U4(Y?vEFuS#K%h2z6U;migXGR+bpEM>wu#GG4@oN{laJ z9|yG@ERJv;&#p5X4iUm*KxPIxo`d=PbWSQ=I_Zl8GtR;!@FikpQC#W@<~CvmAASCW zY=3-L?w)JzJ@d + "gitlab/key.age".publicKeys = everyone; + "gitlab/cert.age".publicKeys = everyone; } From bc60b112e331374c838d7889521ce74890dc25be Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Wed, 13 Dec 2023 02:48:11 +0000 Subject: [PATCH 22/25] Re-encrypt files for everyone --- secrets/3proxy.age | 55 +++++++++--------------------- secrets/drone.age | Bin 2341 -> 1037 bytes secrets/jude-forgejo-runner.age | 32 ++++++++--------- secrets/linode-forgejo-runner.age | Bin 2241 -> 865 bytes secrets/matrix.age | Bin 2236 -> 910 bytes secrets/nextcloudadmin.age | 53 +++++++++------------------- 6 files changed, 49 insertions(+), 91 deletions(-) diff --git a/secrets/3proxy.age b/secrets/3proxy.age index 42899d5..7ff75ca 100644 --- a/secrets/3proxy.age +++ b/secrets/3proxy.age @@ -1,39 +1,18 @@ age-encryption.org/v1 --> ssh-ed25519 mOmPfg 7dHhR103gbtPGP5RAvVKTl4Vb+sLW7H9bNMmQKbnhhY -zDOsVVDSCeq2uwYnzmbVgzWoZmPNNiUXKqGHTMSGWL4 --> ssh-ed25519 YJiRbw DnhzgnFZ7BxWFWeuLWUm8FtoPIGV5/HPXioKAnsUYQA -6sUPzEo2CkswK67sGdUtWsFoQMviC2dEMJjribIuiQs --> ssh-ed25519 Nl/5yA qFQufKwNg+7CnY2xrQ2gah9iViODV+WJpZRUrFvbSm0 -Tin2uwflX1DCQOPdPBWtnbIyQ3tXno4o6CfQxGx2ntc --> ssh-rsa FS7DnA -KdOiF1ARa+gGiz3SO6Frp02otEsMK4P3Re/ZCzDmcXC92AkzVvmVNCKGa2s6aTWd -PYiV7Xl0J6NAaOsmCKL+o7wh1949puueGzGniKT2AewoJBXcS3qiv54vs8uLxUEp -Flu/3fugJzYpEFpYr2UpYUOb/TxO7dRbJUYwJ4Rj7O6BmCTr8xtOZ7HFb05UsWuD -GKC2pfDaFcwq5W9+o8r7Cofj501ZZmntiAzwXcKp0rpwAnnTrrDRQYE3kPvaDLOI -vbud2enX5ZXJp9XUiXKdcQmdL1YpFXUii3N0lNjx76vx7dTsjW3hCMxcA+SN+j+/ -97yYQ81Be5uF8piqjjCIA5KkZoSZAIW3siaYn9sF/ApSvL6ElWxkyzTUgkAYqBol -+4aFUVNfmj0afpQv+D/YuRLQC+E2383gLahhhH7N1HJXHkgUWvIDcZvkNZfyUUMu -RqRKfGWqaxPVMpA2zB5Tpv+w0KFKYyeuXh934LkgblG5350rr3M2xMMGXJiHIasQ -jKzsgPjnYN9X53LrcaMJP3EeC520l3kRXeJ9c10AN5EfHIJujUv0CMbqwhHG6VRv -2cUMcGPksqeYNODYM1bKqcptho2W+d2G0D0sfyz82AvcGMb7x7XhAmDxz7c4Ksql -ROPdQLv9uWzzQBt+CA+N2T3an4ZT4bpWVrjDtexoGzqbraFszYRAMIqtfov2ZFgr -AWjh3zFkJbuSRhcRrflsiS5ClLdrdAVPYyp2vKKBYU/vEr8AwubU/+7Rb7lmq5+n -lR0CJZizE+kbuj8zQ7x25vUp25OhrLIMbyGbHODxOdy1v8xewu5Gs35wKmt6rdSv -2ne8leoJa1H+RIrIlPKmOVP05aYamxXCHIjSxZVWynnD+3Uax2AQlMLaokEk/jtJ -4f+L10B6mKptoTUUWheBq+3NkphWl4ej1EUkYtzmYD+GBp9KSM5eiO10obIgDAza -CgF+dKsYyn8cNU2rXxYlPA+1hLz3fbrr/srKnme0NSUQlCWiF+pupdt08lOSggVJ -DGWfw6j/5sI3bjPlhmRcb0C4PJMuGy4rxjVi/znx2RHH1/4d5n5KpRY9ikUxcnyI -N2DFxbs/L52VB+37n3DF0b982VTM34ZapC4TxgrVjywJEIujiGUZsnLUcY5QiRJ6 -C2St2zHW63fw5rUJCy9Cwl2fYk+mtJSn8QqPP/gFg9wYR68t/Cq8+mfv9ZAFD8V8 -FThx0Yf32wdk+ZvcQt2YwNoWVZyD101czMTtOltpr6AZMPd51XfP4KdAD7NRNPTw -bsxHqysYbWs4jAdPtvw3xpeDf4aCQPth61O/sTllsNwiyFreeTbNH25ulbR5u4HS -0vDG9tBmWn3s33rsmwHJEw --> ssh-ed25519 FpzvfQ Iu9NXPmEQNez/+2zV4I+G86R18mpNJbnlUhrVz58xzc -YvBbOwgIVJxBFQlBs64svFlCMhl5bG5rppcw2pxWr+Y --> ssh-ed25519 GdLgCQ wL2SvqLOK8pBRHvddI9E+9uUDD+XrWllaWuIiVY1RiE -gZX1zmLKq4k51Idn0zbtJmTO3FTrYoy1riUYCWDUB+k --> #u'<-grease -xGK2+VHotiHbAVj0MTJZYJeUWiSAnrwT1kHFWmuTizdXnPE8Moqf6HVqiaXW//ST -hLI ---- LBYSsJvCyztZSv+T+xGxQLmmwjwP0Neh0u8F59i9D1c -(5-, )N! vyk9#~i{i OGf~lp%y-+R|gK=8 \ No newline at end of file +-> ssh-ed25519 mOmPfg wYQm1xWPg/9CpYrzCgSepo7qars927Ry7Cqc09SiKE4 +UZ/rWeYZpim/EdMRoiAJ/HZ+V9qBAzfhr0dT286AUe4 +-> ssh-ed25519 YJiRbw iMJM0ZgLqfsK1lb4cfYrJ35YG2FOBbESKIKcnkaZj3o +q+Oe4ETkz2YGWY9ErKv8V6fpf8MMqk8CQZYULyJ0dqc +-> ssh-ed25519 Nl/5yA BWSSk+6j0MchzjRhAC+n/qT9cBhEDE5py61u+tepFXc +F6jQ0a2dqQ04MfbWg2n8kYpnywhwMf7b6jNZd1NvK+o +-> ssh-ed25519 tOH/HQ vJeRDfdSU1tUdnraTfILShhSfNssy/Jl38v+2CuHBic +C0l68idAEhRtE9JAUUYnwrUJGkUhk7M3uSBcaZtNhVM +-> ssh-ed25519 FpzvfQ lBuEmpEPU6jlSc/vM3oKAIDzEFOZsCquSSWf6SUlLF4 +cT91YDNhz2acbP1aj0h+aEeDcrCWW/3VFvc3uU+McLo +-> ssh-ed25519 GdLgCQ ALxyARNR0u3nEcsQjQMxBHQfKyIq61GP4YaHNna5d3I +cSvubqMPbUi5lXU2fn8MJGkX8QypeRhF3mdnVY6AMtM +-> W\$-grease Y0S- 8#{ dPD?DD +h7K0QtwCEDifgwC+OdkdGMzXDzHMBF4FvnZV/3ynjbwjtnDB/tmAxKkOrMqZk9RE +NlchUimmovNt6pFUbN3W9FO6fHTphxXNWbFUzQSFnA +--- 4f/FmwItCPO31I6HXNaASaOuq/2Gq3X7OSVi14IB25g + e}Bn-_d;#倝Iuߦ,ہ5hHܧ9g~AU \ No newline at end of file diff --git a/secrets/drone.age b/secrets/drone.age index a315d43cce0445b68e1fb5a4feeb3fd0a2a89b1d..366f8c5dd6978b69e86e834991aac38502954a84 100644 GIT binary patch literal 1037 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 ssh-ed25519 mOmPfg 1Q/zfHlucVlB8FkxpOSYnWgFBJre3KeW+uANvUC/PFU -/uuW2lV2SwdekZPeJsCXK4T+msMtBFVio5fvFPOlcCI --> ssh-ed25519 YJiRbw 4s8W7hOd8/kxQ4lImUYmF0DhXCuUZeCWXE+ueAFRbzg -el12BcxbsdyDHHalcucjqZz/Hzegg1J+Nvr0BFXXpu8 --> ssh-ed25519 Nl/5yA CP6ofzQfDKGGv2yFhjBx58xHPOaTazZ0jW0R6WXRiX8 -+jOI7EIa0O1qh4ARyctAr8NHvp8Y8HSkA9tT8ybNrUg --> ssh-ed25519 tOH/HQ oI1ltqtnlvl5WUrebrdy8LErHleiNHQJVc9FXuUwZ28 -FNeE2F6tM6CWXiFwJnguL/0BGMz1oejyV+vX25UN3cY --> ssh-ed25519 FpzvfQ XeYdcSTqUtY6mNwzZ9vfohJ/4y17OdoaYCNpGZxWrjw -3qA8Wsik3/JH+JVOr8T9ue2Y9wDzwrf6rWsfwbGTJAE --> ssh-ed25519 GdLgCQ dAfetOmfUR4G4qcS4mjw2Z1h0iFt22Yh4GioqpJpimo -HQ5auu9P454fqMgCeYu5ynMXqyM35kvzlK4DFozhcC0 --> FilBs@/-grease %U4V^CDH 6'KK:"` -dirZXZvJaCxTTtTT ---- qvxgsWakIV8/n+LxUXw9WQ1nkKEfEBRv6oBSsc6KFJ4 -DpY֤ӜIp)>N dՐr~x'`~+UWF $.2%9>ʺ ssh-ed25519 mOmPfg 4WhwP5gDk2tjj0W0YAwpgo6yn9ig2lGukhv3LM3IeSc +5I4brmY5lTXNv43ohMROVW30qvj33IkuzG8tm5I3oNU +-> ssh-ed25519 YJiRbw MgFFdEwDxkZMocvYDx5Fiql/c+ZT3ElaZNgBTG1Ctlw +lXVO2rdISAF+QJRyigk925K4GLqiWUqndTbVdZAUQF4 +-> ssh-ed25519 Nl/5yA ZnABfB59BfmT7Tf2mpYOtMGBy0kAhv6GgzganTHtQVg +0M3fFjBeHY0dM+YRbj0E6kqRfncorkrqzyoooR7cHWE +-> ssh-ed25519 tOH/HQ B+P+JmM7ZmkNaRFMnIWvc0BPPZ3r2j/N/R/MWJan4Fk +pm/NZV2SLayURtYuSzwnnMAVm+fFmi3Y5UEa0DnhNS4 +-> ssh-ed25519 FpzvfQ p8N0lVcx3qyE8K/GzLDEKcIY4BErVPRmGACclUD9WBM +xDWM+aOVaEqd4Onu2J7qoC+Xfiq0F0d382a594vYjLQ +-> ssh-ed25519 GdLgCQ s5e2aQRUW2xCSeb194DoXT8R4FlprhTBDIg05/swrhg +xg9VbEDeqtDhMramuvZGHqMbSjW8QiYk+HOz1MI/zsc +-> Z@6o-grease Y1 chNk\EF$ U_ p'^l" +LA2u/iguBAFxIohi3qcukBrR9kMZz+WjtXZpNOlMT9m+fPiE4Mjq2Gl4RfJkQPA +--- A3RWbMSCfD74XSNLxzDwohw0B67Lstuei77vtpQV5QU +;3)Jtd5kKpt@o6(!5ߠ2wo~o SJcBaNt-n9XeQ#n1h$4Ro;8HEtRu6O?Jp6!8f4FZLXy7Q-0x6NKB}nM^loC z&@4wgXIImCT`>4kFpV`Gi!x{DP3Rz~U*6RY+t@f=;Y-Cx<08873bAZioXZexPbXe5 ztI5RLIx#+;C_>?oWvD}Zzc2W__QMTe#??fw-NIEsqYbEVRG7dD| ztXXT2bq_*K!8TKA1mWT;r$z-7qz3{LmY_h5OQ!23>6V4D!sgyxZG9fQK!-J4@V#({ zG9AAiIC41}ndS89K+RVZMc1xvPpXAsP4=b-5&Ps)wzVsYM@F3RmxHiFR_pz!9cfW7 zj*6r=h1^ME*8cC?#+O1yhuv23m)9~ORE4GIpbU4Kb(rAt*5#|R>j`ExKUdOl$f5=k zd`ksDKCbEBXV`T-VF6N7r(SYb#6~fkWI?H_kZ)x~{;%!vb{f{eZ2-J|e16M*qk9*= z4c>$wymN&g-9YhTBclo)7AXxi{_Mm^Utq8KKrEk5WV^7 y`OmN4`{Tu@UvSl5MqItD-F}?B_Su);|8nm>{ha>ugWKP~d*!9~@sGa!?a99sAR|=( literal 2241 zcmZ8iIqUog0adn=r*=tis>i7p$_G+{t8eCzAou+>`s7TqAatc9wP)TUgjx z2)2Taov0xA5$qHT6$fFP{Q~bj-s8O&71_J2OQvIZlzsP|ek!090p5M@ZJzJ%vJ@o< zgn4U?*365yyLDlby46zUF^XEBL&O5kIJd(6a5dEO&bn5)8i)h3I3Sw0&FW=X6VqB+ zRVlK%*vv~=mFhGomYP~cy!Xunsg%#Mg=%TX+Z(6}ela8$(cq=fHt}*2ulKf>OR3ls zws--f$-P|{wWtBQKw;YyETct<9*kz!y|wxnsX2_m+2uwuXO3-7#Ff2=pJlr=5OJ_? z2AuI+U9r}P`^K+w7M{yXWg!d#L#{0Qnp>VA zYnMVMQy10^*szi(mNPhZI3YRE@@6{g)dqHRuSvCw)kLNP(0l4>=-oTb9?5;j?pVB-$-+ik0b7)jsiM#+sEA`x$iX$ZtBLne9GyLOG>9axwEA%J zm4h7&z$0I3IMWm!0?BsLGv9D8*B+p9*vcX1CSD~GSd1^9Znr})Vz55JaIVrO(ZuDj zZNL?)BRX=J%iLqEs}G2zwA+exlYez;^G&; zr$i(^%}5O*sPJsySYZ^@1(H>zm82A9^lCxO)6ug~H+J2PROdoxbY$Z%OXy?kvLh&5JvrbdYG5Ka zhzL`1#z!0<#~2)~-JLd)BJSX*qoNoZXk}{z=z{! ze5jv%o>Frq;+WvMLvEskl!k_a7~2J{_QNetkODdc`>fa{G77Ykmp}k-rm}m^paek; z$%#LuLu|cvKx_v-#W!K1m^+o74(fu5d%`1btRE?Ku>vy{lb4A^MvY@j?r0PRO?#^Y zKCtUU76QE*J(E{h6RlWMv(ki?<^14{>E5(LP8gI3J4+}7Gq>|y+Q`txQuH`e$no%I z-8UZkYER5oup7Ebg;_L10aAKbq`IzneM7i2R#B=}&WL$-d+)zrHb4K@ zZ~gd_<0nA=yAQMXNN)P>2Ot0DM_>E4%zg2_zkKwIKfV9Sm%jhO=idKm^Pg|-Km6OT Pf6o8l<3If4k3ah#`Z?Zj diff --git a/secrets/matrix.age b/secrets/matrix.age index f9c679d7c58ebfb75ee5e41f20c2b2fe23385c6c..accc02a5f8354459dd99a03ef3edcdf9d3d5a68f 100644 GIT binary patch literal 910 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 j{pN4^JO8Z3kAL^_L->0?{p(-; ssh-ed25519 mOmPfg B3R4LNyimq4w8ZJptUWyAlEawpCGqhhDbNdg4hJ4+CM -D9GPbn19Kb1MRiJio+DtVqzQLBNgMcxSLHioYH162Y4 --> ssh-ed25519 YJiRbw 5waVm+Z46zEyDD8KZAW6FNGyKjzP58QcTsT9gS6Hiyw -A/yO7sNrUeWByQzVGTjGA2I4f7G4TCUnEELcOCtCxwQ --> ssh-ed25519 Nl/5yA QaYAuv5+XnG4ummBdhqHwPQs9blMI7D50RKZ4FosUBQ -rIdkykKWPbHqR15eOzG497thdcb4LdM10Y1Xo+jxACg --> ssh-rsa FS7DnA -OEtESGATZF8GKpzgmew+nN6ikurUOMViyLXuggLgZzMZGPdXAZlCZRLpvNRxD1KV -EYaWM7TVjp50Ov8R0ZR1XyyjqhG3lMoQpEBnxmjE3MZcEDS9phnR4u/zWtZZCYfk -m88ieJaJGzg8+CFUHVnlMwPQweC6hyhdKZWN8J2O908JcpNBCc3QYd6gzUoOicF1 -0rfjwk8lGwLnkDAiSwwTey6gqh/hNkvVb+IUWPVJfxdszd6uFDtjQFvjgaTl93rk -TOp62UfS52n04zqXMSMFGTElP3OahZJGjA0Ee1EPoVNNdCyVY4K7niJRele4flg6 -JP/BFCAXqVsbHJyL8G+1ldQmmg6bNSxXgb81pFvsCzQzoBu/+wJ7l0VPcJ04k/Zq -4PAZVSzESQhngohbC4ibFpcWYEQEHtYae9tAe3x7W50RZVs8g5ffGxwCT4m0VCQd -e70j1eeFvVVXP3BUQBBcHua2BXc+UU+1x8WBASUEGc8zGlVckfvYeMtol9PYoieB -eajlncyMwseONHr1uXZ0Gsv38xumPyzdp7xUMYW+EmHOXVJjoEpu8t9fEEFnaBB+ -xDt3m9WIyy7Fdd99jQ+rM5fWd7vHYdszXwYs5NtHbN/PB6kmYtPJ7672wLxIp7or -2xz7ED6j2NTXCYIzTwNxu5WKxnpv9B5sbXPOR8lQKeywy3+7TsfTMMjHDefd+Hff -fmJpnGXScGoux9ZbuDOf2T425/dD+TDTU30DA7NwYGcVKkhP3f47qNSwSkwTXZlN -IqR2cic1IQLUI/od4na8XcINVnTmie4Tvnk+seIYzEwmf4YJodXl4fW+n0keHVBf -aQQCAOQgE1BxqZD7PlHw7eDfXHiY7XGcvGvYVPLV4WSOmVQ+lDCybxgrGnRIcR9o -13EQ+YQye4GvR4ndmWhWgtY/5OZeAgaxI+Uth/KM/v38Qw1IIqz2VqIQ2ehZ5W73 -aSgVHDIY4+5rAIkGvXUOauZ0E1OdJTdFEApwCp2dInY+jjCCdrfOLZgkMF+7jG2t -hHtZi0DM6xeniG4fQd+7qwepeWyHoGx7mh4HMHz/T6a66IqMaRA3EWLhQUHO041f -G3KV7X6rQrZdgD4yeXjnyWHKkySldm4oRodzsRxEWQBPKT4Vw4WNZDncqIMxOQiu -/K0OyHVEAjcHIqnKLRt1GsiubCGZK9YqtYNbgRn7ve7HWr4brvE2Se7WV5jnwGza -RzdZt0SdbFdeFTRix9ADIYLCXEHOLssjZy37XsSeIO6aaFhK5sq+J80pCv7sHJc6 -8jb1lUoB0YEjJr/22WKAif8avJ40fEZZRcPgd2NBiSwUHFWnIf+jetvU9N9ZNapQ -MTe2RI2Trd620gwUT2WUuw --> ssh-ed25519 FpzvfQ rGPYKh2xn9ovmn0UV2lF6jEi64c7uj7PjTaBuPIPj3g -pwvHpkS+5sQSNtpYtMnyPDBGm9mC/nosxrZgWdtCmBo --> ssh-ed25519 GdLgCQ DukkDpEfmfDNR9MnjOMIjyRJ8ub0Hv8gKE6EX12Emy0 -/ktSIdYR6sxwbsbrpxWby2y+a0xseb10IuOs2CMKY5k --> >|TN\.\/-grease g Wy(/zvy/ mRVSE uD4Cz -C9ik3h3oW90Z ---- I1rEn05JeEis5RwZCccQoEz5cDvJKsCG0xwUIWZHF5U -l`cq1 "I=0nXfԦoRֿ \ No newline at end of file +-> ssh-ed25519 mOmPfg Xc7sP/pjQWsiT+o5cofzkRc/qUkW/v6lvA+APqjtfjQ +/OICWH9UAjGMHJbk6tu+EbirNp3cw2rkcA9QioZ5gWU +-> ssh-ed25519 YJiRbw TYYn+/RuxPA4cpw60jR4+fBPq9TnVhLI4pyFnQMF+jY +jONDbvNZU8XMEaBUH433Cb2tnWQ8JciKtO6NNB93dlA +-> ssh-ed25519 Nl/5yA //fkV1jGI1RvKzxdiz7y6RuR/Ef19ql1CvKEEESAFS0 +RrbH3bW95KCtOQx2wTPC/oMno1HQqXWRVBVrr+ho3Ow +-> ssh-ed25519 tOH/HQ +cQ+cQluBHcW/9G5EX0CRKQN+8gXPNnbNnaJ0Vn8lSI +l+9NU468VeYE3Of6OjutlkX7VKOPgmx7sXWlXmsl0yA +-> ssh-ed25519 FpzvfQ uH/SgYtK/2BQ5pMmHlej3Oea/+j4gNOHItU1W5WaoBM +vwnBsXQm0T+7EWjjDtEHVEhsmjMg/o9vMmTPKeujVN4 +-> ssh-ed25519 GdLgCQ m3RD0xlJXrl51LIYpS+fu/St/z1sLis25qzr7SsOA0w +VRnbONmCdTIdUZnnQhv+k83haU/zT8OdH9BBtQTCIi0 +-> #`;gj8-grease Bu,N +m96pAeDZn/JomEzyFjnUgw +--- Zis21YdY0v+Ow3Ey99E9t8wMw9qcpfKLu7LgYkeES8M +X25[<1]s&c k,hLBz4fn4wk Ԩ \ No newline at end of file From 92f1a649f527311e1187c490b50b8414ce0d5741 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Wed, 13 Dec 2023 02:48:36 +0000 Subject: [PATCH 23/25] Re-encrypt again --- secrets/3proxy.age | 38 +++++++++++++++------------- secrets/drone.age | Bin 1037 -> 1233 bytes secrets/gitlab/cert.age | Bin 2816 -> 2894 bytes secrets/gitlab/db.age | 38 ++++++++++++++-------------- secrets/gitlab/jws.age | 38 ++++++++++++++-------------- secrets/gitlab/key.age | Bin 4280 -> 4347 bytes secrets/gitlab/otp.age | 40 ++++++++++++++++-------------- secrets/gitlab/secret.age | Bin 998 -> 1137 bytes secrets/jude-forgejo-runner.age | Bin 909 -> 1125 bytes secrets/linode-forgejo-runner.age | 39 +++++++++++++++++------------ secrets/matrix.age | 37 +++++++++++++++------------ secrets/nextcloudadmin.age | 36 +++++++++++++++------------ 12 files changed, 146 insertions(+), 120 deletions(-) diff --git a/secrets/3proxy.age b/secrets/3proxy.age index 7ff75ca..1bd4ecf 100644 --- a/secrets/3proxy.age +++ b/secrets/3proxy.age @@ -1,18 +1,22 @@ age-encryption.org/v1 --> ssh-ed25519 mOmPfg wYQm1xWPg/9CpYrzCgSepo7qars927Ry7Cqc09SiKE4 -UZ/rWeYZpim/EdMRoiAJ/HZ+V9qBAzfhr0dT286AUe4 --> ssh-ed25519 YJiRbw iMJM0ZgLqfsK1lb4cfYrJ35YG2FOBbESKIKcnkaZj3o -q+Oe4ETkz2YGWY9ErKv8V6fpf8MMqk8CQZYULyJ0dqc --> ssh-ed25519 Nl/5yA BWSSk+6j0MchzjRhAC+n/qT9cBhEDE5py61u+tepFXc -F6jQ0a2dqQ04MfbWg2n8kYpnywhwMf7b6jNZd1NvK+o --> ssh-ed25519 tOH/HQ vJeRDfdSU1tUdnraTfILShhSfNssy/Jl38v+2CuHBic -C0l68idAEhRtE9JAUUYnwrUJGkUhk7M3uSBcaZtNhVM --> ssh-ed25519 FpzvfQ lBuEmpEPU6jlSc/vM3oKAIDzEFOZsCquSSWf6SUlLF4 -cT91YDNhz2acbP1aj0h+aEeDcrCWW/3VFvc3uU+McLo --> ssh-ed25519 GdLgCQ ALxyARNR0u3nEcsQjQMxBHQfKyIq61GP4YaHNna5d3I -cSvubqMPbUi5lXU2fn8MJGkX8QypeRhF3mdnVY6AMtM --> W\$-grease Y0S- 8#{ dPD?DD -h7K0QtwCEDifgwC+OdkdGMzXDzHMBF4FvnZV/3ynjbwjtnDB/tmAxKkOrMqZk9RE -NlchUimmovNt6pFUbN3W9FO6fHTphxXNWbFUzQSFnA ---- 4f/FmwItCPO31I6HXNaASaOuq/2Gq3X7OSVi14IB25g - e}Bn-_d;#倝Iuߦ,ہ5hHܧ9g~AU \ No newline at end of file +-> ssh-ed25519 mOmPfg GK3pWt/pGBmZBDxtz9p2yCE0r9mKZfw2nUBuz0C1Lj8 +Ng6yctVSNN2bDhVC7NxyJlrFHr72aM4nsFb5JrF+f4k +-> ssh-ed25519 YJiRbw 5loX0JGTDoHEDiw+lQ7FHjDTYDHUp9RTpWPAFknUPHs +ICR+JwA34Uv+OWteN9x9QYyYg/rzvJSoTP2G4cPoiQo +-> ssh-ed25519 aY2AXA vDhADJHQnXw+mCWqnwZ8c+nmMSzW6Lsp30Atn99CKR0 +LWHKqQkYnlClhlsIra39Z3LPCwhCgAHy6S4wAaCUKFs +-> ssh-ed25519 Nl/5yA EdPvtg40BH8myVXONns0E2Nclv2jenX7uaBR1Ibw8CQ +oT04xxYo50xB4DaYbKRotAShX2pbSyeT00545+eEaWo +-> ssh-ed25519 GdLgCQ QJCB33L9Aow2G32XyuK/Rx8G/Nq0x43bp+uPYZu2QzU +Bm5wykmKFn4RhHeNq2IRWobe0Kxm2UgoE0jJLwrzuMA +-> ssh-ed25519 tOH/HQ j3hgRxHOgDUo+og3rRsimh1rKDYfsxI8glxhJpyw3is +/+xrS2iVbrRKd0WKclQz/gXDh5MQc+7u+L4lT1aj7VQ +-> ssh-ed25519 FpzvfQ 4W3mHei1YzB8JYM8dCXh0YmyrbvJPfd6ng/6nqidHDw +UKneBBrT45XOPAaCA8vAIM2tguO+GDQlUyhA5XKytXo +-> ssh-ed25519 kdPvzQ qxZe91vbHOrvi1OFK+V+t0ZIl5b2yjjLPVz+dLivVHw +Acen1YgVJJo5pW8prFn+U7jkBy6HES2iHIgKpNtQd5Y +-> !-grease n q34 L4% +0iWB4nX4CflthHMz3/l+nmtQ/eCPbCDGw5P533vTxaKap9K2z+Yd2uMEdWw/uTnM +kWJtie4FxQ+jL5ApYdeUAFts6XnBGVUnbE8PsNjU19GPB0hjqiO/KEQ2 +--- Swg2l7QelpCAMMxAKWHQTGMHs+zxbm+RVXBIMfUWSqg +擊#ޱ.q"s_^fGd+/O)'c.1wAZrzr/) \ No newline at end of file diff --git a/secrets/drone.age b/secrets/drone.age index 366f8c5dd6978b69e86e834991aac38502954a84..ef33799f9d22ab3fe3514c1cda40b6d9666456bd 100644 GIT binary patch literal 1233 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 literal 2816 zcmZY6`9IVN1HkbRYN9Q*m0G*n!gd?*AnFt6G*8(IdW8_e>6u<#dfu^rDJ)Hz4F~FK+ zIG3g%qfuNVMocymSjl>+8EZ^7KvmIjJx<183&s2>8lEZAfy{|aoJr3h)4~)%cr=?# zC#!L4LPVf}s#J#SERi^N7*ni7QqUsq*BVi6F$x)ACRHpA3Z$VU{X$_PhCYxTBNszS zfD{@4kc>DciAUk%B@~k|CORCXAd4&n9Y?LupxL1jRE!8u0>nlnJ=DmNTbLp}iXRY& zml4qx-v51*B}W=93~-`Z2IEo5B$~y{;2SV1CW(zvU=(m1EXJ6OKq}<~6&z!NQ)6&Q zP?AWFqAIik07GHJOms343KQwVjAkm6fQZ4fP*Hv|j!qvD%Gb;O*9Pp|1}HW`L|Q?j zP5|DDW`Psqxqw&$1(_qnn4~0hOn4MbrIQB=XcV3qKy!m=ST@qHD3@KO@LB(I)aESNuq&3HiNrZ+KY-1v2(9=hf5p=f$a+ea@+8W(#U@CtkSD&JEbqOj6n3brbi1p7rKH zBSaYu*1( zR=PE<%^6sA=ZNE*y7?dd7EbjGZ>>*!(PAr`a&58+$&gg3&%Y1EWhVUnhAR^vLm#J`XyeG_&FCztz&u9eZ<+_hfyi#~+b?Ud8Z%|f4> zdm2~&oSdduaS66l3f#U347F74_N)lb-ci1__35z9m$T>M%<=T?6+1gT`ZlWqC{;gp z3o!fqSGX39HuU<&k2=TaZF4UYM?I|R+T>k3HlKF-QeQpxPekI9dEkWbo@8P?deNF& z+z4A*SN1)4+5JZfPoTob=T)=+WJt$>+6VcftP)6_cgLY&`N~`UM;WP4ulnzDk{ODH zp~tzkTYPkmv%dFdl{vm5V5mHX(S)}fvN{qsF<^C~@6m^ow9O+vtVUJ-ej%~s zddX+Fi`}T7xDT}_ET!g2|;GfcW^P?Ev}(!_E?ZsHgcq*9)m7Ulb?X( zb$bLiY-2rooI2<*@M(795riuOM3LDwiAchNrtwCM;8|Un!yN0U$Wx!$ z)^HuZ{q3$DjAL3WXF*z)nDY4k*|Oq)j;;GwRrleoaLDSDbLLS|3RHBm^&FnF#^;#4 zsGvG*%S7t0g!Pf^s=UP-wZ!aSd4c+Bq6XXZ`ryL>1NPCykk?*p+dPlq?$XC&@sz!X zQ67wkb`_N2jxOelkxl&%yicM)#Huse(y^Gj)pN09El;mzrpmh7>fB}+l@ZnZOc(!I z5rhv+wht!B3BlVw&?Z;x4CeR{O{(QN?IBhh>l|wQImlk!+VSMj}-!4CY z-E}-R?P$xO4x7|J*t2O3r2{baa4mJSiN&|I&(1&b zIN0fAXa4@BC$`+W%LF>M^Wfa(o$y9ooW+)JB>BY(dZi`P219;;XwhQ|36{EVu>8hb z5VjM;B|dq8DEhu$-N5)bF-6tQBLwWPuQX<++-ai@*A;37Bl}G<()}jXir59A|Z=!MLVPSX6hw zroOyWG5ujl*uVzRy@tIXS{I}e-Q@vTJfy0Syy3ii*&*0TZEo|sO6G<~$jjYr{?-N? zLQmuA%FT6!xeEiYZr;e76kK`>8}{k^^296sR_)?kuEXCe%d3R_#tXsDpIY>Ht8+YF zd%t@T0>XZF?{<*H?k=U*$L{rxXz9$%$mwfe^K#?6K<(NqcSq;1ILxN};5E3H4A1}R zBc8cdwzhp~>*d9t8VJvt9@K5DGN0|=lJsJ=D63}S)4K0C_U_D_zg@ga*3Zpi`F=M8 zYwgkAGb46cYHgmgt!zZGyWr0&iREm`B9ZHnUH@6J0_S){B>&9I2G1;PFODlB-nCs> ze~;D9V&=`1Mtf-_NxjzhyiS*8zCMk~IPYpgq4vsVkg&yY_@!6&Oy;utUMWs-$kGC!m3QKKbG3Zk lIA^2v+e_1+Z-Od*+qf-v`}pcwBj}9%@8Be ssh-ed25519 mOmPfg 5aqdEg4OJNg6Pw10HFpFKoRWZLvaiqsh0UWW2N5ql1Y -JfnQad6DgEqvRT7GJpjg+kFjgkz9P/Dc+rE3azeArOs --> ssh-ed25519 YJiRbw R7DVCK0kirWs/OhPg4zUGqLMdO1usfDZNnmY5jndSQM -D47/wwjjRuzVSBdd5BG6nL4s1TtAGCBvrdGuwanyV68 --> ssh-ed25519 Nl/5yA JkVW7aHVpsqPKY9wPoxS2MNCfmYv20Sk+844sNGjQxM -VojCPfa0dUGph/PJjocKVIGC1k9XYLiNfv7CPJyM8BY --> ssh-ed25519 GdLgCQ WULneYbP+M1DrFX5JLVeCtkHycxtFBm9/x+oUXTu7Uk -2ez2hdvzXfhOePZsVzrVL+9XanmhyqcK/XkLdV43x68 --> ssh-ed25519 tOH/HQ hHa+OtsIBPtYkDChXg2vhWhYdSqruooaWiPbdk9RgVQ -Ku6StrR8ZICUQEnXeZZ6gXAQp49tbluPKQIAa3KfuCc --> ssh-ed25519 FpzvfQ DhdgZQSDKgmMmcitO4dHMJAbe+c67tfd8gDScp4Tvgc -h8PAX2B9t6VcqG9W1b0Z5moxD1b9P7Qgex6+ousoi3E --> ssh-ed25519 kdPvzQ sSSfEIPPvA99/ziU676wPt9uLrHBIXECTuUmszYcZSk -TcssCYpN5wQTPCay8/gOeot1f6FyUK7sEBkhdwPIG3g --> !Zmpi]O-grease KVI iU\+ he'#C -2O3D ---- Z3aUd7U6jlt1NiGY2oCzZKeD26gsiqB/Ysr+wRp7Y5E -T*#X )>D=>G|ZO2 `Fퟚ`f̎Z3+g=$ҫj1YԌxumqƅ \ No newline at end of file +-> ssh-ed25519 mOmPfg rO6ZgQ1fx0HyrrXjID9yWlB+F+7OmKXy73Hx2TflmAs +48jX2PYU3HZ5A4e6COG1iX4z+iyHT54op/6pwgLzdPA +-> ssh-ed25519 YJiRbw l0vxtLrtMHRbTVm91M0JkaXOdUWhmbSo2KTw+1NQhQM +bfrVU1DXqEHHsC/WxWexGdXaarO94VoS/c05Xe3FQZU +-> ssh-ed25519 aY2AXA ztbbZZgZCeb1dflXXuX9t337kosoEjuHOdqHHW7aKl4 ++h51ok6ReX8JNf9Mej4gEzWyCYQ3ex3Sej2ItLKKuaI +-> ssh-ed25519 Nl/5yA 7yonsTK0Wzh0KMbsRiui8btzabQszKFzUoJxjZnVH0M +i2E/8nKX8vYY+CyxayQzT3mXrXuP5DesdAbHdXh80JA +-> ssh-ed25519 GdLgCQ LufpIEDSbEn9syefFQOIwTa500EHr8tyWjFeKWm4/y4 +DuDAXT1wtKsIRL1W5o/O4DytCLuKzAR5zcTezM1Gp1g +-> ssh-ed25519 tOH/HQ phvLcGJGTUenkx3VswZUs6Xc9G2G81pbom43HFoM/QI +bapMhUoEMv5/jCumAL54L2OT1Zg+hlaKqnKHg50QvGA +-> ssh-ed25519 FpzvfQ 3PePdoAaUGl9Qq88XIyRs9obSUhe0QfHySS6vbptOXg +3tL0kYRwIqS+L66TUWP1LOf0eHBbvBPI5lrjpXj2/2g +-> ssh-ed25519 kdPvzQ +Ibjaf78ClsJzG9oC3FJ1D3U4FLZTTbxFGnQH1Lqxl4 +/pRam0JQWd5yIMNxEz9yhSli0nweUTqzX6RFOnkXEpE +-> 1Q='-C:-grease +92SOHBvWXi1ouiVRj18Bn9xoDNiL2g +--- Jg+OTJQi36S6rcx1Lj5/NLImTJmf077PmbKG8+zTA+o +T%KM_R R3EtipoP_罣$ 0F Qe6+ ayxsy'k8*\=sãQC \ No newline at end of file diff --git a/secrets/gitlab/jws.age b/secrets/gitlab/jws.age index 81cef5b..c6be44e 100644 --- a/secrets/gitlab/jws.age +++ b/secrets/gitlab/jws.age @@ -1,19 +1,21 @@ age-encryption.org/v1 --> ssh-ed25519 mOmPfg kNX5PaaipRVvjzMrXxjhlTSJD550eSGoa5zDbI4zQVc -VAWoBCGuVqKgDw7yEi0YkeIlO+YwdxFoEdLVPXO9y0s --> ssh-ed25519 YJiRbw 9r/cKqXdhpXcDL9S8CDRGLD65Y8yopFGiMmWILtbXG4 -uifiAw7UCRkHc/uvwEnlzc7+2mKuLCYiAMREHzXdWZs --> ssh-ed25519 Nl/5yA eVSbQEyXXYEBBiMenLZ6uEP/NNlB4pW4GYMaww6KJTg -8L2cYg6eYSFHAeY1jgk3GPDOYQYHsRcSXZDMxDW0hBQ --> ssh-ed25519 GdLgCQ HDciLBHQg0Nhd8/QVfgY/6aOEfHdWMs2CwWjieKgIBM -/U/EP99DxhcMrhIa9ggQJSczTQCpDf2mzDJI0uXUYZo --> ssh-ed25519 tOH/HQ ZHmlo/urIFxi8zShOTUqJRuVpFm9RdNtDi6+Fc79dE0 -RC+z3vkORLSFETGPoSbaml7kfA5GG/NK1IwNwn2XD0c --> ssh-ed25519 FpzvfQ kQHudI+8AYPU9gWEp5rR5UeBoppKtdNONPgNpAGM0mo -025maJUyvy7QQpvv+eW7F0rOBMF3BBrwYHHnvwz67dk --> ssh-ed25519 kdPvzQ lUYVBtzSufAD2XZmIH3J788y9oTunIFSNjKIOjuFCBM -bvW8hq+4iFgTpDf0zBIcxWwKMq6xkdKgnjm8q3YYYDk --> NJL_l7-grease y4c : -kVPvEEpHy8iy//hr42NPPa1DWxgrk2+iAy3KqTZ4oQ ---- /muOWusu9T+JEtIWyMOb78bya/kLZ7AJ9VTNJeZrKLw -a{(F!&h,Ncy!66-<˃6tqi3 *WtXi|r?E'42YJ \ No newline at end of file +-> ssh-ed25519 mOmPfg i3txbBg4kys8cMeRiRehJSbfLhidIqsCyVIeNDgA3iI +nQzlncqSBf2Ov7pbUmjxRmzWPsgRrCMLdNbOA7815mw +-> ssh-ed25519 YJiRbw hKFHmcJ/OpAX6sJcUZs/g/i4fS+08c9hjMxMsvJNfBc +Ni2EGHXBPTT1AkaNLi5vTnK5iD2j3W3jWDHmcCAhATk +-> ssh-ed25519 aY2AXA hUyGC7tKrk/gb2RHboIsfmR2N9lqCbfrH9sCj6QoPEU +Zcx6hv9A/MTOzPUOHHDQN2EU+lPA6iMmIQe2ZpuNxpg +-> ssh-ed25519 Nl/5yA w2alcZRWKvtVCgTU4gDE0dV8EbOnasWXRSHxLmG9Fwc +4E5nyu6kvsNlreebEDyMXdJWVG794ALu46DmbK5kyt4 +-> ssh-ed25519 GdLgCQ yPWhFRh4u8HZrg8JGrwFELng3Fd8Mqdcs+6SZ+KIQjg +cbwe12qwFFX5WLfeEW8J4dFpfJHn03s5dTR0Kk2ADa0 +-> ssh-ed25519 tOH/HQ AG+CKGCyKhhzsU0o4KK2lRvbmcfubzQ2f/wx/Ip1ojc +BQzVeyY8xPb762aWihrxNvRgH4NFWZitFLEsS6kTRUg +-> ssh-ed25519 FpzvfQ /C44Mro81QRF4k8pHX0iQl2Y4Y/AguV5IDWCUydXpQ4 +QI17IQqzyx0t4Us2YdOghjUZ9vnFdnpryYwL/T0Njj0 +-> ssh-ed25519 kdPvzQ /NkVwO2FouBiK5XEaq2Tnfac7XboO+sgqeUbT/EU70Q +HsIdyJSBVJCztDTwh/bE+iIqC6d5igIteLlemnUy79w +-> "f+UjYRr-grease +vMyb24U +--- 3zwcLiZPsyoSxNlBP1M+Lx0g0OF6XnwL+QzCZj0yBTU +uV oc39s݀ŷ8Mx1&q ,FWӓ \'~jsjʚ4 :¿h!,# \ No newline at end of file diff --git a/secrets/gitlab/key.age b/secrets/gitlab/key.age index 38d0f7e0aec5b3f2a6e656e98e69fcd39feba649..a86267eaeb28c205415077da7c1658b730c01127 100644 GIT binary patch literal 4347 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 PVJ5%CmVbYa2Q>a4GC;xy literal 4280 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 NLVt+vW%HL2>wiW@l|BFf diff --git a/secrets/gitlab/otp.age b/secrets/gitlab/otp.age index 6f3c7d3..f73e7cf 100644 --- a/secrets/gitlab/otp.age +++ b/secrets/gitlab/otp.age @@ -1,20 +1,22 @@ age-encryption.org/v1 --> ssh-ed25519 mOmPfg LVJSQ+R7PMpUpKdscHK4alpoivahuvF6hISGdY7gujU -XsmhzzTlEIWo8trvWg7wL6uI6bnHmc71tS8OIz61Xus --> ssh-ed25519 YJiRbw Nl46Ujkg1RQDQ3jo6MoOWvOuiAce2Vhmk43wDiKC03M -Si/YWv3MSpQAwiD+IQWUD8eWPsWwI19ojsi46+ENr7Y --> ssh-ed25519 Nl/5yA XDT/tyZ+W5dT1VkBNQcpYMtebHc/37K0hY6kMrtOzl0 -ugulqsgQ5Wp9t7nwhbYvdmL/9YAkpiTF0hJSVPiOvEA --> ssh-ed25519 GdLgCQ hlBfw0CRRL+d7g5Xxp9zjOVGkO5wy8PAA7ukMCAb5Vg -MDrDCysJ3LJ7o0y/bXkxnx41Bq6Wr0EYEpqeBkbtbPc --> ssh-ed25519 tOH/HQ 8QGmTG8sbWch2xOFqf9SfLiMY8hLmwIfWMOuHUg+AE4 -3cMeP+NMohzZ8ecMqKEvOo3vta+m1aUtQPBg+jCjyQs --> ssh-ed25519 FpzvfQ cCNXN61RMnEqcGw199t2xZHug3qVrdtaSkbnqO4Onx8 -MfJHCpsMULqxj2/NSJob24uhFZR0ZhbIh1Arncs9bPw --> ssh-ed25519 kdPvzQ SDan5OS6ZlZ6+btBx/nDwrPt1kAucMDVZZNlYnAFYA4 -cW6PL2fA8xazBvEe7SjW14o8R4djmCDmtuU8Z1+AEGw --> }d^ -l78JedCUzpJH0PazQTE3FhpXmW39G5W78avwFQ ---- OvRr3P4ypXczMWZTi7HrsbPEz17jPYAS/k+XScuzEJM -v)WHr/w% -3+rǫK/ᅪ*^{:2dbXCd aQ( +7"|L43E=?t߁ \ No newline at end of file +-> ssh-ed25519 mOmPfg dPHmReEX0nQopFPzw48N45GXHJZqM88rKqjXr7aLvRE +8/JLs9IzzpstzPjLdtCJSvS4o8vhVcRenVBBq4TusgQ +-> ssh-ed25519 YJiRbw Lo/LGlWvskMSWecho//5MFyWalZhhLM3KZEkAkLR5TM +tsUJrJupmGZPHq+unRDILfeRzrDhRAYNWMfxCxW2KIs +-> ssh-ed25519 aY2AXA cHX5cypXE6shMyzp+uo8piV8wwp6bS68QHIPpy6hDSY +aIyd383aTfc+E/ilLzNmNm/CPYpBQZKZezpJaMgDkFU +-> ssh-ed25519 Nl/5yA DgSaDgxxVzk4OrH/Ypvf1qyHcCMtQs+5Juk5kPqx/yM +fwCHzRWTkyySRI9J8iwXTOZLbR6UJX24xhe9cAfQlq4 +-> ssh-ed25519 GdLgCQ u/raaSJyxy21pJZLAzJCQsAY+4kfGStRW33nYUTxlzg +mp6BoDXJ3uV43Z5L2QUqWNYgQ49xb1gL/Tv+jDHiyOA +-> ssh-ed25519 tOH/HQ 6DkUTCDbKMqXJ4+Pa4AsOhvwrt4IarMAVCoGSPDCcHI +TQPN20WDlXVK7ZLmMMLqE14unhqYZKUL7QzO8YydVJo +-> ssh-ed25519 FpzvfQ cKkxOgxV2j2F4aL+lX/LwurNQjaVxbaGtteoxWMTrXE +MiguFmSTNR9WWh3VvK8XMXiTm4pGgJNd2XD0tVtCiGk +-> ssh-ed25519 kdPvzQ mO2tE6X44CJH0KsB+zSQEJ5V7jU9FF4B2geVU7pBtBc +y2qoTsNDPNoCgMZUZJkGaRPYUyTBwRRjKb46kS7lLu0 +-> f-grease LIjJ5:Pi ENcgO_ KV|~ 4 +tjyNoV7a77oh/IWCQDsLW0GayQmRv041GUcgLX2wIH2Wvck9wAHFEtnl8Pve4o/z +1PA/o9uRLsZaCnjrwrbNXt0jbwKCOuA0iNkMGiELkbcfZeePkjKb4BVW8Ew +--- bi/jDV3F8w8G8SUuh/oXckY3A0VdrFZzMaAmYf93OtU +/d+VQ*}=':#K72wSf'|Oԡ {W1? FA ̛ \ No newline at end of file diff --git a/secrets/gitlab/secret.age b/secrets/gitlab/secret.age index 19f0a957370c323802a1982d9aae416dbde8c885..8a3af708944be60631656f89a6f6c05b01966370 100644 GIT binary patch literal 1137 zcmZY7Im_e(0LF1p5DfSg+@O^Vv&rO|8N?TIO)|OfNdm6Sn`Dy7F}aUPBdpj67Fvlm zVyS}7cFMLk+In?1YPkq52o{RvyPx34|KT~t(K5OO&9&;z<>h|a#L%z;mN#JACd(*9 zaD24|3$@TrF?h@!d2~_9(j1Ii5Y46)B-ZGYlRVPugzzizz(nF=f+-oGIEj?}qMz6# zBc&q1GVCH2VkL8EcTsE(_t_wZ5$oi&cQsEq8@D4E>8ER>#NC#fRdX;Ba>~rz8cGdM zR1t?L1kaVu@J5~~9q1Hh%{59T45A!fX%*s_oPZUGagYr})#-wyqI%au&8*+mjvhj~ zB$$mX3u$R>;C@gu2NJ?uQ^oegh(fkz=yWT}{a${7Qn7ghirD;HsBnEFLoBPDlt(Z-<&0Lj91NgtLH; zbj$5v;1JJFhV=ro#*XIgp(?zgF(KTg)>ormK*4P|%NZ9y`Y7MkxKN5|9ke{D%w;d# zbK-Q_n113P#nLqxoOLgRxW%QZ&!)O2U_D|q@D7*zd3BwK{k0<2UvYG zl~;kN8mgCJSqe#q$JzdTiahI*n9zQMs)nO-Wd2Osu9}CF4sOfN8WTa9vVrUpd$tb< zk?jf3YGSK(7ZO|8P`?%X={oHTzY5wmKVl9$6o1fQ0Y6HhmD0kxlmITdY zw#wd~E;`bUSF`_)cRZF>D|X@8U^0A530lg9T#)@aG@DVbQ(5djGi(`X3&?z`y$R zFaP%U*WUZ{=g%I!^yL1FyI+6#dh-+h0Q>0eC(ke5eEiNQE9dVo9!{VB_R6E18~57} dzxzYYzkm0e{g?cYZ^aq%^8TxT?un0|{tFiOb_oCg literal 998 zcmZY8y$j=X90qU~mx9yXqTG;09AdA@uSuIA2x*hFd1>0TP0|EG^ZrZHq-oxo#9Iyr zCkF=?2M0mW%|#bapSDmrENPenLt z@WJp^q%7gk_W()aG?K2-&(g7!B ztAWCE;J9y`Oe6?Nv;4$zVgOrJ+C_#1S!qd@fOSZY^37Y#6r-(kL0Y}*#k>Im(eo~Z z1PM{q!3nnSt9rSqR$D?*-F%IrdO2t;Y01RA6|MuL2IgjZwtID&t@IAsOt$r$isvNx zJT0mJY07a#b__BXdO3{&GqWd(wsDw1@oUs}X4rwM$mYy)98*GDL+wx)OnFtmI%OfK ziK5j(H*GUvCm!p?3H5?Fr6!!3GNKgisM~A{PY&lQl9Lhc1G%Hm!YtDhA@_{AZu66k z5={>NCbz7l-~t2Vx7q;P=ey9^aUn>Z-D2*rd;u1acTKe-0NR=unUA#7tyZm< zqos-%@!mDs6bg*67F2s-d)V~k^)+W77>!;nEM;b`B{TJ|O=?-(MIpPH@xl>^SmII^ zU{iB#GUWA^Cm3=;$c1SNMdnuH^S%jGL`n-h1oD`c>|zeF(pKFrQfb@Zav+^cYSj_l z%ys+%mV>oXK)If^eUpv!Gu+5_a&T&L7qKhcsS1Xq0m+J~j$V7X`N_oFG`)&=drDJF zvWZcsV}*iML4)h#$_jLP(kINt$50rub{WOVKpF|e7#6-=`U4(Y?vEFuS#K%h2z6U;migXGR+bpEM>wu#GG4@oN{laJ z9|yG@ERJv;&#p5X4iUm*KxPIxo`d=PbWSQ=I_Zl8GtR;!@FikpQC#W@<~CvmAASCW zY=3-L?w)JzJ@d#^Qlhw6H4y|1+MM`V#qZaHk>vRM8wCUX3G7{Rr`F=x4+FgXKu;D~#44A`(Gt@~9 z?9jT2K#2xeWeRcxjba{$x)(WZPA4N*qNkFg!ZnA={&qPj!tGHD1B^YepkcUV0b8D2 z_I$=4GPiQ9uJQ*pu!dS>Z)fK?Yb;TjcN2iRY+b}XYMl0s&I+?~94fUOc5^G0XqB}L zntD9lFFZ~>YI+HicNSz($rnkQ^GPJ4C@d^Xw?9DLy&rXavj{N86fRnG!X9A&c2jtv z6=da1Dq}@sLPJVvy+3yt(R%6{Nz=f~z4U~q=SNM7)iZB`7+H`5W_B!bsKxd=ZxcQ* zM+?#}1!JokhSx_b7STf|4M3`}Jmcn<9L75QmMjh}(C4c+8#!Z&Q_^-j$KhyYRPEb0m(ZLZCAL0HwwbAPKaQIuJ(Vwd*%>U!*>R>a1%m>_pg z3RT1;cCuzvXLbWW_gAImE=yt*%5+&*UWjI15?LaUHRHq*Tf5R5ic4uj^sI}IEhkvd z1h^O4D`HGid5UGb_+PVD=ROIC1aM3zMk7JM6F)9fnGE6*mG#8)f(tQV&~DrZKAjtw z&Rqoia)$^XM&;BraNOG*x0?y5t$mUBt{XPw%`Z1tVFIhw3S10g$?s7(kqRklaSiEL zv=B5b%W}T5^<|^Y{yq#iXe5AdUO#>Pf-1Mq{&vgHo`0Cu@4T#sFF%ItH-CQn>h+WI zL;bw_bvcH``o?#3^y>59m@hsxk6(T8$Gd^{;*;R*N5B8_?7O#rz4znK|NINK C9d20w literal 909 zcmZY5z02ct0KoA{!7Ltf=x_>A1eH*e=A~`$I4)^knm+v{O`4Y`h?3_0{iS(nGdQ`r zpSV1r;wX5ltCQd$+&OwSi}Q7tk5GOz6})4Q4Iyw z)-6dPgX#j69TPw7+^eB=c7K@0vILA-AfZqsgiRT|i*aQvAO6=S)YA~EaJ`bT-1II) zbLCezs5tF7{>GDRlI2@-uN5M*_Hu)xEfzo*&H{+5m@eP=q*C_ycG*;GMM;D^16+6mXjikLeFCxN6;mr z%@fZBO~=Kcb&Gy*#7zTEhtyiBiJc)EWtsyCozC8Wn)7&3&7wAN&jD=DVK0`m4|(Bj z*!UQ(-}xwi3)(Swk0w#iGQvfw;)H0tK4V*r&VVx^R@xn%T2^wP)BoPvCp-z#1{ZTu z3%8lNXQ0_^1~Y_aoxouoa!c}fkaw4f8>@K4*u`>p?)o5EE{CpGO-ePOCr>{hzWVHy zzu$YXefDSPe@)%bZeRcQo14$;FT2Ojey$duzWemoHy_-4A71?9ukU}#Z(pE(yZ1W`H~#=jQ7Y^J diff --git a/secrets/linode-forgejo-runner.age b/secrets/linode-forgejo-runner.age index 3512fca..9f50e89 100644 --- a/secrets/linode-forgejo-runner.age +++ b/secrets/linode-forgejo-runner.age @@ -1,17 +1,24 @@ age-encryption.org/v1 --> ssh-ed25519 mOmPfg S8pOUhlCYclkqmxcVVLo/rkjS1+j6GeqmVEo96bmuEk -Kj9xH4k8Ch4lm4vWSrAmrnC63ITRFAiKMEVmsgW14do --> ssh-ed25519 YJiRbw uqCLz2huHN73tD6El1PXAjcf/r8jUJWi6zb97NE13gQ -HxXnHmrdgGeDiinLxb888aTT6089iPfWIs56poZmMGY --> ssh-ed25519 Nl/5yA ydMVdTHfrIo5d4KxWDErWZql7U7e3WH2Jw5Qz3tiqyA -CesZz+CNw4hzKoA1zgxvlhg19ask8At4zNq9hVkD7N0 --> ssh-ed25519 tOH/HQ Cg8gv4EApU46FUXWhB87jvOjQrNkxz8ifPQTrDUyMQc -4TIVTkLzeg2wMkRqeN1xeI1goen4RulQQo8aonRB50c --> ssh-ed25519 FpzvfQ P6IdcgS4CvHJyE83zRlUWxky90B+NQPwtx8OnRU+XTc -7XjuotraKKZCK+HuYIS1BFXzPZAKQnZNLQsnMvLKlto --> ssh-ed25519 GdLgCQ atNd3woj7ONDA0eogSPUY+6MJaHqovx7CB0pqLyYlhs -IdUOeeMZFAxdCDFi+De1o9bxLaB7GNRWj29OOImJM1M --> |J-grease J|p,V'v< _f* !;w \^ -i2GM4h5Oxv/sRywRetzhaw ---- lcTrsK1RfkCz1l8n2ji52QOQ4+l8kUG3H5nWVLHCuPU -Y^V_=ĢKDf\-B0sbkӚs4^&EqRiq P_jAA`_@6~ \ No newline at end of file +-> ssh-ed25519 mOmPfg IbtFHDNhMmHVYQd5bxaOxyrXM6duqf1mto/20Fr2KjY +zxEKsc3JdmgnYzqhx+bmu6FlbM+zwzhGr8SSHDhtGZc +-> ssh-ed25519 YJiRbw 0DgAhMKCI7oB9tLdtLxGPJD2kOTHu4jyoZr3045Yk3Q +x/SL/H5fiKPHhyxD/FGrUDXnn9Dy87GNLJ7KopS/lBQ +-> ssh-ed25519 aY2AXA zNwtcPrg8/YgjmownWeBrbr8lJKksrTP82qF8SeOsh8 +Bk8z/KD2JudW+H/tp7JpNeDEo8SzDXw9WRX08Apk7oM +-> ssh-ed25519 Nl/5yA DAWd8zGAVNt44vkqTLIjxk5JteF5W0Xih1DoP5cLcTE +VK8nZt314ZwkiKb3cQ+cPiA1TWKkO5G4VbIQ2jxlRnY +-> ssh-ed25519 GdLgCQ 9Yy9wHRb4+eylz/ODQEO4Waa2v8ZMyP4Kff24Ut+BEk +P4ixrmozQlqXWNdoq9IbD0ASBtTzZusWMfbIrsr2/J0 +-> ssh-ed25519 tOH/HQ 5dipLCGs2k+b9IL42ax53ME0qNED7rfK/lE7SRFWT3o +f3kOHRbhyNZO+/KlFnbiftNGEVkM9/jbabtMNMxVLgA +-> ssh-ed25519 FpzvfQ amxqAikEUbGQQ2HL9KJDTAqGtMqytJBxusXtR1AeTXc +r4BYpg96kjrKZmXspTeBPoq4QWoJZPVWH7ZbMe0rV2A +-> ssh-ed25519 kdPvzQ oiVMovExGwoncudcvPdCx6w3zkrzPbQT4a0rac+yWH4 +nsrZTq3sPIx8xR7Gr7cABB17T/YnVGKpmMkVCTC7Ahs +-> ssh-ed25519 mOmPfg 7qETGxGATVjy2s7CgA2zPXXnuYtUJAYx0Vc1Jdr4cDM -SfhsL6l1QZq2GqDXQAoSoa7Q470CyQiwJ1/Quwcmtyw --> ssh-ed25519 YJiRbw afcxj4cYglkrWY+jzuhm8bSwURnBd8oz8958b+d6yQc -5o9Roi6Dk8jinPv9bYo9abEYofsnENsvs3u/5HItwgY --> ssh-ed25519 Nl/5yA n4I1CxthYpbiCPAwQn7YD2pD9/+44A9QDx0UyNJfvTI -WO4/snOnhVixhsy3icC8bjLz2cs3yqWMA3bEli3YX0U --> ssh-ed25519 tOH/HQ HqkxpqB48Vppnb7UIrbjtYkOcAPhPK6G7qqK3mfoMHM -RvEiY/n+dJJnn99eoPtKLZ3i1brroU5vRgu7pJTKcPk --> ssh-ed25519 FpzvfQ ydybHUr2JNjZrm3Hx6dfcA2P2OBQWTsyfErSD6VdYQk -Y+awxY0vh8jfKK0lwYxwx/+HwOYXyfzgiW5IcTsg1xA --> ssh-ed25519 GdLgCQ +muhgR8WmpU+9ZDUoQ+Q4nO4pf4ktgY6VGGwQml0Q0o -v3FzhSAkj/bGeCOGh5TuqnfuQg3oNLFCI0PIC+TscUY --> z[D]f$C2-grease *@K JSrv -epcMM4PtzulGoumhqTIhIs2Kx9GMj5V4B8S21iO2+WkbaBUDofUNjA ---- QBqxz70nNA4w3rCw03/hkFGSdvMHvJGMrEWwT+sZeUs -23{Su '!.%Tf;B V;KvaӲ܀C͋‚nR2Q :iH h͌/3l \ No newline at end of file +-> ssh-ed25519 mOmPfg naa6X0Zmc6UonWPsV+0o2T6r4NK9Is59nNKAhyQe6kQ +nIfC1xihuWrHJGqNvi7bx29/6iCCeqMn0IZizsn5Myk +-> ssh-ed25519 YJiRbw 2O4ee3yE7oAyhFJo1rcYgl7XVfq4McSU7Aa7s2S7uCc +N6WIoeFMpDF5cqEUMnt4jEj3C+owEKaChSNpMBfGh/U +-> ssh-ed25519 aY2AXA JSVBx7OiHFrbMfTgfiFutJwq148ox6B2CLtbqdY5vDQ +PrQN39VlkwZmWfVKRLo3GBXN7JVyPrWB3a26IEFekTk +-> ssh-ed25519 Nl/5yA ICPSHRR9mCg+YlPwwUdDO5Gqnn1TDSegKFliy0fWXz0 +Bp2OeVMa+Q0tW8dlXqwvHNwNHeEuav9sAq/UHXkpjmw +-> ssh-ed25519 GdLgCQ kR+4I6F7Q9z/B8g/p6xho0Bc5Woc07dFKGB3cfx5gDw +LqEeG4V+5s3cZJ/kziQcDnOtEwGC637gMdRpzqdykbc +-> ssh-ed25519 tOH/HQ /tyTWEWWd3F9EUHhxkd25XYmMJCCf8ACireHna9Sc04 +V9KKPlU5YnmD0ZB8/9Pr1tZlCu4s08IWD66l1+WHpUk +-> ssh-ed25519 FpzvfQ Pe8IUrRsPGnjGqD5EnDC7H0fAEcnvzgd3eohlFWlb0I +9D6b8Lqp4I5y4c2CyoPGRjy8gQ/6fFGVcDfF43XCY8s +-> ssh-ed25519 kdPvzQ lXYEEJLoWLeYTB4uhsrRW1nfYLpcomtcJCxw5RiOkl0 +7gYwwv/boikbmci1lv5EvHC96prmhZRwfgwZL9lgeh0 +-> iJG-grease UrVh*]>| +hy6sCBNQOTDvFWsybMwC5QvKOS+JzDztL6HaxA518v6MBjdSc7BXmyFYusRpOVGZ +xQ9aSPo +--- /hGH+HgUfiwlhKVI1LEn/+CcF2i8EYYN0Ip4ntouDuk +WIu+^,Z.yԢf*2i!#VLZ) 27QbB(>X/&)rx[ \ No newline at end of file diff --git a/secrets/nextcloudadmin.age b/secrets/nextcloudadmin.age index c2f3c5f..fe564e7 100644 --- a/secrets/nextcloudadmin.age +++ b/secrets/nextcloudadmin.age @@ -1,17 +1,21 @@ age-encryption.org/v1 --> ssh-ed25519 mOmPfg Xc7sP/pjQWsiT+o5cofzkRc/qUkW/v6lvA+APqjtfjQ -/OICWH9UAjGMHJbk6tu+EbirNp3cw2rkcA9QioZ5gWU --> ssh-ed25519 YJiRbw TYYn+/RuxPA4cpw60jR4+fBPq9TnVhLI4pyFnQMF+jY -jONDbvNZU8XMEaBUH433Cb2tnWQ8JciKtO6NNB93dlA --> ssh-ed25519 Nl/5yA //fkV1jGI1RvKzxdiz7y6RuR/Ef19ql1CvKEEESAFS0 -RrbH3bW95KCtOQx2wTPC/oMno1HQqXWRVBVrr+ho3Ow --> ssh-ed25519 tOH/HQ +cQ+cQluBHcW/9G5EX0CRKQN+8gXPNnbNnaJ0Vn8lSI -l+9NU468VeYE3Of6OjutlkX7VKOPgmx7sXWlXmsl0yA --> ssh-ed25519 FpzvfQ uH/SgYtK/2BQ5pMmHlej3Oea/+j4gNOHItU1W5WaoBM -vwnBsXQm0T+7EWjjDtEHVEhsmjMg/o9vMmTPKeujVN4 --> ssh-ed25519 GdLgCQ m3RD0xlJXrl51LIYpS+fu/St/z1sLis25qzr7SsOA0w -VRnbONmCdTIdUZnnQhv+k83haU/zT8OdH9BBtQTCIi0 --> #`;gj8-grease Bu,N -m96pAeDZn/JomEzyFjnUgw ---- Zis21YdY0v+Ow3Ey99E9t8wMw9qcpfKLu7LgYkeES8M -X25[<1]s&c k,hLBz4fn4wk Ԩ \ No newline at end of file +-> ssh-ed25519 mOmPfg xBjH7pAuWH2cPGW+xw3UDkIbhv6KxSVrKhqH1KMUQiw +ToQhtetm748ZL0mwYUY0ZlvbQ2ZIg8wGPdxDtJ2SJrQ +-> ssh-ed25519 YJiRbw VU9iO5HWdUyTdJDs96aSsq3LBrME7wyYo4HpNlyYhiE +jCstue9cpoXEpOckMJRWoMpl9LN85Qp5pfLPEO9mj88 +-> ssh-ed25519 aY2AXA qkBILo+nhOwl6gp7wgxJ2Jlt0nMthYHw43PDCA2lI0o +KQhTxEpP0UQ6mvsfTDm18OTsGnCRbeTH3CVqVVt4JLU +-> ssh-ed25519 Nl/5yA jN3QgulFHW8I5SIILlje7tqXui9+A+FIDdapnMWkxWs +1GiFm0zXWfsInAUGwlutxLLj5QTyrwpP0xp+uZgq9Fs +-> ssh-ed25519 GdLgCQ wjlz7QwkBOSApRi0+x4p3fWkN+eiHjqR+f9U5TEn3Tc +tzsvSMEgIxSJ5R2+arIYAXVCzQn00JGIWkKvT7YQTGc +-> ssh-ed25519 tOH/HQ stZ71enleNWbL+BTF8GZurEkU0KmfUR3DlbIKz0ZqSM +MTjePANxpKdMlxkvBVP1jXNUbO186iMrmavSz8ibYG0 +-> ssh-ed25519 FpzvfQ /eYN+NQ6Z/FBH5CoRUFUUIl1iazpk9Gw9Ui2W87RvXk +7v/Mx4RTPoH7kSC7OaGPANHBrMKfcGXjeSY3+3f6g9U +-> ssh-ed25519 kdPvzQ vmcZdQY0Pw9d0PiBqCsrU8AXRCgMXrzPK5PAElBMg1s +Ps8gaU3AkWb95ZZRWfvxw94iTLsjoGv70vEieOm+Fbo +-> d-grease sEDC jLi\%B (%U`d +d+Fy4R3mmj1J4b/dh6WM1Mk +--- lxFQMjbak9fSBSaxyD3R6exub/x+2y/eJeotB43/YVk +5$mn 8a"ꢘa-=V/ZL \ No newline at end of file From a54e84a6849f748c66def819d8e99ef4cc9795e1 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 22:39:35 -0600 Subject: [PATCH 24/25] Get gitlab up and running --- hosts/myself/git.nix | 95 ++++++++++++++++++++++++++------------------ 1 file changed, 56 insertions(+), 39 deletions(-) diff --git a/hosts/myself/git.nix b/hosts/myself/git.nix index 802423a..db426c6 100644 --- a/hosts/myself/git.nix +++ b/hosts/myself/git.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, ... }: +{ config, pkgs, lib, inputs, ... }: let extraPackages = with pkgs; [ @@ -14,58 +14,76 @@ let xorriso ]; - secretsList = [ - "secret" - "otp" - "db" - "jws" - ]; - - secretsPaths = { - secret = "/var/lib/secret"; - otp = "/var/lib/otp"; - db = "/var/lib/db"; - jws = "/var/lib/jws"; - key = "/var/lib/registry-key"; - cert = "/var/lib/registry-cert"; - }; + gitlabStateDir = "/var/lib/gitlab"; registryPort = 8001; in { - age.secrets = { - gitlab-secret.file = ../../secrets/gitlab/secret.age; - gitlab-otp.file = ../../secrets/gitlab/otp.age; - gitlab-db.file = ../../secrets/gitlab/db.age; - gitlab-jws.file = ../../secrets/gitlab/jws.age; - gitlab-key.file = ../../secrets/gitlab/key.age; - gitlab-cert.file = ../../secrets/gitlab/cert.age; + networking = { + firewall = { + enable = true; + allowedTCPPorts = [ 80 registryPort ]; + }; + nat = { + enable = true; + internalInterfaces = [ "ve-+" ]; + externalInterface = "enp38s0"; + }; }; + greg.proxies."isaiah.thehellings.lan".target = "http://192.168.200.2"; + + system.activationScripts.makeGitlabDir = lib.stringAfter [ "var" ] "mkdir -p ${gitlabStateDir} && touch ${gitlabStateDir}/touch"; + containers.gitlab = { autoStart = true; bindMounts = { "/var/gitlab/state" = { - hostPath = "/var/lib/gitlab"; + hostPath = gitlabStateDir; + isReadOnly = false; }; - "${secretsPaths.secret}".hostPath = config.age.secrets.gitlab-secret.path; - "${secretsPaths.otp}".hostPath = config.age.secrets.gitlab-otp.path; - "${secretsPaths.db}".hostPath = config.age.secrets.gitlab-db.path; - "${secretsPaths.jws}".hostPath = config.age.secrets.gitlab-jws.path; - "${secretsPaths.key}".hostPath = config.age.secrets.gitlab-key.path; - "${secretsPaths.cert}".hostPath = config.age.secrets.gitlab-cert.path; + "/etc/ssh".hostPath = "/etc/ssh"; }; privateNetwork = true; hostAddress = "192.168.200.1"; - localAddress = "192.168.20..2"; + localAddress = "192.168.200.2"; config = { config, pkgs, ... }: { + imports = [ + inputs.agenix.nixosModules.default + ../../modules-linux/proxy.nix + ]; + + age.identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; + age.secretsMountPoint = "/run/derp"; + age.secrets = let + cfg = n: { file = ../../secrets/gitlab/${n}.age; owner = "github"; mode = "0444"; }; + in { + gitlab-secret = cfg "secret"; + gitlab-otp = cfg "otp"; + gitlab-db = cfg "db"; + gitlab-jws = cfg "jws"; + gitlab-key = cfg "key"; + gitlab-cert = cfg "cert"; + }; + + networking = { + firewall = { + enable = true; + allowedTCPPorts = [ 80 registryPort ]; + }; + useHostResolvConf = lib.mkForce false; + }; + + greg.proxies."192.168.200.2".target = "http://unix:/run/gitlab/gitlab-workhorse.socket"; + services = { + resolved.enable = true; gitlab = { enable = true; backup = { keepTime = 288; startAt = [ "03:00" ]; }; - host = "10.42.1.6"; # Just for now... + host = "isaiah.thehellings.lan"; # Just for now... https = false; initialRootEmail = "greg@thehellings.com"; initialRootPasswordFile = pkgs.writeText "initialRootPassword" "root_password"; @@ -81,15 +99,15 @@ in { redisUrl = "unix:${config.services.redis.servers.gitlab.unixSocket}"; registry = { enable = true; - certFile = secretsPaths.cert; - keyFile = secretsPaths.key; + certFile = config.age.secrets.gitlab-cert.path; + keyFile = config.age.secrets.gitlab-key.path; externalPort = registryPort; }; secrets = { - secretFile = secretsPaths.secret; - otpFile = secretsPaths.otp; - dbFile = secretsPaths.db; - jwsFile = secretsPaths.jws; + secretFile = config.age.secrets.gitlab-secret.path; + otpFile = config.age.secrets.gitlab-otp.path; + dbFile = config.age.secrets.gitlab-db.path; + jwsFile = config.age.secrets.gitlab-jws.path; }; }; @@ -111,7 +129,6 @@ in { redis.servers.gitlab = { enable = true; - logfile = "/var/log/redis-gitlab.log"; }; }; system.stateVersion = "24.05"; From 466ffbe852b4f40383d06df344701e6ea3ddfcab Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 12 Dec 2023 23:22:29 -0600 Subject: [PATCH 25/25] Add tailscale --- hosts/myself/default.nix | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/hosts/myself/default.nix b/hosts/myself/default.nix index b214b5f..48c2c8d 100644 --- a/hosts/myself/default.nix +++ b/hosts/myself/default.nix @@ -13,39 +13,12 @@ vim xonsh ]; + + greg.tailscale.enable = true; + services = { openssh.enable = true; }; - systemd.services = let - def = id: { - enable = true; - ephemeral = false; - extraEnvironment = { - HTTP_PORT_MIN = builtins.toString (8000 + id); - HTTP_PORT_MAX = builtins.toString (8000 + id); - }; - extraLabels = [ "nixos" "isaiah" ]; - name = "isaiah-nix-${builtins.toString id}"; - nodeRuntimes = [ "node20" ]; - package = pkgs.github-runner; - replace = true; - runnerGroup = null; - serviceOverrides = { - Group = "vboxusers"; - }; - tokenFile = "/etc/github_token"; - user = "runner"; - url = "https://github.com/greg-hellings/vms"; - workDir = "/home/runner/${builtins.toString id}"; - }; - runner = a: {}; - in { - gh-one = (runner { inherit config lib pkgs; svcName = "gh-one"; cfg = def 1; }); - gh-two = (runner { inherit config lib pkgs; svcName = "gh-two"; cfg = def 2; }); - gh-three = (runner { inherit config lib pkgs; svcName = "gh-three"; cfg = def 3; }); - gh-four = (runner { inherit config lib pkgs; svcName = "gh-four"; cfg = def 4; }); - gh-five = (runner { inherit config lib pkgs; svcName = "gh-five"; cfg = def 5; }); - }; networking = { hostName = "myself"; useDHCP = false;