diff --git a/hosts/actual/default.nix b/hosts/actual/default.nix new file mode 100644 index 0000000..3b0a2e5 --- /dev/null +++ b/hosts/actual/default.nix @@ -0,0 +1,42 @@ +{ + config, + pkgs, + ... +}: +let + p = import ../parameters.nix; +in +{ + + age.secrets = { + actual-openid-client-secret = { + file = ../../secrets/actual-openid-client-secret.age; + }; + }; + + my = { + utils = { + commons.enable = true; + lxc-standard.enable = true; + }; + + services.actual = { + enable = true; + settings = { + openId = { + discoveryURL = "https://auth.${p.domains.public}/application/o/actual/.well-known/openid-configuration"; + client_id = "PVOPLIfXxUiXT5ydn9QR7ht6XAoSJVMhwR5Kbt0I"; + client_secret._secret = config.age.secrets.actual-openid-client-secret.path; + server_hostname = "https://actual.${p.domains.public}"; + authMethod = "openid"; + }; + }; + }; + + virtualisation.proxmox.enable = true; + }; + + environment.systemPackages = with pkgs; [ ]; + + system.stateVersion = "25.11"; +} diff --git a/hosts/caddy/default.nix b/hosts/caddy/default.nix index 1fe826d..bb831ff 100644 --- a/hosts/caddy/default.nix +++ b/hosts/caddy/default.nix @@ -98,6 +98,12 @@ in host = p.hosts.paperless; }; + actual.proxy = { + enable = true; + domain = p.domains.public; + host = p.hosts.actual; + }; + searx = { enable = true; secretFile = config.age.secrets.searx-secret.path; diff --git a/hosts/hosts.nix b/hosts/hosts.nix index 98e776b..9d21097 100644 --- a/hosts/hosts.nix +++ b/hosts/hosts.nix @@ -1,6 +1,15 @@ # Single source of truth for all host definitions # Each host specifies its module path, deployment tags, and optional flags { + actual = { + module = ./actual; + tags = [ + "lxc" + "bacco" + "actual" + ]; + }; + arr = { module = ./arr; tags = [ @@ -34,6 +43,7 @@ "immich" "firefly-iii" "paperless" + "actual" ]; }; diff --git a/hosts/parameters.nix b/hosts/parameters.nix index d55fccf..4c73a86 100644 --- a/hosts/parameters.nix +++ b/hosts/parameters.nix @@ -35,6 +35,7 @@ in ilpost-podcast = "ilpost-podcast.${private-domain}"; librenms = "librenms.${private-domain}"; collabora = "collabora.${private-domain}"; + actual = "actual-budget.${private-domain}"; }; personal = { username = "pazpi"; diff --git a/modules/services/actual.nix b/modules/services/actual.nix new file mode 100644 index 0000000..6396397 --- /dev/null +++ b/modules/services/actual.nix @@ -0,0 +1,70 @@ +{ + lib, + config, + ... +}: +let + cfg = config.my.services.actual; +in +{ + + options.my.services.actual = { + enable = lib.mkEnableOption "Actual Budget server (services.actual)"; + + settings = lib.mkOption { + default = { }; + description = '' + Merged into services.actual.settings. Use `._secret` for file-backed + values per upstream Actual / NixOS module docs. + ''; + }; + + proxy = { + enable = lib.mkEnableOption "Set the Caddy reverse proxy entry for this service"; + + domain = lib.mkOption { + default = "example.com"; + type = lib.types.str; + description = '' + The domain where Caddy is reachable + ''; + }; + + subdomain = lib.mkOption { + default = "budget"; + type = lib.types.str; + description = '' + Subdomain for Actual Budget + ''; + }; + + host = lib.mkOption { + default = "localhost"; + type = lib.types.str; + description = '' + Hostname where Actual is listening + ''; + }; + + }; + }; + + config = lib.mkMerge [ + (lib.mkIf cfg.enable { + services.actual = { + enable = true; + openFirewall = true; + settings = cfg.settings; + }; + }) + + (lib.mkIf cfg.proxy.enable { + services.caddy = with cfg.proxy; { + virtualHosts."${subdomain}.${domain}".extraConfig = '' + reverse_proxy http://${host}:${toString config.services.actual.settings.port} + import cloudflare_${domain} + ''; + }; + }) + ]; +} diff --git a/modules/services/default.nix b/modules/services/default.nix index 53984e0..4bab929 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -1,5 +1,6 @@ { imports = [ + ./actual.nix ./authentik.nix ./dashy.nix ./firefly-iii.nix diff --git a/secrets.nix b/secrets.nix index 4a01d50..1868a3e 100644 --- a/secrets.nix +++ b/secrets.nix @@ -24,6 +24,7 @@ let firefly-iii-app-key = [ machines.firefly-iii ]; paperless-admin = [ machines.paperless ]; paperless-oauth2-client-secret = [ machines.paperless ]; + actual-openid-client-secret = [ machines.actual-budget ]; zigbee2mqtt-password = [ machines.zigbee2mqtt ]; mqtt-password = [ machines.zigbee2mqtt ]; scaleway-password = [ diff --git a/secrets/actual-openid-client-secret.age b/secrets/actual-openid-client-secret.age new file mode 100644 index 0000000..f431e4b --- /dev/null +++ b/secrets/actual-openid-client-secret.age @@ -0,0 +1,10 @@ +age-encryption.org/v1 +-> ssh-ed25519 X+zqAA j8zYD/fJTmzCgQJXz23YdNkE9H63IcwxlyrzCx5sqnA +g7CaG2/DuHjEYSlpPeZtQHdWifjOKhoO0BBNtuAyqpY +-> ssh-ed25519 uqg2jw GholrbDsz/YOjuz/4BBrtiQy2BA96VsY7/YTmEdbuzA +G0n2VlnRAJJyJYnfQ7jeNHTBYs6LYEzTaWJp3i0bKuc +-> ssh-ed25519 a0HhMw muqP2s1/52leMxI1/h3fFDSr2t8T4LOF47DjxlTHVDU +wcLbFqgLS0pMQJAz4vbfxnZpVAgW+4Wxhu3wvmZ/fTY +--- Jo3c/viCmJtGHcCmrk9J1PeQBK89Qq7TKHyQKXXqBCk +0훩؜Uo2ݲlX ̡<=s"&0 +Ǣ\xx1.,l=o<&,@b<rfh$+w 0}GۊD*qRaxVW+0tf#! _Ya~Ltζ#i+ \ No newline at end of file diff --git a/secrets/arr-secrets.age b/secrets/arr-secrets.age index cacfce1..3a6838b 100644 Binary files a/secrets/arr-secrets.age and b/secrets/arr-secrets.age differ diff --git a/secrets/authentik-env.age b/secrets/authentik-env.age index 9800e8d..b47de3f 100644 Binary files a/secrets/authentik-env.age and b/secrets/authentik-env.age differ diff --git a/secrets/cloudflare-pasetto-apiKey.age b/secrets/cloudflare-pasetto-apiKey.age index f2c2dcb..28b1c8d 100644 Binary files a/secrets/cloudflare-pasetto-apiKey.age and b/secrets/cloudflare-pasetto-apiKey.age differ diff --git a/secrets/dns01-admin-password.age b/secrets/dns01-admin-password.age index 6a8a124..4b5ff4d 100644 --- a/secrets/dns01-admin-password.age +++ b/secrets/dns01-admin-password.age @@ -1,9 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 qaHa5g UsRzthlQSxgtY/IMRh7szGEGNFup26wkUVpv9My5s2A -FiifQ5s7DovsqIyAi/fog5bA3LVfN5JODX+VpCFFOyM --> ssh-ed25519 uqg2jw mE/2emZV5aapR7S1tnQDJVUzfGkAj5prvPrUVVO+G3Q -ZGNsnhAJwvTzsXC2fC1TWgRbEk3RldgSC+67xDgq424 --> ssh-ed25519 a0HhMw bsNhtDL0UdHgMCIS1Aq/w7zuoW5M+jVqzFNjmxSdbxQ -jBHkdm4j/nnhEmDcZvwPF3JigibwtquhgYAK8Hc9Yh4 ---- 0tIlJQ3e26MMg7RtgNRss9HQccxGuKVxVE03FC21nZk -Z2t&Fz [ԦLCb<noOgv#gLWAiF \ No newline at end of file +-> ssh-ed25519 qaHa5g h5zY25CjinOfbc5YWauUa0+ISUGbSlAdWAVlQNZxrns +Vc7Tcyd+2K07ndYSQafoSUc9wKo4wX7x+KPSXV09oic +-> ssh-ed25519 uqg2jw S5XHn+Q0ErOjm6rIO0rNdWNnI/EHa1SaEhWJLOV2dmo ++2sonjO5Bn5SSygN1LRqKAaI0FxCORaOmRY2M/0p1eo +-> ssh-ed25519 a0HhMw o6NmwrLxcoxP81MaLtibNJQu9rsq+9TA8ydMn/8Dnw8 +pNV2CkIROa7joF4LOL8WHgt6P6dB5o6yFoevATCj/p4 +--- VRLYHbzwWscRwbAN4E6Zbc3b/jfqr/YKG60nr2WJfs0 + _΅ey 뿂f7|h`}vYQF_ o \ No newline at end of file diff --git a/secrets/dns02-admin-password.age b/secrets/dns02-admin-password.age index 0b6abd7..e7b7756 100644 --- a/secrets/dns02-admin-password.age +++ b/secrets/dns02-admin-password.age @@ -1,9 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 FG6Lew mkh8jLUHVwYqJMhjKttYrQebihstIrBfrQ2hRlSs6mc -fEMU8Qci6g3M4sxzpOtA92JwKuRIeJjLLXnc/oQ9C/s --> ssh-ed25519 uqg2jw DB7JYD4MQz02i3Yh7hdMgLz4La3qOlD9FD4dWbUozkM -+LK55R4Oza4a+ZA6z9LpiUUPAv+OobsMFFWV637k86g --> ssh-ed25519 a0HhMw 0LWnyOxP3WwsyyDz+JXToeN/p9xZdNYwkMXAP8ZkEiA -l2nkyHG3SRrU4PZWSjxLrLUv94+VG6AVVMlHbDhvwOU ---- 1QYDHSFhEe3UD5kiy6FQ8YE2n88k0vuIHljWfiubILQ -5-3sj ?qωj#@P_>F1g \ No newline at end of file +-> ssh-ed25519 FG6Lew 2isb+wkEZJGQdXgC40teVoWUKItBWjbbVRrPhD07/Xw +N3S6Qaj2cWtM7mZdafGG85vnc67pfmoFwnfn6i1fJb8 +-> ssh-ed25519 uqg2jw Y0c4gAd9eFDWx4IXcGFmUcgcEA9SaDzqEtjZUJIeZx0 +BwWUjBVJat5IHbnexa3MpZDKXxZysunBFh4vOZzHcys +-> ssh-ed25519 a0HhMw XFkAyYa5ztKtDHbrO2AmfmtG3pULQxTW8EXfbDHRcVU +PsrzypjiYp142+jZXqSusgT4Pwmcp1tcjfMpoRZ8esQ +--- NTZ+xC32G46ilifEdyAKioXAcn5e/BVLHkzHbzWdFNA + 0|qqphK\r[Rj9VͰSQPJBf]g \ No newline at end of file diff --git a/secrets/exportarr-secrets.age b/secrets/exportarr-secrets.age index 4f61be5..4a7fef3 100644 --- a/secrets/exportarr-secrets.age +++ b/secrets/exportarr-secrets.age @@ -1,10 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 xSWWeQ pNnGoUwPKJiMHaPtsC4ep0qdo0yIqTECJDu3/pnRv1M -IYvBS5x3gxu1xS/JgM7OSAsmxlePZNK4hVZXQfwb/7c --> ssh-ed25519 uqg2jw DxKm8ZKJWARGFoXzgKbwWo838nt4HCNLUvwhnNbPJ3M -5rrSIwoCJLyewhnqTjcEvnBYegjuHx249VtQGMcXjs0 --> ssh-ed25519 a0HhMw QQLhjsxbuwroODszUO1M3P3xcnz3wEP0ZgsQuYQUrXo -yNpHzpyX4Omore6sc7+NQG4MyxOP3UtgkLMIX0C/NpE ---- csTun2G1B9cFWLagGYZaZZv0opesN7qKtRjhAQ3ppVE -p)р9~V -jVA p.$&PnoRm{<}i lK%HR"ЭL \ No newline at end of file +-> ssh-ed25519 xSWWeQ sy7XzX3xpdI6v5mEvbg0yIAYxfSRba8bA0BNfvll6VQ +DMvtJXO8KvmWCR2aYjavFzKVottDLJdlFDDjsFY1JNk +-> ssh-ed25519 uqg2jw sDlCdMMoPuPLsl8szoQtsTJi0/l4kCio0/sug/mIRC4 +cb7EbXyxy7yTM3fgokzB0aThpG2hhC8igtPb7MmSsZ4 +-> ssh-ed25519 a0HhMw 1gOwmyjhkAWXKdgGdZXwi5M48x/iYaBgjjUQyLw3K28 ++EN3XitbuiOWt+rhW2C+9KabGcHT4ZmBAxe5/DSJUO8 +--- W7P99GFVUBGeFOkueOOyY9sZ6XKETiEr/jaSo25jzsU +SCnD}A` 2Iw~Ul`2@?`AO=/Gi \ No newline at end of file diff --git a/secrets/firefly-iii-app-key.age b/secrets/firefly-iii-app-key.age index 0eee42a..dfeefb9 100644 --- a/secrets/firefly-iii-app-key.age +++ b/secrets/firefly-iii-app-key.age @@ -1,10 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 aichPw qb6uv3irBsD4K/6dyR75A10/tOVogexjUJwurHFoV2I -aqEYLpfyMjSbfmvR8XrvasqyZ3Bhyl1bbsHTVT0MSC4 --> ssh-ed25519 uqg2jw jv+zS3I3rpcZ1R9oGuVfpucjCWwEEnCweXggZOVW9D4 -D/j2L0r3VwU1c83NO3WUk1yMdSHrfjxiHTlypgVwxws --> ssh-ed25519 a0HhMw BkL5f+OmRU/kqn3In+lzwrHFUaW3RLbEZwMAFSnlIHQ -uACreZHSBsGLXaeVNJWQtVPVvJaELSl/AE+gTIjtCkw ---- T4s314v0GvYXyHNiLE8RPkI1AotLe70D2HSieqhrVr4 -O'| -A)Cn) ssh-ed25519 aichPw rFrVOShujauyWiVhRgaxZTwBDRxdQ74CA1m9o3v/x3A +qn3DxC3VfALtGi5xWs1o6REMKU67QnlDeBhKLTxJqV4 +-> ssh-ed25519 uqg2jw uQG25sCZCxlooXvKNgL7xDMenQFTyYCOVvwMQST3Pys +t0M2a3MaoKzdp06WVDHFdjDKS3Krl8dejuh1kL6GsZk +-> ssh-ed25519 a0HhMw /mCZ8YTePxVsw4HioblbojBhebJQg3yk/L8f1ZH3ZXw +8E9RdwcaTFmc5wV0nchfiNrlXJJXhpsXg7/D281ILgQ +--- Y869N5hs6gq7Z3uQlDLNNFQ98/3drwXKB8zY5hSCnS0 +s.Y5|ҡX:jy^k]Ru)Tz_rzg\ߒ[jp__ \ No newline at end of file diff --git a/secrets/forgejo-runner-token.age b/secrets/forgejo-runner-token.age index 2f6a83c..7bc64f0 100644 --- a/secrets/forgejo-runner-token.age +++ b/secrets/forgejo-runner-token.age @@ -1,9 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 kElbzA 7XFHPcqLwIM3ahHAu9AwgoKIGiJHrBWAVrHOgEuGhAs -Ljweo9FA3AOKDbH1pU07u/kBNewygK+a+TkE/eLn7K8 --> ssh-ed25519 uqg2jw +7N+oyvoF9BQj8qJO6mkhO+dPaUu0VYEaCVFSp8RYD0 -WjZfsDll93kBu6wVM3WCEH89byZqO78PLXNor368aB8 --> ssh-ed25519 a0HhMw 7vRgbfwrsucM18d7iJVcL5SdvjeJE9xoE253k8m2EEc -u3+eze64HsM8Oi2DbkDfpXIjIP8JsvK7TVLtSQgJWNw ---- /dbF5sBUJ+q+wUISdMGX3fR8ElLJW5SR9HmV9koAKlg -yN57d{!δh1_Wr1}6N2}N[Q'H}\ڿ-)+" ssh-ed25519 kElbzA ut+OIh+XahJRAPhN24Fmtjjb0WNf9ThIRT/FrApjl30 +u6YhVUNwKrHJNXPFNVQAcVgKjvxX4Ov0/EjW322JRR0 +-> ssh-ed25519 uqg2jw t0CvoIQW3EYEVAgpnU/C51beiIQOmHZH0IwXy9b/tSI +GkzEc8wrnqiYKJrr5xU+GK3jWqcFhadRAB/tfoRoNko +-> ssh-ed25519 a0HhMw x1cpOWbVQhYfsLHGGD/g9S/NIiDAX2oWyEn5+V5ffC4 +9BBqY3Pwx6FiD/CpjmPaN0Fe2ixNS1E7BR0twYlFzWQ +--- kId7MuCrrwZwtp1VTwdRILqPScKAuZ5ouBC+bcUZbHo +]1~Ň|{ œ euHZT1%:d˯&3ݔR@te^- \ No newline at end of file diff --git a/secrets/grafana-admin-pwd.age b/secrets/grafana-admin-pwd.age index 5fe91a0..ee507f9 100644 --- a/secrets/grafana-admin-pwd.age +++ b/secrets/grafana-admin-pwd.age @@ -1,9 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 xSWWeQ 2Sy0jjGNx25sEEsNHFCfQG3BEMEUCvMj/B864JQ+zCk -z5GKnoVfs11Y0z7SXJg7H0GqnZt6rw8oR7ui55d8ii0 --> ssh-ed25519 uqg2jw mQ+s0M7gQyUkn7To3Kce7IfT4viC1wdkPNWdAJSziS8 -KBINYOpf+N8UBStsnVguOF+pYhJwv5s/IVfvMYtzz8w --> ssh-ed25519 a0HhMw JJm4IVBDbAppA/9yfvWr5Z8g//6j27UYz2T1zr9CQzo -W/z7yteubTAll5fOS7wph9ADLf+oJz0aKhvIrqz6l5A ---- CaEIYuDZLtL9B2YZdxhaY9utBxxlFWwDpc+8IEhNFww -5jhЉ.5V_z:@lvo^hJ=3pz \ No newline at end of file +-> ssh-ed25519 xSWWeQ 1XKsswYzaYArE6pw8K7Z6/wULDCcbrbH5LRdDVCAN0o +z6+OPgjshECMWHP7Wj0eVRHkWPBhnVvhagUDzG+pX1o +-> ssh-ed25519 uqg2jw Kgb7fmBcT2d2XnTHL9wsVjwqHFG3SV6OT/4RThYNjzM +4nCn7FP2SgeFuf9JjyaUfOernSfU2LW/6iWBvyU/y0k +-> ssh-ed25519 a0HhMw 09NWM2lC1gkKuTy1uy1VEMKRcM9bl4JtNmxZBokpETs +e1O4XJ/0S6Tjqb78g3VtElCtOqtzm/99/WS+c9rWBHU +--- svAyMiCP+aC2qdc/Hx9/cHdJ8wJan6IiCDq1gcGR+oM +[ me]11•2%q3\SkW-HߊZ2Ő\r% \ No newline at end of file diff --git a/secrets/grafana-secret-auth.age b/secrets/grafana-secret-auth.age index b7d2c8d..d5f28a8 100644 Binary files a/secrets/grafana-secret-auth.age and b/secrets/grafana-secret-auth.age differ diff --git a/secrets/mqtt-password.age b/secrets/mqtt-password.age index b8cb775..cc0099b 100644 --- a/secrets/mqtt-password.age +++ b/secrets/mqtt-password.age @@ -1,10 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 VfYKTQ 8W3219VaPezn6ZQ4PV2R2K7HKVWB05qoRm2rNcns+Tg -4YQMErC28PLENAyg3kbcJ2cSleWz3XU8dbQG5WJey0s --> ssh-ed25519 uqg2jw /Cszl1RdBO8yVMZk+xvid8hzKSYO4RjzdElUJzOrPFE -PuMBqCAjKmh/MotxHfQephg6JETLDwavgu4+n/RL628 --> ssh-ed25519 a0HhMw o+5KoRd7Ay6snnXp4h455szXS4fscjiKoe3CdJK0KGI -LrDvOYCvfnmI3yHXQG3lODqkmWlFTK+qOJQIoTnWezE ---- CqGCYUZSUWV/DsTIKD1taejEHDjPQxw1VGFnS2qeZYY -JH)>AYʺCÑsUӯ]'@'mr -c~nE \ No newline at end of file +-> ssh-ed25519 VfYKTQ IuUYMJ6XmUxY9pNJdgK0/DeS+q57ZVdCspJ3Secv5Fw +H1yIuULwSsWWJPQbqKDAncafB1zpXmeK8KaKUXGW6/k +-> ssh-ed25519 uqg2jw bDliowKWbPn+/q7tXmUP+vkve77XAf8MXdW2Ocr2FUg +qxWWH79C6asxxj8kxC5BGEX3i7+VtxvDktDylv2QLF4 +-> ssh-ed25519 a0HhMw awOxbTPWHhaRcPjgfJ8244DWV45cclQd7lTScRfLtyE +zG3p0u9swvkgFGXeO2H/+hDS0c0fCxLjFlLUrGs0x7Q +--- 4B+w7FvpNIqDEEUf5WuVmHcEQt72xSz0Rskdu0oeVu4 +}2QL; M׹:rEfqZ-oɱhpEs \ No newline at end of file diff --git a/secrets/nextcloud-admin-pwd.age b/secrets/nextcloud-admin-pwd.age index e2e80be..f695fe1 100644 --- a/secrets/nextcloud-admin-pwd.age +++ b/secrets/nextcloud-admin-pwd.age @@ -1,9 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 S1eK8A a3TRUKXdAk5RbMtSzek98mbxsQkzMhhXdZ2ex2HI/Hk -JSMBbBfW1/zDF1GRqbOjZXfgPzKCyEcHSHFh4vFV8RM --> ssh-ed25519 uqg2jw bVMnanOLSY2IztQhiqWrCdG1dF6ofyf2P4TMH5Dm9FE -MTv3edVC5KeoEf+bQy9qYEuegNXxZTthvl6J2Nx4rjk --> ssh-ed25519 a0HhMw S1+WP1Wfsok4KhvQbsChyZKEJVq2HhR7XKaMjragLhY -mAuN6i7zJWW/t3SUg/dp86cr8ub7Nv+VK+ZYgO/7pSE ---- Vx5+auSoLAjdsStbANhvzeYoMJD1wrhKUeAgb9y5RJ4 -z59^p"' ȋg?2ɽH'> \ No newline at end of file +-> ssh-ed25519 S1eK8A wNR1r1W6QRjbCFHU65hP9h13FPncahjcLGbg0LFUTDE +OgLAIgsVbhxaXziWXGFnV42r2HbWN7SnpLuKhF3VAyE +-> ssh-ed25519 uqg2jw SVAHH7DSsv6mLPSAlz+FAQDEE68OlqeJJOJXHm8nAHg +vsoQTMq7aSGPTvFQEGLq7dgSsfHVo/zK8Krf17Y/Hco +-> ssh-ed25519 a0HhMw Ar5b7aPCNLvuNht9Xf3KmHs9sCgmNi+Wu5KDlXc7wyg +QgodtLxAO734nybwH2+x5iepC6dhZhINr5Avh6owEIk +--- HI73XWD5PxgImmP593GcpyZjvmH/q+gsKyBp+8C+L6c +/Xړ4<"6iϨ(L6jvp \ No newline at end of file diff --git a/secrets/nextcloud-secrets.age b/secrets/nextcloud-secrets.age index 9614425..daaad41 100644 --- a/secrets/nextcloud-secrets.age +++ b/secrets/nextcloud-secrets.age @@ -1,10 +1,10 @@ age-encryption.org/v1 --> ssh-ed25519 S1eK8A P8/ji2B/kI4cQ+dW1bfPngYIJlQawbf4/FCD982QwXk -FlFAgOXNdbvWr9zxL9vDX7tCATqnuHBPpk6zkvaHLJg --> ssh-ed25519 uqg2jw vpXXct4T7NwuzeVEJeEU27ds4k45kF02FDevVZWQxQo -nTY8w2ZNCEX7CdqBG9X+bJ/UJC+5cDI8DZWF+lyTLOg --> ssh-ed25519 a0HhMw AlDSNK+OyXKTuLkYLJMfq2dYOIprBr9Bd5s218CrIhc -DkbOY98Dg+53rDdXBKMsdzkGqkQfuFGz8I9BLim9l14 ---- vwNVOQ8gIa8fnYZqysK7WMcc5hpSJZ4dR1DXXKGJTfs -27o\ ġ /.V8MߘM2ɽ;;t 9J -͹M(sG@~SW}kǨWη`w^ƝXVQ!K7s/ \ No newline at end of file +-> ssh-ed25519 S1eK8A pPs2ZNc8gG5jf/SA5XcW2ZeA8HCAABg5RMcHzKWDWgY +KlgRHGsCGxVuDsFHKqhdrND0ls6PZIBLZjjQKUyF3UI +-> ssh-ed25519 uqg2jw q0H5nkKoES9gJUFA4Y3r9k7sByNYMesTfeo5d+xyHyY +yKtP08Q87BAjJ4M7QoaX9g5yiw35DQ3wK5c3394GiBA +-> ssh-ed25519 a0HhMw RpiAo+vxo8ziRj5lJNQUWtI0KNh729KlAzIPvzeF1RM +Yc4GaQFiuUElnEhQBM7cyv8CAAFCCbe/NzAqRRN1xxg +--- l2zntwzWkFmXFmAo9AQotn6Ym69xrli5fdz/XOQs93o + +hcEf5}]_*u@ZBJl!WxX镴]aa=^G&f-|')?N52t<og^y/" ،+CԚ'x`~'Œ^S;ԴF/8?}iF \ No newline at end of file diff --git a/secrets/paperless-admin.age b/secrets/paperless-admin.age index 72ed126..d373075 100644 --- a/secrets/paperless-admin.age +++ b/secrets/paperless-admin.age @@ -1,9 +1,10 @@ age-encryption.org/v1 --> ssh-ed25519 4sgwqQ tVcSAjmHuPUV+71BOcf+BMQWhxq5YPQdL5K91Em0oyM -ON6VjRoiqXaINqAQKtWlRgyEUwVOPrlwG0vPga2vfsQ --> ssh-ed25519 uqg2jw MpLLUEpVT7CmrDkkpefXEjIRId7IYDkQkZrclJlW3Wo -xapV99qynp+ihV04IK3lQVDCWfxDJsf4MxvKziaAmYg --> ssh-ed25519 a0HhMw VLTa8sOd1BT6T254I8JFuhAG4qc3Ks4+RyDawwx+LkY -8Q7V/Pp934QPRQvVIw1qCWGjTfTK3st1h34tBlYItug ---- TEARP09q1chz4ubeJ812C1K77jnlICwUgOsZb+awa88 -ȝLCG0@](X=r6ga׬3iA3 \ No newline at end of file +-> ssh-ed25519 4sgwqQ Fv4In/q0c7yvHvzjY9B8H+gkTUlbfANkg9J+u7r6jXw +hqsZItiK7I3WNemhbgTMLLEkpNSeFg8PbgJCQ3EgYAU +-> ssh-ed25519 uqg2jw vP1D5g12VvPueSkdbGtw3+/7DAD+167EhwH9jPoZ/Sc +nwJFKunD4W0vIBYnl/Mrlh0uGCNwd5zq3KTMPGQEScE +-> ssh-ed25519 a0HhMw uA8/95mwCgqvS1yNpOV7GBhteKeVOBgZ5PBLA15aXHo +gr57aZkjsxwbg4lXoMM4XTQf/prk1a0ElCeW/CkeD2I +--- JoMZrIKxVcQAi/zAIxZJ8OhODrC8dpDkm3tmWMmgZWI +^:+Ec +{Ґ鮡n̂n= E4t#㶔rWڨ \ No newline at end of file diff --git a/secrets/paperless-oauth2-client-secret.age b/secrets/paperless-oauth2-client-secret.age index 358dc03..fd63ca7 100644 --- a/secrets/paperless-oauth2-client-secret.age +++ b/secrets/paperless-oauth2-client-secret.age @@ -1,12 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 4sgwqQ hC3B269th5ReQgeg/GCsIO2fk75DPT5zl7x5Y58XHCE -xnPipfLwmYSUBLORUSVJTUTEIGjGNTY7tEToEm6jEXI --> ssh-ed25519 uqg2jw Kyc7GHI6ti/SOiVzxCND1lOg28hgVa95+VVrS7iP4Dg -+K+y5H4U4528aGiZiPjdGjrRLX+9S9CHeZa+yhPFCmE --> ssh-ed25519 a0HhMw crLuKtAVbg/R98gcO/kJrvbJjQyLVHn6HZVEZARRujM -2a5Xy7eVtl8B730f4Jc5WHNf/sx30tvZvgPLdgy9Cjw ---- KgYGKI1vTqS8ouIvuTDrHewtpG9mslUR8epSm8hbQdo --n~M à5 {Q"j5n" \ FE1G2 -z! -lWT7hs[ABby!<0<".*5 踰u# -N7]4e3;mGk=C޸jQUAP2虴 H٩ 37y[fNb \ No newline at end of file +-> ssh-ed25519 4sgwqQ TMcTyL1/v/yc/We3E+tI3feD0/RcLxYLjf1UGwZRY00 +Xh5U3+/3agnlKgTOs8wd7rWXNY50rgjkeC4W2LGPkXs +-> ssh-ed25519 uqg2jw Jgwddw5gGkKNiZwP8i84QNz5/Ob4Aw+6d86ZxaJnaVE +XBYNdYRFK0fh/+AeP3w7p2XJtNKzJcB0emp5VHA0xSg +-> ssh-ed25519 a0HhMw jYeoWPhiZKi6Dh27RnGNnppYN5PUiFitU0bXtbxdHUM +8CuDB0QoxSFiWIh6oqe7UxaMhhpfQVqlJAEzEKzFxgU +--- 9R61JrU6zFBgOq4sPyhWlYPuwb9P/B3Ahg5DpyZTji0 +Ȯ Kmk5Q h P g%:&yK| V_aC-nj RN;uj :RK&xT)E )s,R͖Jd45!Cև< ssh-ed25519 1nWE1Q L+jQU6SuzlBaB2eBck5Ywg5lrKVkhfNV4IzwGSb5Cys -VUIzjIEUOVqFLVxr8YM6vIixtRQt7JqmRuheW0GPrGU --> ssh-ed25519 l7h2MQ +4q0jemZh6gM6/OFyLwQnBiBEYlzYDrEf0xKBPhQhiY -YwSEfFwGos+W9x7pV/wMPiJkgvEpFiRcdFqRsWoBjIc --> ssh-ed25519 BFt3Fg lNQWnsO+XmQca2vc4RCDUa10RA1U9tHeVnpC3AFA308 -ulbwdxJ6RnobCn2fGjVaTld3hw6XacDs5nxV0aSy8MI --> ssh-ed25519 hhnUMw LNOU9/M2VkvQLhdhqpTeQG0tbit1qUZZVJAOtkKIsx8 -8x6dylDyNcX7MvBKrdZI5GyU7OtjwSbxrrclqmhXawg --> ssh-ed25519 Gwwkag +bJyI2sdusKt90LZyDPR2Up7Vp1lIGSD2Gf4OSRnuAE -Un2/kfcfSP/TGhkLRb4vcekLW11o5EJmf2FYB5Sc7B0 --> ssh-ed25519 qaHa5g jaMLmRZTOR3PRtJnDaGNqzFuBZjQxa7uPAT3MfhhyEQ -YG+yDXy3WVxsmJpPsA5KujJ3CqdtYQiVrGtHJy8epqc --> ssh-ed25519 FG6Lew EtmSS3LUaJ0O5sRp4eXj6WcPUhpJg6eIDzL4ytKE8Cw -RhWerbOVXMLuTy/vDHG2AfHPObQ7kJBNco88KyrlfYg --> ssh-ed25519 UCdOEA 6icDx0EpXiRAG+W72DGfOJnv/bOrHLYb9idZzu5dCHc -uJ6vDTJrXKjx5kMrVgqb6r56N6vzSXQtTnAqG6OdLZE --> ssh-ed25519 aichPw HvlZa+X5OzJQRPXLcdDvMi66s+/YAPCGSsDIeynTP1I -0I/fpRPP8/mMKr+i0Zm5zDVto50e4J0QI7dnNkebubU --> ssh-ed25519 PCrpYA 6cVdMiRDvj+B1KC4UcVqKHcpU9ZfwVbv5iY3cIbyjQs -41BdcDNpwHeLVsDpeF8juOCNLORo96+jyp0x6rXpw4s --> ssh-ed25519 kElbzA 0m+LCSiCP0JiYIeU++cSymFz+OJzCySlHhWpa7SN414 -kj6I/wVprksObmENKqy8ZLLYcc3kcmrcivgv7sLaI48 --> ssh-ed25519 Ux2oFg dH4HSgtaiqFOwHqRIWT6qrKslzT/2nSN66Er2BrshVI -0qn3cnwFhhusFEs8wtAA0EZlvKnCOcvt+kzKUads82w --> ssh-ed25519 EO5ObA Q6COGCoPxNpObdk1OwdMO37YNZM+PW1P0syfCMiOvlI -PQcSNRcPCh0UFTHMpkdWQwaQv53woNy0S/fzhRnQuwk --> ssh-ed25519 cQlmdQ sLt9mQVQA3CNWuPjT/cISKpiwypoaoFIeo58q3yd6VY -jBojShmGKkVpAyCvBF57VulpdeUeLoH5W5PPv1M8r1c --> ssh-ed25519 xSWWeQ 2l+GkVMcEvsrEA7qxzl372baCIr3Xyfv+1sNn8o/FyA -Cr6WXP15bm5BnGLpJnsgQ0OeO6WmFuFAvN6NJb2P710 --> ssh-ed25519 svET/w f4JmsQWroGyV8CmGf+loOX9JdpF7m0b3voiACGy46iQ -T2O+UrRpL9s5pWKZ47vziIRtciO3Auw47wvSH3TQKio --> ssh-ed25519 S1eK8A AunjDz3h+0coZK06ZrD61YFdxeNJapyB1SZSu6xpUhs -B95EuomuOyLT/lPI57OWRCUxCuEm7iHHvD+PH0h84l0 --> ssh-ed25519 4sgwqQ EZUR2LeFbBmS1M7IYu13xi4UW3Owj221q+sO/9QehWs -dFP3iFB549CS/bkIIMwLl0K3YWiJYUtrZlz+ZSPAhtA --> ssh-ed25519 CuqlhA 0/mH8NXC9xKiOkoyZZhw6xXSuMpUZegC9vf4UmicEjk -yI9unLwD+0I51sEzxcRvL58BAQdG/h7BRV7MtVrQOGA --> ssh-ed25519 HvFEmA TyEteAKJGh77sUsxt+CF35GouBrFftQH7jtoqGXHoVA -p4Jw2ntaN33bCubDTpvX7PIXQ4xz/RQSzPNuxTxjSTI --> ssh-ed25519 9GYwCg rUqmGpr7CGEzzPtaA2sXa91v6tgbxRV96cunCBskbUs -uxq8zDYC0yXl+D4zW8p5zXxwdybkFndf5uizb4ocjZ8 --> ssh-ed25519 V2n9Rw K1NLZIXdoInaoom1HGgrjrf210QgVQ8qYiwuNqroyD0 -mRusMjjgcV75c6TK8UjB3uU1D+MQQWCDr+ss8WBOC3I --> ssh-ed25519 VfYKTQ ktLl4bMWBW172w70uLAks3zrk6BUxi14iIsvK6vRH1M -acMFg+GCcXEJjWX5XxtZwTVNu6EV2EJ11UO2LEXXt2c --> ssh-ed25519 uqg2jw a64Vc+OuFabrOVfCOtSrDQxN2NSiPMB7w94exrsKFCY -Hd6/+aKtHt6/0m+C5/EEmxfDrGr442DIO6TEkbQEn1g --> ssh-ed25519 a0HhMw Z6n8zUTKBefeUc1JCxOdZQ4fv3l+uR1rBZUQP4IhTSk -/WFvBhETc2QyPskbDTxoMS4IEXLPBMTqBzWRURPygT4 ---- ZDAA87gLlFUx5qOzcpF5mDVPg6o7Hse/7brzFqIn+Gs - ]k BmVTC0J-8+2"*׾m5_J~U|H- \ No newline at end of file +-> ssh-ed25519 X+zqAA 2vThvLII6gEEDC9wrDyvRbi8jcW9y/gp28WYZ4ItU2Q +plVtphehlxRSBjdvWlTIk0IH0blwU8/4UKFVXsllh7o +-> ssh-ed25519 1nWE1Q 8k9Xip/3wL5ZKcgVWDkFNzenXYvrOmX93mirRxDUIkk +8y6T63kv3GM8WyQrmzifrAjm9Cd4kmxxpVGwWiY/aaE +-> ssh-ed25519 l7h2MQ hPw0fK/ExgCPDQbmGQz8a09F7jfbc340aRWlZ+n9h24 +YbEx4xvLReuAynBYITcs+NUrnMx7z46WDR5BuiOiUlo +-> ssh-ed25519 BFt3Fg Ox46dCUMI+XxsqWCtIgDEOgX5b3NBWfQ41/sTyPsexM +hXMy1NltIlIK5nqNFXfqZfNgiXhN7DNpSFZNh78x/xE +-> ssh-ed25519 hhnUMw JtFDAxCx9NEM8I+xKKWMaTpmaRblb5Dmp8aDxipgPGM ++XOULPlgszCSedMrn+vYYiFvc6DG+KvR9GU1D+E5A6Y +-> ssh-ed25519 Gwwkag MCtZ17ZNKtzKKGozKAh4ir6ULpYWVqDp/KeX4iX9ZmE +XjaGPvb77UqIDr7IEt8ygaLEHWQKcz/OVDTNQqCOzvo +-> ssh-ed25519 qaHa5g 51YhJFtEzL506DbW2LwqNoDiO23VClZanXZzHr0ruUY +U+v5EFCrs+izNQ7C4SHvz7ijyo52WnvLJ7XcR/L8xGM +-> ssh-ed25519 FG6Lew 6N4hGvqP5mxr1m4NzntkvyonIuJ1xkJOpNHgTpOSimY +eg1Ao9GSGfzHOTgWnigu+ekgocSj6TPmN+ToJjZCD+8 +-> ssh-ed25519 UCdOEA W+eqV8ue2xUmlFnLcXq8RjJFaMzsk8M5hSPv6J+J3ks +VrxmK7m8V8Ib+9kIerxzISzfRBu9fAK1f3ndKyinydY +-> ssh-ed25519 aichPw DEZZu3JTAUPZVLnupuuXwHGaKTIzV/aNGJTmGTeBHB8 ++zsdKaEnufTJ+6P30xzVXE6ZxVHA+vaeZr2wgrgwthI +-> ssh-ed25519 PCrpYA gHGGNjL/KCxZY7y2inR5Qugo7XrmtTv8DEAZqZ2gYAM +2FeCEctBgRK9XHGt8krPlZrMk3Arb0OCpK3MohqCLJQ +-> ssh-ed25519 kElbzA J3o3iwCTuhl19qIzn4YBvWmI3YnhdU8xo8nMV/ieEFI +xaopAZWvpzBbRgVvJ/3kDB9Jwwci6V6wj4eJCb5dP0Q +-> ssh-ed25519 Ux2oFg SiDlMC9exm6qsRt9RP5cq4o0KzBT5juRVFokRJIBLDI +leTJar9b3XjjbYEOo1cKTJo2c0nso8x59oib8s7rJ1A +-> ssh-ed25519 EO5ObA hPMWpbOEIJQIDjjDMuT0CGxsAQJrC25GloE2TFOwqDA +/CQPZTXPjdkpd98ZGeLpVqHxK4ylQ0aV1Ed5Q45JhC8 +-> ssh-ed25519 cQlmdQ NS2wklZU0GTnAWIYKMlFABdgQ8/HJIz9hcZHcF4b02A +iD3QaSTsicCdgR2u76iGdvuUO3D5iNQiZxecNeb+sp8 +-> ssh-ed25519 xSWWeQ /NSwaPhPLz45qmFN0/4Tdt4f7Lj0mFdAizaS2AfPklI +OhiPkOrNUEAI4uhV7jnExdk72WH8kdSypgtlTBhEt4I +-> ssh-ed25519 svET/w JjYlKSmULA8iSIzkfORfT1Iw39YUz6aD6n/fdEOIcy8 +tOHWeR3cvgW2G+81Z1iGMKgM17cE3RV4l5cMp2ZgUjA +-> ssh-ed25519 S1eK8A 5OLjU6WoQyCS6DC5e/01FlltugQffbE6I/H+8r8i+Vo +I2hzqE4m90MqM3LTA/PUCQfy/h04Tho+x6xyEvEg344 +-> ssh-ed25519 4sgwqQ 1x7GD4274q4dA7RO972p6WQgifmSNp+pP+Ux2kvDh2Q +1ruiBSg/+eyX4HI9xwSCBygozZrC84L/Y4zLXiUoyjQ +-> ssh-ed25519 CuqlhA 3qkQnta+Ka/C9Ds5E1lXlerqmAOqCzOxUCGOcron5TM +2pOW+fCYHJZwNlhw7lAmJHPRz0RAKYOSYX1DxGhkI8o +-> ssh-ed25519 HvFEmA fV1/rEMdoUkJ1w+Y1LsDZTHsPbFr1N5MqVVMEUUupHk +bror9RUtx4fWkSK3KbHtSKqP1uFF8vrANTT1pdVL3V0 +-> ssh-ed25519 9GYwCg 8NfYUqopF/2YEYwJtnCuD5bsXxteIT9h2mN+wlFuKlA +jb8JXKsn8NPOv1i02ooUXHO4VpYxr58A++K/6Aw+Vzs +-> ssh-ed25519 VfYKTQ 4ynHge98NPmnOxahl1OsWXLGyLR4UrDlXlbIK5TDBDE +dqucO5Fhdo7h6Zu1owPoVxoHZ6I4s8/7I7whsT+bLsk +-> ssh-ed25519 uqg2jw 1kM9t8TihvELeOBEeGm3YBaHQhaDgP2qsr1lTaqqGmI ++3OnNSEVN5JlTFiYn0q0F60VDb19GYvQwVza/8kZpYU +-> ssh-ed25519 a0HhMw MCS+vUtkuaXkO0GQMngs9+xvcsacBwF8BD534H/zAHI +D6aZZBz7ZOUOTJ8GVEv0xhLxovxoHFpRxxesMDu57Tc +--- UdKGDgN1b7SHqxZ9Z4hyd49Kmhj6axbph5NoxHeq1/E +|#f7CY<2Q͏-]Fmi7RM.G  f\ib`q\h;RI \ No newline at end of file diff --git a/secrets/tailscale-authKey.age b/secrets/tailscale-authKey.age index 918efa0..1b83e38 100644 Binary files a/secrets/tailscale-authKey.age and b/secrets/tailscale-authKey.age differ diff --git a/secrets/vaultwarden-admin-pwd.age b/secrets/vaultwarden-admin-pwd.age index c747a63..19be90b 100644 Binary files a/secrets/vaultwarden-admin-pwd.age and b/secrets/vaultwarden-admin-pwd.age differ diff --git a/secrets/watchtower-secrets.age b/secrets/watchtower-secrets.age index 8839508..288f45c 100644 --- a/secrets/watchtower-secrets.age +++ b/secrets/watchtower-secrets.age @@ -1,9 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 UCdOEA 6g+N3SqaDTJH3JWUhE2l1GIrGbaQodwjnmAcPVWs4j8 -3OfHh5hV7P40GvUYHuPL6g2FGTFMo1XHJLbqkBepKRQ --> ssh-ed25519 uqg2jw uSjMpcazqzn5XbSamA/7TK2BgMr4cBsdIEO0GqrPqG4 -ekx5teNzNCRmGacq8i37dicNWKf24Xuq72N4VfV9obI --> ssh-ed25519 a0HhMw FVC95zIPJWEUKFjieClSi7++ReomvQJ14hZyFpifFyw -0/XFqI1PI1ea0rTzGckIZL9SjCoviConYKLz5z8Vbfg ---- 9oO3EXu8z2zAfb17KYGZW9F294A7V07onShpd341gVo -2Y?VЭ"2<bә׌uKSV2X AϜ^7jmOKR} #hW MfI;?0@s&F].-6F׺TRO`JΔSڝNzZ/ \ No newline at end of file +-> ssh-ed25519 UCdOEA s0VRkGSGQisQ+TeOG5W9umxy1yJUeDw4slLB3NT/HR0 +OmLGE0sRRENGUmuDbWoWVSQJ7hvkXBF/EHcLXKLT5QE +-> ssh-ed25519 uqg2jw 00WGzss9nmdYEaW7i375nTCvGFhZXaJFVZ6lv2cmaFU +0u0pz9AwW7Xst+wc+JddSR6IaB4/FPfaLbPhrRM3BFU +-> ssh-ed25519 a0HhMw Jwk7L2pH4wWw/KUFUgmQrTopPm/vLH+Qo14W8ULMnlQ +E3qzJRrcXrRCOJEdEfiXE0vfJX3SaHx43s2ge9QAin8 +--- gt8qncg+WRrBOkEYbrzC9pMipfW6oteoE9LlMrx82aw +͋ky43ӛT Iys8[Go@$䒶0,i{3.N埁{؏d^WWܕ2ExM:Υ8ܖgIWMG \ No newline at end of file diff --git a/secrets/zigbee2mqtt-password.age b/secrets/zigbee2mqtt-password.age index 6e98682..50001fc 100644 --- a/secrets/zigbee2mqtt-password.age +++ b/secrets/zigbee2mqtt-password.age @@ -1,9 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 VfYKTQ +hcBAbQKgyQQ57t03q7EEdnwwMPfopPAA7dQebf/3Bw -DdUak+jCI4ZvQhSpRWhuw4AQvOi73aS2RMLATcQeEag --> ssh-ed25519 uqg2jw Ige4LXJl6J9S2hdCDjEggTGHplmaMizgY+nFEG0Cezs -BHXJkoPYbkupFAE/5YywG+7VVOZrfDjOqFymR0iJtH4 --> ssh-ed25519 a0HhMw ZupYdXGzHK0d+AqvQ/ymaFeR5tiJ7j3G84bjlIhGNxs -ebgU0dm+Spet+zcaPJhzpiRi4q8tHEn0vKLM/Bf/zXQ ---- nfewyi+9+pxaWUxtMIE2FwieWodTgFirvK0YB1dZSyY -t8xgڇ\.wK,2䕇`9/=e!Dn)*i˕ڱLc+6LS%.rpY} \ No newline at end of file +-> ssh-ed25519 VfYKTQ NlypNUJ37RmNppt+vQevZSu3IpVA4loSXM3ZzWilBVM +YxD0+1QGh871/zqd6yz2Td5w0k4wuQ4FJrAx72T13rs +-> ssh-ed25519 uqg2jw Ot2C0+7n0TImRN9hKfHvPyTKAhQULb/vxd0A+0VIHDg +npr4YsrnFXEbTkS2s4XGpqDFVl3zRKtU+8MiWgd21Ew +-> ssh-ed25519 a0HhMw YGk4ewWdNx+/6CgIphl+naZhf026F3vj9BbT3UrGD10 +Q8bMguDcKzZorDoVkqCCxSy5Lh8aVgKxNwVoLAm1OQQ +--- gtoAJ6S1idQ70lHQjqLoUidXmD4XOBTsZEQuENoG7BQ +gAʼnݦGeGNsw6uzww+ &bwEo6NhΙњğ|`mgC!0AևZO \ No newline at end of file diff --git a/ssh-keys.nix b/ssh-keys.nix index 79570df..9663480 100644 --- a/ssh-keys.nix +++ b/ssh-keys.nix @@ -29,6 +29,7 @@ rec { ilpost-podcast = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHo3tGrspZlSVbC1X/MHFFwDGj8G8+ZrZihU28DkbJEh"; colmena = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOOVg0/MhkyTsZBITT0nZvH0hWskPJ7lyC5Mw70duczq"; collabora = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICSaXqZ+gqkbRJxsHRvCXw9U2Zip8YlPjbEIgPEzevO3"; + actual-budget = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICsvkaeZeTXtowXFcKmtx3ElzNXU4cW4Ti6pR2BBfPFk"; }; # Machines able to provisioning other machines