diff --git a/.sops.yaml b/.sops.yaml index 83b1ca1..42ebc43 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -2,6 +2,7 @@ keys: - &primary age1amdd4hu6k0czf3mtlhd03yj3yzkdaynl7q5fdlqmjzpe9pwgxfjs3j0c85 - &yggdrasil age1xxv54tzxz6n4cp4undmejl2lyd7k7s3yh9q0z6ed83evfuz6asqsqhaduv - &loptland age13xshg5e6ucvnu3vqgn344mxpk5kcqutv2lf4gdffvwadq0ku5ewqy4cck6 + - &nixberry age1ev7c7xfz0gmj6p5p8ugzz55y28lsn8fjlk0d8wc3w9drmw4e69ys6z5yg4 creation_rules: - path_regex: secrets/secrets.yaml$ key_groups: @@ -19,3 +20,9 @@ creation_rules: - age: - *primary - *loptland + + - path_regex: secrets/secrets-nixberry.yaml$ + key_groups: + - age: + - *primary + - *nixberry diff --git a/flake.lock b/flake.lock index fc469d1..b44b61c 100644 --- a/flake.lock +++ b/flake.lock @@ -412,7 +412,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_6" + "systems": "systems_5" }, "locked": { "lastModified": 1701680307, @@ -430,7 +430,7 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_7" + "systems": "systems_6" }, "locked": { "lastModified": 1701680307, @@ -1459,6 +1459,7 @@ "snowfall-lib": "snowfall-lib_2", "sops-nix": "sops-nix", "steam-servers": "steam-servers", + "tuya-vaccum-maps": "tuya-vaccum-maps", "zen-browser": "zen-browser" } }, @@ -1864,21 +1865,6 @@ "type": "github" } }, - "systems_7": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -1900,6 +1886,23 @@ "type": "github" } }, + "tuya-vaccum-maps": { + "flake": false, + "locked": { + "lastModified": 1732670317, + "narHash": "sha256-YxeVH0OaZd7MvbURnuiizC6P4MrgEI8Av0jg4PlIiiM=", + "owner": "jaidenlabelle", + "repo": "tuya-vacuum-maps", + "rev": "796da700777fa084fe844ed70c882303a09fc268", + "type": "github" + }, + "original": { + "owner": "jaidenlabelle", + "ref": "v0.1.4", + "repo": "tuya-vacuum-maps", + "type": "github" + } + }, "u-boot-src": { "flake": false, "locked": { @@ -1975,4 +1978,4 @@ }, "root": "root", "version": 7 -} \ No newline at end of file +} diff --git a/flake.nix b/flake.nix index 40d6be0..ce03847 100644 --- a/flake.nix +++ b/flake.nix @@ -86,6 +86,14 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + ############### + # homeassitant + + tuya-vaccum-maps = { + url = "github:jaidenlabelle/tuya-vacuum-maps"; + flake = false; + }; + ################ ## inputs for dev shells diff --git a/secrets/secrets-nixberry.yaml b/secrets/secrets-nixberry.yaml new file mode 100644 index 0000000..fbe6b2a --- /dev/null +++ b/secrets/secrets-nixberry.yaml @@ -0,0 +1,43 @@ +hello: ENC[AES256_GCM,data:Chu3BJw5FUpcyFL0pstHML2ASUFZE/vByvPOLlx7/FB+/TlY0ZOS75XvOLobuw==,iv:FVQkNRCDehby6EmNVIY+qRsHdIxTvVtNeGQrkmlTLPc=,tag:fUS0Ntsn2U3NBT0Jz7NbqQ==,type:str] +example_key: ENC[AES256_GCM,data:JzNQOxeTJW1CACce9Q==,iv:KNpw2AcMallVJRJgM045QVZ1NJhuDPGAq0GS/ffHF9Q=,tag:xe8nGrG8TJeNBRHG4XfJfQ==,type:str] +#ENC[AES256_GCM,data:hF5EESbtBCCkSEhlo7sZhw==,iv:nwEOaph9RXiDPYpFJMFe8xQLg/geF+/uZbh/7OS6pQI=,tag:2VE8ThB2AGhGfcrSv8IMEw==,type:comment] +example_array: + - ENC[AES256_GCM,data:wo1Bhh1uS2YRTUsO/o4=,iv:gexmBvW6Pzllqjy476Bz+k9QGKFwVu5A28QRJ/4kMag=,tag:PTshms817ZQ/q4AKmfShsg==,type:str] + - ENC[AES256_GCM,data:yzAukUqZvAyetJT909w=,iv:yI8DuCL+5UDg68x3DAN90u491HLBBzloRj1MXtyNmGg=,tag:18SuyRpTSKHAVUgs3yeOig==,type:str] +example_number: ENC[AES256_GCM,data:6nVMpQYOEGAyOw==,iv:GdAPLzbtX2+WGebca69WWFp/MDxpn35slcKuVV35RpA=,tag:3CpIbId/k/rkjDRb/Zb+sw==,type:float] +example_booleans: + - ENC[AES256_GCM,data:XSKOGQ==,iv:sGMyrxXDziwegrAesHClLUnUo0pI8s3zFeufTfTqB44=,tag:0AHWfkCFDAHeSZcrQUw42Q==,type:bool] + - ENC[AES256_GCM,data:6zfyErQ=,iv:2XqbeLNj1wMgiX4F0uPykiieR5HiVEsxL0DrgGd1Gao=,tag:ZiB4P71l/vrqllo8mXEp9g==,type:bool] +homeassistant: + location: + latitude: ENC[AES256_GCM,data:BWIGR74SOTQydeREhDFLMAU=,iv:oqCyFzp1ZFzvHIHm1httPgO6mYjRVi456/xw2wyDkxk=,tag:fBak58KkIXLUpBorosZ3jw==,type:float] + longitude: ENC[AES256_GCM,data:ocU0OeFeNk6UX3AT9daYnQw=,iv:nGPYr+ee3QOxX2Tq7H8Qt/ghY2ygt0ztpaAgTyMsLOs=,tag:jIvO1ZLsGCiRFRxoHKzWDA==,type:float] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1amdd4hu6k0czf3mtlhd03yj3yzkdaynl7q5fdlqmjzpe9pwgxfjs3j0c85 + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlTzF0TlpYeVFkNGUwM3g1 + SmRjMUJaVkhwSzN1ckE3WCthaFU0OVhFc0hzCmFjd0lhRlhYMGRKRVMvUTBiRkoy + NUc0amFTWEtkMEp6WHZ5VkM0ODVNM2sKLS0tIHRGTDdkRmtsZFNVQTd1YUhpMkxQ + U2RUUjY5cnBwcEhtRE0wRkxGMWIrYkkKtV692BxbjxbAqyssbh5Whqkytg4LN91x + ZPwVv2s5TuZl7OG0p2qt4rbKg8WCrjK2K0TF2l1Hwdcpbrswf1H1ng== + -----END AGE ENCRYPTED FILE----- + - recipient: age1ev7c7xfz0gmj6p5p8ugzz55y28lsn8fjlk0d8wc3w9drmw4e69ys6z5yg4 + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMVGZudDd5VDlqZERQOVNE + S21PSC9zOFltTHQ1dW9qZ1grem1RdUlBRG5NClZzMEZvVlZ3L0d3MjVvQ1NxQXAz + VGJ1STdsdDVmNzVmbkhQWkt3V0k1QVUKLS0tIHhOTlJ5ZnYzZitEZFNoU2xGdHBx + N1hma0VrbE5HR0xNWVV2NHdMSW0yL1kKrrPaslz+pejsNy/jwopBqi3I9J1PCk+Y + hRgQt4mWfd7ua3Ja+Cq/Rm/pRZFX40g4pImaYdsWL8VNwAJid1WuKQ== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-03-28T12:52:52Z" + mac: ENC[AES256_GCM,data:X/noJJr/L1PfvfIdSoVULpvtH2JDIHnkQBhFqM6k3DR+x+cN+ReLXN/uBQyAKd5uSgsmtl9QjlidzByDqRQaOpqEDIk4o9qbchMLWxceAFZyj+7nFB4e50mu9pyCT2ibumuP5X8kscn4U9x5oiKfoMXB11yqioBtQES4B4mOBsw=,iv:CQcIiNKnzLz5ibGub1hqRkW5m0CjLcWVTyDA2hTJM+M=,tag:7/T1p1ouYTZjYz0+RGG6pg==,type:str] + pgp: [] + unencrypted_suffix: _unencrypted + version: 3.9.4 diff --git a/systems/aarch64-linux/nixberry/default.nix b/systems/aarch64-linux/nixberry/default.nix index 8b50334..e51e9cf 100644 --- a/systems/aarch64-linux/nixberry/default.nix +++ b/systems/aarch64-linux/nixberry/default.nix @@ -1,4 +1,5 @@ { + inputs, lib, namespace, pkgs, @@ -11,6 +12,8 @@ let inherit (lib) mkForce; ipAddress = "192.168.178.2"; + sopsFile = lib.snowfall.fs.get-file "secrets/secrets-nixberry.yaml"; + in { nixpkgs.hostPlatform = { @@ -112,20 +115,47 @@ in }; }; + systemd.tmpfiles.rules = [ + "C /var/lib/hass/custom_components/tuya-vaccum-maps - - - - ${inputs.tuya-vaccum-maps}/custom_components/tuya-vaccum-maps" + "Z /var/lib/hass/custom_components 770 hass hass - -" + ]; + services.home-assistant = { enable = true; configWritable = true; + extraComponents = [ + "analytics" + "shopping_list" + "fritzbox" + "met" + ]; + + customComponents = with pkgs.home-assistant-custom-components; [ + tuya_local + smartthinq-sensors + sleep_as_android + ]; + customLovelaceModules = with pkgs.home-assistant-custom-lovelace-modules; [ + mushroom + ]; + config = { homeassistant = { - name = "Heidelberg"; + latitude = 49.4; + longitude = 8.6; temperature_unit = "C"; unit_system = "metric"; }; + mobile_app = ""; + + lovelace = { + }; + http = { use_x_forwarded_for = true; trusted_proxies = [ - "100.86.250.97" + "100.86.250.97" # loptland tailscale ]; }; };