diff --git a/flake.lock b/flake.lock index ad6b5c4..66d2550 100644 --- a/flake.lock +++ b/flake.lock @@ -88,11 +88,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1766203416, - "narHash": "sha256-UrIuqnXvM+73owAiq1zjHNtaWrv72wD1yKO6jTowhTQ=", + "lastModified": 1765876616, + "narHash": "sha256-j9BnLfWdJrJrETfmfnlnpvRGKVp1MLRaw78oYDSnTRY=", "owner": "rycee", "repo": "nur-expressions", - "rev": "8b55bb199045aa79e2965b7482b04ee4773192e3", + "rev": "2843ec4d4793815111a1b99e170ec7b1842b7f9f", "type": "gitlab" }, "original": { @@ -160,11 +160,11 @@ ] }, "locked": { - "lastModified": 1765979862, - "narHash": "sha256-/r9/1KamvbHJx6I40H4HsSXnEcBAkj46ZwibhBx9kg0=", + "lastModified": 1765859973, + "narHash": "sha256-LN5O0h9GSgcDE/sz4+sLS3CbQALru1x4lh9hrxpeHwI=", "owner": "nix-community", "repo": "home-manager", - "rev": "d3135ab747fd9dac250ffb90b4a7e80634eacbe9", + "rev": "7df150f0d3857cf68dae443813b27acfb201b2d8", "type": "github" }, "original": { @@ -207,11 +207,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1765838191, - "narHash": "sha256-m5KWt1nOm76ILk/JSCxBM4MfK3rYY7Wq9/TZIIeGnT8=", + "lastModified": 1765762245, + "narHash": "sha256-3iXM/zTqEskWtmZs3gqNiVtRTsEjYAedIaLL0mSBsrk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c6f52ebd45e5925c188d1a20119978aa4ffd5ef6", + "rev": "c8cfcd6ccd422e41cc631a0b73ed4d5a925c393d", "type": "github" }, "original": { @@ -238,11 +238,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1766070988, - "narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=", + "lastModified": 1765779637, + "narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c6245e83d836d0433170a16eb185cefe0572f8b8", + "rev": "1306659b587dc277866c7b69eb97e5f07864d8c4", "type": "github" }, "original": { @@ -344,11 +344,11 @@ ] }, "locked": { - "lastModified": 1766000401, - "narHash": "sha256-+cqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI=", + "lastModified": 1762938485, + "narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "42d96e75aa56a3f70cab7e7dc4a32868db28e8fd", + "rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4", "type": "github" }, "original": { @@ -382,11 +382,11 @@ ] }, "locked": { - "lastModified": 1766225876, - "narHash": "sha256-e7kkh5axo86jc7QRMnWYpHNf9hHbG53xMTzr5v63cjw=", + "lastModified": 1765850658, + "narHash": "sha256-WMxrG7K5kQQS0dc8b8WDdwKyBYokRc0Ssa1gIcAigBs=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "4ee8ee764ea5cf2fcb44684d04488b8f5e2115b7", + "rev": "3117a5178ba33eafea691756cca52ab250f2a5a9", "type": "github" }, "original": { diff --git a/hosts/common.nix b/hosts/common.nix index 79ed82d..eec4a6b 100644 --- a/hosts/common.nix +++ b/hosts/common.nix @@ -36,8 +36,8 @@ commit-lock-file-summary = "flake.lock: Update"; allow-import-from-derivation = false; - min-free = 4 * 1024 * 1024 * 1024; - max-free = 8 * 1024 * 1024 * 1024; + min-free = 1 * 1024 * 1024 * 1024; + max-free = 5 * 1024 * 1024 * 1024; }; }; diff --git a/hosts/desktop/default.nix b/hosts/desktop/default.nix index 2763555..4cb4d43 100644 --- a/hosts/desktop/default.nix +++ b/hosts/desktop/default.nix @@ -33,10 +33,6 @@ enable = true; ssh.enable = true; }; - nebula.node = { - enable = true; - address = "10.254.250.1"; - }; syncthing = { enable = true; deviceId = "FAJS5WM-UAWGW2U-FXCGPSP-VAUOTGM-XUKSEES-D66PMCJ-WBODJLV-XTNCRA7"; diff --git a/hosts/desktop/keys/nebula.crt b/hosts/desktop/keys/nebula.crt deleted file mode 100644 index 03613b7..0000000 --- a/hosts/desktop/keys/nebula.crt +++ /dev/null @@ -1,6 +0,0 @@ ------BEGIN NEBULA CERTIFICATE V2----- -MIGmoECAB2Rlc2t0b3ChBwQFCv76ARiFBGlIaqqGBGsoffSHIBVD/hlbqt7XLMVq -DE4DhIQzJRBaXtQIwm5gRTI7c0VogiAWuCbaQyz2y1A+OrT1+mI2U2EdQ3X3HPzA -SkjZQ+zAG4NANTlPvjlzVHXcvSnZpWO0HVFFLlFKkPav33SUb51KaOt+HX0Xyu3r -3EvhBuRRS6pc6x5/ZawfxWakQwb5dTuhDg== ------END NEBULA CERTIFICATE V2----- diff --git a/hosts/desktop/keys/nebula.pub b/hosts/desktop/keys/nebula.pub deleted file mode 100644 index 944fe81..0000000 --- a/hosts/desktop/keys/nebula.pub +++ /dev/null @@ -1,3 +0,0 @@ ------BEGIN NEBULA X25519 PUBLIC KEY----- -Frgm2kMs9stQPjq09fpiNlNhHUN19xz8wEpI2UPswBs= ------END NEBULA X25519 PUBLIC KEY----- diff --git a/hosts/desktop/secrets.json b/hosts/desktop/secrets.json index 31957b1..78b937f 100644 --- a/hosts/desktop/secrets.json +++ b/hosts/desktop/secrets.json @@ -7,9 +7,6 @@ "cert": "ENC[AES256_GCM,data:Rf6Pgni4jkcFC0pYC+CBJnCRfsNqSBR2yStaFngefb2/rQd3za2h7o7fp2IPVLs9fYmUG5r8/mP9K0m46xA/2wVLp+ddyNA2wndSwk7ZqNEs2BA/GAdelX8gtcPV74CkB/NJa4E42qH7aTVcgrBZVIM27RxO6e/8r8JSXb/HOczYpLAVdW2DHXjGrzi43cjEcn8UK+dNeNsp0AlEZqN9eRRbqh3JQr7+WOYKkk0R0VP3SLH4O9ROLzSJ4Pw4BoLArR3lvp7pOLOrmXvazToKkMInnLZsH0oV7Zvpu1kTz2KrvhIZdNoUZOV2L/laoS7nc/MFixEwpMy4gqszhiADXlNEbslZyZPcq9KxLgIH0W3xKuQDwrC/RWfjMAwnpucByKy9dR4+9C7maVYp5rvBdRbhNM/Yp6U465d8qJVG5YmURG5NBudAsXkfkp8/AqGSK8RQk/F2b28SfqVCfd/Kga1SINcbdEY7P9nNxx3sbVhncQ3pZXY2tZhYJiSuZ/hGMuPa3yMJPgDPJV8tPIUASCNxbeLOKp7HVghb9IIHSDhhiZmFTFB9xT8X9w05w0afLgQQCybG81YGXvXTiA/xLriA2AzQqg4KzdjUgs+lv7rPL9fsP5V7LAoBZamTirsOCoApMrP7L+QP0OTFyHBakf+GBEREwn5dygos+/vBXne4RtDmji/+zh9U1CqwwCIbx/rdVODzYusYV0lvDjYPyVnTWjEGQN5uGCgEBozQWUkaR1KlmamzcXS9ihPsIa1VNu/aLRrb66hS99wuALFdHJPg5XgHNKEA+Re/lXqUwups/A1RQ9bymqXUj8lIK1hDWsC3DCqDsL54x2BIodyvBBB8hyHFnBC3xg+W8yC0SQLivkFLdNMTRdAgyREFEZp3Nvi19B9+njnciFjcbRj+sG1L9X2OSvDZ2e7273DYtXAVsI9977VBtQYHmjXeyDVBnK53sri/8P2ofniPmBM/ZQ9X1UtMI+vrKIj/o4jcTaEcAmqA9bI2YbG5p84rIH6mBA4SvPCHGz6s48XhaYLzCJbOIR+eqwjbvBA=,iv:72+0+hlBxKtuhjhrLD1EMlx8LcJtskxO+MCpYj7rpes=,tag:qnQlahuimpMoVY1hbTGI6g==,type:str]", "key": "ENC[AES256_GCM,data:A/Am53gADkKNOn1kAgNoJmirRhIDtysyX8+ubtpyKTQKhTzEJfEKFrVw5BjJ8rYRS31DgMYV20FQs7HOfoRsR3MFdSGDFUgePnbIcNGpHD6EY8GJ9TblT+NyPsYsKG4WgFZElOjQYT3X9Rr0IWoNnDJoOaaI5sCpOumfLKWrekWvYfTUT+SiFfkCebeEQs7ZF7G6ZQJF73upaeKdbd8/uBdcfVc/c6PdjGvY1xnCOAqW39S9K2fK0RibqHs8BiuzPBTCYjBg6euYXi+XGrZjmHLFnj/ZflroiPJr/qFhMDVnmiaW7M3sWYDQYYPd6rk6Adam+ylEAU8BXwIjmdHNkR48WbdIDYWCHHdv4iZ8MLTj6MaX/ksIZvev2M19Eiyi,iv:lkGS4uR0Xd7FnahXLjVc8g0PiRPxyUS6YQY3EM3B5G0=,tag:NZYybe/MgP+LNlJ09AiV6g==,type:str]" }, - "nebula": { - "host-key": "ENC[AES256_GCM,data:Udr9Frsmn5krgFHgjTbtUoziUCL9eRgFpslWL8Pfx6Y/iHaLg2zuuH8OnsU1wRr68VZVxJ8lhhPInG2Q+SFOaUt9LHAxRc+GxeBq0kRw+Slqd8dOyvFC+Q9IBlgf9dynF/gyyCNsaec9arggvK0BJiHuCZeJ15gCE9nUQJspAw==,iv:fZQOFH+iFWUu+Vap7irn0i265NuFwwzvaK0J1tRdbl4=,tag:d6uWFpM77RsPAyKwCES8zg==,type:str]" - }, "sops": { "age": [ { @@ -21,9 +18,9 @@ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2Qmh4TnU2U0toYXZlaUpU\nZWdBVFMwRVpxelBTb3FvMHVDQkFMMkVlOEVjCjNaTEJDaGlkcUJtem43aDZ6Yk9j\nZGhmWFFvbm1HN0N1VkUyN1lQLzM2c0UKLS0tIHhEeFNyaXI0UDB0ZDBydW80djRX\nSmpyNDlLSFMvaXRsZGdWcS9nVTRzbk0KNryo5P1+bu9vntBafSgAAHxSsYXG2ELj\nQQM6kP+eaSoEFXfWxp7dhxHcjoTjQ9DmCgzVaDUD8nLzFsiJsgbjIg==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2025-12-21T01:21:48Z", - "mac": "ENC[AES256_GCM,data:tn8lgEn8Sp2YYFUVRUa+yOND7oISGld22+otWBB9U1she28JZ+g+vvdpCPRPevkqWHA+BawKUKkaD8Iaoe732HQukpbIBrVgK+g6YpaSnakhSZPGV2oE3z7KdSDeYdBF/La0ml1OKs67hldFfN9D2Sl5RdTROwBWaVaJesNTFS4=,iv:BCbSXBAUqb/LoDfLXLi6UB+CRuJOKEXuHFjITAdaH+E=,tag:f570BuZv30rL45m4y1IwJg==,type:str]", + "lastmodified": "2025-10-11T15:48:45Z", + "mac": "ENC[AES256_GCM,data:JXwbZJDo7yDhTPA7QfJ83dWuIJovwyijqcU6XtLMToN6LQnqsdD0mJ9blZDXFT6X+Z/LIlkeK/LOZURYLp73FiAPV5I8S9D7iq/PCGiB6HZOIAzZbwD4s3/0lw+0FhcpVK6obS1gMqr1si6vDm5mM4XvhMifOCx9Dxic8IuGoTg=,iv:QbxT/6oNQa598yeAFBrYnNn/N8uNsMoIZNJMPAaijH8=,tag:1IgkVIJlcpQ9TNW/javbmg==,type:str]", "unencrypted_suffix": "_unencrypted", - "version": "3.11.0" + "version": "3.10.2" } } diff --git a/hosts/vps-private/default.nix b/hosts/vps-private/default.nix index 4ffc15f..0e267d5 100644 --- a/hosts/vps-private/default.nix +++ b/hosts/vps-private/default.nix @@ -33,12 +33,6 @@ ssh.enable = true; exitNode.enable = true; }; - nebula.node = { - enable = true; - address = "10.254.250.2"; - isLighthouse = true; - routableAddress = "49.13.231.235"; - }; syncthing = { enable = true; diff --git a/hosts/vps-private/keys/nebula.crt b/hosts/vps-private/keys/nebula.crt deleted file mode 100644 index 12e3761..0000000 --- a/hosts/vps-private/keys/nebula.crt +++ /dev/null @@ -1,6 +0,0 @@ ------BEGIN NEBULA CERTIFICATE V2----- -MIGqoESAC3Zwcy1wcml2YXRloQcEBQr++gIYhQRpSG/KhgRrKH30hyAVQ/4ZW6re -1yzFagxOA4SEMyUQWl7UCMJuYEUyO3NFaIIgxxdwQe3CJkEjhN6lB0dWCNqjNug5 -oIN9KQTTTCp0dguDQHynn1xdarsZsfvF6ZJB01HrOVgLs2kVod3ZZZD3L8Fe/hfF -TryU5SxJ8MH6irDdtgTs+9pU+BaNWms1X4zfkAQ= ------END NEBULA CERTIFICATE V2----- diff --git a/hosts/vps-private/keys/nebula.pub b/hosts/vps-private/keys/nebula.pub deleted file mode 100644 index c835b45..0000000 --- a/hosts/vps-private/keys/nebula.pub +++ /dev/null @@ -1,3 +0,0 @@ ------BEGIN NEBULA X25519 PUBLIC KEY----- -xxdwQe3CJkEjhN6lB0dWCNqjNug5oIN9KQTTTCp0dgs= ------END NEBULA X25519 PUBLIC KEY----- diff --git a/hosts/vps-private/secrets.json b/hosts/vps-private/secrets.json index 46b3167..aed6713 100644 --- a/hosts/vps-private/secrets.json +++ b/hosts/vps-private/secrets.json @@ -21,9 +21,6 @@ "radicale": { "htpasswd": "ENC[AES256_GCM,data:PaN9mAYR8slQQpojnZpCPMNxgQtvCa0pj90tfUgQr9MFgout7RpbWs97XMzbmWws6ov3g91+0U5l1tcS68O4rQ==,iv:Je68Sg1b5qkx1WYJ5y11yx+ASNd5bk43YpY8axzqNGI=,tag:Ce84ptIiCIRHpZHSoozoyg==,type:str]" }, - "nebula": { - "host-key": "ENC[AES256_GCM,data:dS3tXWUK+POzTZ98wLETaWz4ief/yFULCfI5Y3EbK26KQpwxzw6cpLXUNOSZeUwz9brN/4JcwUgewJR08Uq3HZhKZKoMPZfPRtZMDe51I4RYg4hZd1mMWXQn82KmSytZCiDIL/9qCwYvObVRiNCpAOKRj6JBpgpoQ1u5hgn1EA==,iv:G25EpAnvoLfYXAdPyJVqS3ocUPg5LQlUoi7fA+XFOZ8=,tag:/BNhuxJCunM85H9DnPF5Kg==,type:str]" - }, "sops": { "age": [ { @@ -35,8 +32,8 @@ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqU01heng3NHdrYnZFZmZn\nZlJtUUIyd1ExTmhzeU5iZFZadFcwR25GOEVZCmxHOXNWQVh1ZlJSRHJtaDVHNVUv\nbTY0TlNmZ2hESDkzS2M3WHdlamxwclkKLS0tIEEvOFd3TDFkQmQwbjBodHhpb1BD\nZ2NvTnNqQmtrLy9aVDdGRGxZbVgrZG8KdnnjJWcjZFu3R8fVKToj6THHHRCFou9k\njQoedCZAML2A2FZIhHugH9wnDUPQQjG86WbcCBuFWcOTGiTF2gN+Qg==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2025-12-21T22:05:56Z", - "mac": "ENC[AES256_GCM,data:i6N/BeTtqkiYz5igk7mHxa69Z8MEe2cRF9541P93utNBddrTGev4VQ5VoqEQEkcOpKWvH5DbQcfsa8k60/zaGXJZ9tWbmbBiBTrbjdslpPJTbVkIwMXWYVhbS87WhfAsyQbRzXu73/jArGKVfDPzcdl2FuRmzXZKQkVjRc7x+Rc=,iv:HxjT6ppxY6jkrSPrcP9m84dd2gy2rGCGKV8MdjGy7FA=,tag:KPWQ2nhsGFuhX8ddFhEZow==,type:str]", + "lastmodified": "2025-12-09T12:25:40Z", + "mac": "ENC[AES256_GCM,data:S9WbziGg3LInSZ0ClNa7AKAOHxmYN12K/8Gw0EEWU/Sw5drdQ0UUPapU6r2FJRssQhjw03tOfwylEHO0fFZx9ra0bk9ZX+QrNnktSWNzpJE3XAg9/OzApOoyWptvfxEFLWdYb7FgB4qlK+goNYTiC7sPe1Z4j9Ct25ARfFQYKFc=,iv:7vehA/fdtEJ3B+vnsP2EkaO0L8h4B/gmXudFgJCyyAA=,tag:wBYlqvWDQobqPutTVFbfEA==,type:str]", "unencrypted_suffix": "_unencrypted", "version": "3.11.0" } diff --git a/modules/system/services/caddy.nix b/modules/system/services/caddy.nix index 3bdcde1..f124930 100644 --- a/modules/system/services/caddy.nix +++ b/modules/system/services/caddy.nix @@ -112,7 +112,7 @@ in services.caddy = { package = pkgs.caddy.withPlugins { plugins = [ "github.com/tailscale/caddy-tailscale@v0.0.0-20251117033914-662ef34c64b1" ]; - hash = "sha256-3lc2oSLFIco5Pgz1QNH2hT5tDTPZ4wcbc+NKH9wLEfY="; + hash = "sha256-t2Gw0AbkguS3pwl3FLooK6ZA16mWJLHAkHe3ZdqaE+c="; }; globalConfig = '' tailscale { diff --git a/modules/system/services/nebula/ca.crt b/modules/system/services/nebula/ca.crt deleted file mode 100644 index 7059b2c..0000000 --- a/modules/system/services/nebula/ca.crt +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN NEBULA CERTIFICATE V2----- -MHugFYAEbWFpboQB/4UEaUdKdYYEayh99YIg5FsAhFthpvA/ELlR7NVFGvuIB5Zv -66n1h1qg0vumHY+DQHGky+1qxbGswdyDZBYfqctktyfJUMKk0TZIn6cqYLbydSZJ -J9HxMj2JWu/d/2nsh11uhRwquBH733AmXZ2DDgE= ------END NEBULA CERTIFICATE V2----- diff --git a/modules/system/services/nebula/default.nix b/modules/system/services/nebula/default.nix deleted file mode 100644 index 106328e..0000000 --- a/modules/system/services/nebula/default.nix +++ /dev/null @@ -1,100 +0,0 @@ -{ - config, - self, - lib, - ... -}: -let - cfg = config.custom.services.nebula.node; - - hostname = config.networking.hostName; - - lighthouses = - self.nixosConfigurations - |> lib.filterAttrs (name: _: name != hostname) - |> lib.attrValues - |> lib.map (value: value.config.custom.services.nebula.node) - |> lib.filter (nebula: nebula.enable) - |> lib.filter (nebula: nebula.isLighthouse); -in -{ - options.custom.services.nebula.node = { - enable = lib.mkEnableOption ""; - name = lib.mkOption { - type = lib.types.nonEmptyStr; - default = config.networking.hostName; - }; - address = lib.mkOption { - type = lib.types.nonEmptyStr; - default = ""; - }; - - isLighthouse = lib.mkEnableOption ""; - routableAddress = lib.mkOption { - type = lib.types.nullOr lib.types.nonEmptyStr; - default = null; - }; - routablePort = lib.mkOption { - type = lib.types.nullOr lib.types.port; - default = if cfg.isLighthouse then 47141 else null; - }; - - pubPath = lib.mkOption { - type = lib.types.path; - default = "${self}/hosts/${hostname}/keys/nebula.pub"; - }; - certPath = lib.mkOption { - type = lib.types.path; - default = "${self}/hosts/${hostname}/keys/nebula.crt"; - }; - }; - - config = lib.mkIf cfg.enable { - meta.ports.udp = lib.optional (cfg.routablePort != 0) cfg.routablePort; - - sops.secrets."nebula/host-key" = { - owner = config.users.users.nebula-main.name; - restartUnits = [ "nebula@main.service" ]; - }; - - services.nebula.networks.main = { - enable = true; - - ca = ./ca.crt; - cert = cfg.certPath; - key = config.sops.secrets."nebula/host-key".path; - - listen.port = cfg.routablePort; - - isLighthouse = cfg.isLighthouse; - lighthouses = lib.mkIf (!cfg.isLighthouse) ( - lighthouses |> lib.map (lighthouse: lighthouse.address) - ); - staticHostMap = - lighthouses - |> lib.map (lighthouse: { - name = lighthouse.address; - value = lib.singleton "${lighthouse.routableAddress}:${toString lighthouse.routablePort}"; - }) - |> lib.listToAttrs; - - firewall = { - outbound = lib.singleton { - host = "any"; - port = "any"; - proto = "any"; - }; - inbound = lib.singleton { - host = "any"; - port = "any"; - proto = "any"; - }; - }; - - settings = { - pki.disconnect_invalid = true; - cipher = "aes"; - }; - }; - }; -}