From 558d654b6cfdefa58b94ccfe7a96895eeb0aa063 Mon Sep 17 00:00:00 2001 From: Lauren Lagarde Date: Wed, 30 Jul 2025 23:09:24 -0500 Subject: [PATCH] Preliminary fortress stuff --- .sops.yaml | 2 + home.sh | 2 +- secrets.tar.zst.gpg | Bin 6839 -> 6341 bytes secrets.yaml | 88 ++++++++++++++++++++-------------- systems/fortress/.sops.yaml | 18 +++++++ systems/fortress/compose.yml | 34 +++++++++++++ systems/fortress/secrets.yaml | 49 +++++++++++++++++++ 7 files changed, 155 insertions(+), 38 deletions(-) create mode 100644 systems/fortress/.sops.yaml create mode 100644 systems/fortress/compose.yml create mode 100644 systems/fortress/secrets.yaml diff --git a/.sops.yaml b/.sops.yaml index 02d836f..832bd4d 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -6,6 +6,7 @@ # nix-shell -p ssh-to-age --run 'ssh-to-age -i ~/.ssh/id_ed25519.pub' keys: - &system_bastion age1up8uth9hwtd9gup3v32l8dypdarj77s2lysm8js8w8mwa80rk4ds76ke6d + - &system_fortress age1v3nya8n8fys8une6cp0t4agrqh4zjk7dk3lel5403xjkf6k87qdqhgjrk8 - &system_blockhouse age14j6ns297c49wx5d8jddctfmek0kvn8rvw3y03nw3pankc03dlpuqhvvy7c - &system_living_room age1kmt2khucyvscmwvrjnt0v90zggttuap9utx7rw54g9amhtrkzdlq94fe4j - &system_ll_latitude age19v2gpucsykaqu3hsvskl67ss8mpqstp59vn687am6px9nmg585ksvlhctz @@ -17,6 +18,7 @@ creation_rules: - *yubikey_lauren_primary age: - *system_bastion + - *system_fortress - *system_blockhouse - *system_living_room - *system_ll_latitude diff --git a/home.sh b/home.sh index 2375491..a1bfcfa 100755 --- a/home.sh +++ b/home.sh @@ -1,2 +1,2 @@ rm -rf /home/lauren_lagarde/.mozilla/firefox/lauren/browser-extension-data/7esoorv3@alefvanoon.anonaddy.me/ -home-manager switch -b backup --flake .?submodules=1 +nix run nixpkgs#home-manager -- switch --flake .?submodules=1 diff --git a/secrets.tar.zst.gpg b/secrets.tar.zst.gpg index f6668201112c1967453b736dd86f0bc9b168f13b..c69622f65135311cee4e26da4bac28b48f4df8cc 100644 GIT binary patch literal 6341 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 Ho^ugGmBb;3 literal 6839 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 ~/.config/sops/age/keys.txt' +# nix-shell -p ssh-to-age --run 'ssh-to-age -i ~/.ssh/id_ed25519.pub' +keys: + - &system_fortress age1v3nya8n8fys8une6cp0t4agrqh4zjk7dk3lel5403xjkf6k87qdqhgjrk8 + - &system_ll_latitude age19v2gpucsykaqu3hsvskl67ss8mpqstp59vn687am6px9nmg585ksvlhctz + - &yubikey_lauren_primary 5F78261B65C565041662A3B7FF8FC3C735BD4A51 +creation_rules: + - path_regex: secrets.yaml$ + key_groups: + - pgp: + - *yubikey_lauren_primary + age: + - *system_fortress + - *system_ll_latitude diff --git a/systems/fortress/compose.yml b/systems/fortress/compose.yml new file mode 100644 index 0000000..3a6fe5c --- /dev/null +++ b/systems/fortress/compose.yml @@ -0,0 +1,34 @@ +services: + secrets: + image: nixos/nix:latest + command: nix-shell -p ssh-to-age -p sops --command "mkdir -p /root/.config/sops/age && ssh-to-age -private-key -i /etc/ssh/ssh_host_ed25519_key > /root/.config/sops/age/keys.txt && sops --decrypt /app/secrets.yaml" + volumes: + - .:/app + - /etc/ssh/ssh_host_ed25519_key:/etc/ssh/ssh_host_ed25519_key + + ############################################################################## + ############################################################################## + ############################################################################## + # External Services + + #httpd: + #haproxy: + + #coturn: + + ############################################################################## + ############################################################################## + ############################################################################## + # Internal Services + + #dnsmasq: + #tinc: + #wireguard: + + ############################################################################## + ############################################################################## + ############################################################################## + # Local Services + + #dockge: + #uptime-kuma: diff --git a/systems/fortress/secrets.yaml b/systems/fortress/secrets.yaml new file mode 100644 index 0000000..f667724 --- /dev/null +++ b/systems/fortress/secrets.yaml @@ -0,0 +1,49 @@ +dotspace: + fortress: + tinc_key: ENC[AES256_GCM,data:TYiAAgb7hiAzeeqlLQmj7b/50Yht/EXPUz5WgOs4aWPdCmYmZ/Qy90cUOFP4JDGuwj6BqqcPQ2xMZn3UzHOMlhhFMPiAGrD9ClzhRcti8Y8N2hyElgpTOcFwUiHyB92R4y3SCHLEhCbz0QpqDVKlsHIZyNC+hQihTmGlN53Uq4wThVdriJv9JsSABvwXHyjh+uGmYzKM7lZU4no2xn4CKuh4pa5Rq8GvDlAjJQNg8qcCucTz9VjH8rPZRJoi9GFFrl6a71ollg==,iv:50iiuhG+QVWM27rYP8zjCGX/Zp3TnjG7hUk6x2Gz99A=,tag:3NeS6Rlj9y9lAqDuaKMItA==,type:str] + wireguard_key: ENC[AES256_GCM,data:91oquuoknEoMQ5NEwcFwwb/DXkpz0ImSgWpU3CPOrRTQ0VjI7FHluPhKsPA=,iv:STBb0c2lhno+Wylx7L82tBBEdPtCGa8BkmBxrYp8K0w=,tag:nj9gCA9jrqqN6HBmpcY8wQ==,type:str] +sops: + age: + - recipient: age1v3nya8n8fys8une6cp0t4agrqh4zjk7dk3lel5403xjkf6k87qdqhgjrk8 + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEa0k0NC91YnhlRnl0NWYx + UUNXSjM1UWFNektJQm55RTB3bzlkZmYvSm5nCjNMUitYdVdBNnNOUVFpYXNQb0Nk + eWlSM0hQT0RhSStPRGV3VFVZU1hBdWcKLS0tIFNUWlVVK0UwNnJVZVppRHJuSEoy + N0RqWEwyTkRESS8xVmJ0eThRa3dOZkEKiqjDn6WedlB+mmodYeMK49Rbm90CMB7c + AQstw4G7v4y6jnhLklHYQUsIKjMj2qysB4qLl63q7PjJf+THsY4UUA== + -----END AGE ENCRYPTED FILE----- + - recipient: age19v2gpucsykaqu3hsvskl67ss8mpqstp59vn687am6px9nmg585ksvlhctz + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1bGVxNUxSK1lxRzFjKzRP + a2dBQWdtRlR4N2N1dFcwU0UyU1RNUXRLREdRCmxEODhJaHQ1WjdyYkZyZDd1UjJs + a3RCMkFIejJybDJOdWtKRi9nbVZGODgKLS0tIFp1YWdENUtQemR3VmFsRHZKdVlG + TE1xT1JWd0dSaVN2TDErNktucWE2K0EKwjd572SoW6SZZzQ9Nxr7Z7Mc1F2h+FSJ + FS4iqRRb6Py8l4DrQ76YSwze5Uxl1jXK8WaEP0V7en55B8Yn2D04Fw== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-07-31T03:47:30Z" + mac: ENC[AES256_GCM,data:GGQz5aa52oYfnBPTjxbLGaJGOUIxotvwRQQ1NzNMJnmtmEeZosDlLAhk08sG5f9u0Q4gYlxxB+XVPq23dbleGXXla/YkOR+z044ppriKpzTa0bSzKyXgSgFn4qtWC148r5iqGaeYPXjHdZARgUVHmQR8qTdAey6nk6k5Oz2I6yc=,iv:1m1ripzQV39VxNAED/xgwOTnu6+wgSmf7iul40Y2tsA=,tag:7eRFgOxR6CkHIg1/8i66oA==,type:str] + pgp: + - created_at: "2025-07-31T03:49:46Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA9BR1U1EkAnnARAAsvw3aKlrTM5+Z/DqWzDPpgpAhO3qO7eFFuZzwTnoKxzv + 9Dg+9qwkG1QI5R3UVv7J5a9hCqjfnskZnHSC7lwo/xkA9cCifCTohCtUe+4s8+Gd + HgcWrx287oqnuMBOPjZ6WXIYXKLUZPgQ4RciggbyoOStrqwDO2s6RYMVpWAvEBTz + 18eydqdD57KL6YUmq6sc9wGKFlhIRvpxay6RltohRRPq1+bReiAuEP69G4fThELo + ND08l3Q78lQx5cvKStTFbPCOHu2da991gzfRmLpyPjKtGZ5pIfEULui13oUc6iAX + 23BSn3iHXuEuqYKCbM19D7xRoCvlDpf7gY6M77ZzqEjG/u3gey1JAW0YzDu4brXj + 3JTKe72ASc/38D9P9NWhCYDk1uOY0aWO5Eg6j5QZ5fF4eGH836HV4ouU7g74Eige + gWTMi3TKmWrbvnRnRMNb6ixR7EbHOKRawrajACtzG55R4TVZDXJU0pv5Fas9TBXa + wruWH9a1M0prD//ueTss2b2NOMqkyl3O19sVvotW5xgkiXBpjDsj2bCR/uhmLTkp + QKlXa11P4ZiDMNkMbU/1USwMNfYH+pGuVS9CbeIvycnUSDDMV90eRZu99GyIc0+3 + BHvE6mThfKRkpz/B3hiZuacYK/nINxZ5So1XRR8jO730wwuQ2KPkgroJYd4flLPS + XgEpnBwMa+c0y9KBDfoGgoB+urG0bDolLL1DqhvBq93jaNT9dF+VSHHMHAcOvVVd + oHagTK56+RWUyg/MFThWeIcNUXKdukwlFdQN3Pko7agawxV4zi6u1dYi9fxFq3g= + =N1Pk + -----END PGP MESSAGE----- + fp: 5F78261B65C565041662A3B7FF8FC3C735BD4A51 + unencrypted_suffix: _unencrypted + version: 3.10.2