diff --git a/machines/antamap/configuration.nix b/machines/antamap/configuration.nix new file mode 100644 index 0000000..8abe5e2 --- /dev/null +++ b/machines/antamap/configuration.nix @@ -0,0 +1,52 @@ +{ self, config, lib, pkgs, inputs, ... }: + +with lib; + +let + antamap-pkg = pkgs.stdenv.mkDerivation { + name = "antamap"; + src = pkgs.fetchgit { + url = "https://0xacab.org/AND/antamap.git"; + branchName = "master"; + rev = "f62cc588df661e089d4ffb17adb78e667bda8f87"; + sha256 = "sha256-vMAk2pphApkp1YkFBtX4cQDAyxDgMLnrhI4DTVgBYdE="; + }; + + installPhase = "mkdir -p $out; cp -R * $out/"; + }; +in +{ + networking = { + hostName = mkDefault "antamap"; + useDHCP = false; + }; + + imports = [ + ../modules/malobeo_user.nix + ../modules/sshd.nix + ]; + + services.nginx = { + enable = true; + virtualHosts."_" = { + listen = [ + { addr = "0.0.0.0"; port = 80; } + ]; + root = "${antamap-pkg}"; + extraConfig = '' + proxy_buffering off; + proxy_cache off; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + ''; + }; + }; + + networking.firewall.allowedTCPPorts = [ 80 ]; + + system.stateVersion = "22.11"; # Did you read the comment? +} + diff --git a/machines/fanny/configuration.nix b/machines/fanny/configuration.nix index c398678..6e5a4b9 100644 --- a/machines/fanny/configuration.nix +++ b/machines/fanny/configuration.nix @@ -146,6 +146,7 @@ in "zineshop" "vaultwarden" "pretalx" + "antamap" ]; networking = { @@ -286,6 +287,15 @@ in ''; }; }; + + virtualHosts."antamap.malobeo.org" = { + locations."/" = { + proxyPass = "http://${hosts.malobeo.hosts.antamap.network.address}:80"; + extraConfig = '' + proxy_set_header Host $host; + ''; + }; + }; }; services.tor = { diff --git a/machines/fanny/dyndns.nix b/machines/fanny/dyndns.nix index 0e1a925..0f43958 100644 --- a/machines/fanny/dyndns.nix +++ b/machines/fanny/dyndns.nix @@ -2,12 +2,15 @@ { sops.secrets.njalacloud = {}; sops.secrets.njalazines = {}; + sops.secrets.njalaantamap = {}; systemd.services."dyndns" = { script = '' KEYCLOUD=$(cat /run/secrets/njalacloud) KEYZINES=$(cat /run/secrets/njalazines) + KEYANATAMAP=$(cat /run/secrets/njalaantamap) ${pkgs.curl}/bin/curl --fail --silent --show-error "https://njal.la/update/?h=cloud.malobeo.org&k="$KEYCLOUD"&auto" ${pkgs.curl}/bin/curl --fail --silent --show-error "https://njal.la/update/?h=zines.malobeo.org&k="$KEYZINES"&auto" + ${pkgs.curl}/bin/curl --fail --silent --show-error "https://njal.la/update/?h=antamap.malobeo.org&k="$KEYANATAMAP"&auto" ''; serviceConfig = { Type = "oneshot"; diff --git a/machines/fanny/secrets.yaml b/machines/fanny/secrets.yaml index 8aa3e94..647f56e 100644 --- a/machines/fanny/secrets.yaml +++ b/machines/fanny/secrets.yaml @@ -3,11 +3,11 @@ shop_cleartext: ENC[AES256_GCM,data:sifpX/R6JCcNKgwN2M4Dbflgnfs5CqB8ez5fULPohuFS shop_auth: ENC[AES256_GCM,data:0NDIRjmGwlSFls12sCb5OlgyGTCHpPQIjycEJGhYlZsWKhEYXV2u3g1RHMkF8Ny913jarjf0BgwSq5pBD9rgPL9t8X8=,iv:3jgCv/Gg93Mhdm4eYzwF9QrK14QL2bcC4wwSajCA88o=,tag:h8dhMK46hABv9gYW4johkA==,type:str] njalacloud: ENC[AES256_GCM,data:sp79Ij1vd9pQZuPUR1phmw==,iv:AWKZoOfBA/n16pWQCfA0dZmH1KajCztnLvYItoZZbgA=,tag:BIUrobBoO96pxUz1sjIYIw==,type:str] njalazines: ENC[AES256_GCM,data:fnObUEnXYvdj9HtkZNzXVA==,iv:0Zj2n2we9w4fj/n7e1ayd9XgFEMAGCHk4QLTu1IlRnQ=,tag:zeOLAB0oE6XbxqdqhdRNxw==,type:str] +njalaantamap: ENC[AES256_GCM,data:nUc+E7HNbW0EDclzNDV6+w==,iv:H8nqeuOrvvu8O8QhGWkBkYWAQXwkBehf/jU6u/grs1A=,tag:mqX6jn47DyeSuk8xzG0e/Q==,type:str] njala_api_key: ENC[AES256_GCM,data:ohSVzQUvFjia/s9WceqnZCdLyk3N1Lm2BCBmXeBlkWD2dyrohKCnd9GiJ499IORpuYcOXyM=,iv:Uczk8op5mgqe8gefxgU9YuTqOsYvjzHCKvzA7GDsgio=,tag:XA7JRq/LsGkpHcQSO36Whg==,type:str] sops: age: - - recipient: age136sz3lzhxf74ryruvq34d4tmmxnezkqkgu6zqa3dm582c22fgejqagrqxk - enc: | + - enc: | -----BEGIN AGE ENCRYPTED FILE----- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2ZFBYMHMzTFRMLzhCbnBE MXkreklWSUVOckl5OTJ0VzlWS2tIOFBRRVVJCk90OXJoMHQza0hTSGt5VUphNjY1 @@ -15,8 +15,8 @@ sops: TStjbTBkMTNOcHBja0JRYUdvSWJUN00KtOPBH8xZy/GD9Ua3H6jisoluCR+UzaeE pAWM9Y6Gn6f7jv2BPKVTaWsyrafsYP7cDabQe2ancAuuKvkng/jrEw== -----END AGE ENCRYPTED FILE----- - - recipient: age1ljpdczmg5ctqyeezn739hv589fwhssjjnuqf7276fqun6kc62v3qmhkd0c - enc: | + recipient: age136sz3lzhxf74ryruvq34d4tmmxnezkqkgu6zqa3dm582c22fgejqagrqxk + - enc: | -----BEGIN AGE ENCRYPTED FILE----- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhc282T2VVamFGcG1Ub3hp S1VwKzVsWW1sRXczZnRNdkxDWE5Sd0hhVUJRCkovNGZ1ZlN0c1VyMXV0WThJMGFi @@ -24,8 +24,9 @@ sops: QVZyNWVOMTh3ejBha21Qb2xCRkFERGMKH9nMQUoS5bGcLUx2T1dOmKd9jshttTrP SKFx7MXcjFRLKS2Ij12V8ftjL3Uod6be5zoMibkxK19KmXY/514Jww== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-02-20T19:25:05Z" - mac: ENC[AES256_GCM,data:g+bFYqJN1X8F52tpIO60S2WKxLG27ZrP399fsfE6o7rPtIMimZou/4oUo7i+kpNtygEuCr3+suP8TPas4x5zMXhRjnjJuwJwL/NwdciHZU0O3rPJgucCEWqr9OdAtxezDM9c2vv+jzqZxWT9t0fIpB9RxO5oy1pHZs0RCgjAJR4=,iv:v6RdTMeQUxSdjIVNFbx2HtxCsdVgFTQTzMXS5Fj62is=,tag:pLoZMBRIXYElO5rY+xX9zg==,type:str] + recipient: age1ljpdczmg5ctqyeezn739hv589fwhssjjnuqf7276fqun6kc62v3qmhkd0c + lastmodified: "2026-08-28T12:19:14Z" + mac: ENC[AES256_GCM,data:TnElCRaL/b238clfFVEq+Ot1lwg5MLMchCkmhi5PmADRn2exA42Zeq5v1M/IM5sHt4xEyFLn5R/88Y49DAfehRFwu6rddV+3lnFV40k2rWRtMfQOUXSrCd7lGxZdFbMU0eIXF5jaATFbcP0wO03FohNA69/u6kNsS0y0jK3vuLQ=,iv:xPeNXUIavVYFfAv1fs5TXCHXmvnXQDs4mJZMHOX7qG8=,tag:85hrBTKMh1ckTtXpOxj5lg==,type:str] pgp: - created_at: "2025-02-11T18:32:49Z" enc: |- @@ -66,4 +67,4 @@ sops: -----END PGP MESSAGE----- fp: aef8d6c7e4761fc297cda833df13aebb1011b5d4 unencrypted_suffix: _unencrypted - version: 3.11.0 + version: 3.13.1 diff --git a/machines/hosts.nix b/machines/hosts.nix index e194ed1..0b62e20 100644 --- a/machines/hosts.nix +++ b/machines/hosts.nix @@ -108,6 +108,11 @@ in type = "microvm"; network = createMaloNet "18" "52:DA:0D:F9:EF:F4"; }; + + antamap = { + type = "microvm"; + network = createMaloNet "20" "52:DA:0D:F9:EF:F6"; + }; }; }; }