Misc updates
This commit is contained in:
		
							parent
							
								
									0b5ca6d22c
								
							
						
					
					
						commit
						f51256c3ae
					
				
					 5 changed files with 127 additions and 288 deletions
				
			
		
							
								
								
									
										235
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										235
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -27,20 +27,14 @@
 | 
			
		|||
    },
 | 
			
		||||
    "catppuccin": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "catppuccin-v1_1": "catppuccin-v1_1",
 | 
			
		||||
        "catppuccin-v1_2": "catppuccin-v1_2",
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
        "home-manager-stable": "home-manager-stable",
 | 
			
		||||
        "nixpkgs": "nixpkgs",
 | 
			
		||||
        "nixpkgs-stable": "nixpkgs-stable",
 | 
			
		||||
        "nuscht-search": "nuscht-search"
 | 
			
		||||
        "nixpkgs": "nixpkgs"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1736957255,
 | 
			
		||||
        "narHash": "sha256-qZZ/K5XheRMjCNYgle90QESuys0PIFJNPJJswMJ0GEA=",
 | 
			
		||||
        "lastModified": 1741732420,
 | 
			
		||||
        "narHash": "sha256-szO/TCc+UrjEtxi4K3GyoAv5/DKDkUeRtpTZTJY+zI4=",
 | 
			
		||||
        "owner": "catppuccin",
 | 
			
		||||
        "repo": "nix",
 | 
			
		||||
        "rev": "f06fcadf9a61b6581b392e72f230fa6783fe36e4",
 | 
			
		||||
        "rev": "a3f70463fb5e3df32d2d52a2705606db03843de2",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -49,34 +43,6 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "catppuccin-v1_1": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1734055249,
 | 
			
		||||
        "narHash": "sha256-pCWJgwo77KD7EJpwynwKrWPZ//dwypHq2TfdzZWqK68=",
 | 
			
		||||
        "rev": "7221d6ca17ac36ed20588e1c3a80177ac5843fa7",
 | 
			
		||||
        "revCount": 326,
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.1.1/0193bdc0-b045-7eed-bbec-95611a8ecdf5/source.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://flakehub.com/f/catppuccin/nix/1.1.%2A.tar.gz"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "catppuccin-v1_2": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1734734291,
 | 
			
		||||
        "narHash": "sha256-CFX4diEQHKvZYjnhf7TLg20m3ge1O4vqgplsk/Kuaek=",
 | 
			
		||||
        "rev": "1e4c3803b8da874ff75224ec8512cb173036bbd8",
 | 
			
		||||
        "revCount": 344,
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.1/0193e646-1107-7f69-a402-f2a3988ecf1d/source.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://flakehub.com/f/catppuccin/nix/1.2.%2A.tar.gz"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "deploy-rs": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-compat": "flake-compat",
 | 
			
		||||
| 
						 | 
				
			
			@ -209,7 +175,7 @@
 | 
			
		|||
    },
 | 
			
		||||
    "flake-utils": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems_2"
 | 
			
		||||
        "systems": "systems_3"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1731533236,
 | 
			
		||||
| 
						 | 
				
			
			@ -227,7 +193,7 @@
 | 
			
		|||
    },
 | 
			
		||||
    "flake-utils-plus": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils_3"
 | 
			
		||||
        "flake-utils": "flake-utils_2"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1715533576,
 | 
			
		||||
| 
						 | 
				
			
			@ -248,24 +214,6 @@
 | 
			
		|||
      "inputs": {
 | 
			
		||||
        "systems": "systems_4"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1731533236,
 | 
			
		||||
        "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "flake-utils_3": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems_5"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1694529238,
 | 
			
		||||
        "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
 | 
			
		||||
| 
						 | 
				
			
			@ -334,58 +282,15 @@
 | 
			
		|||
    "home-manager": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "catppuccin",
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1736508663,
 | 
			
		||||
        "narHash": "sha256-ZOaGwa+WnB7Zn3YXimqjmIugAnHePdXCmNu+AHkq808=",
 | 
			
		||||
        "lastModified": 1741701235,
 | 
			
		||||
        "narHash": "sha256-gBlb8R9gnjUAT5XabJeel3C2iEUiBHx3+91651y3Sqo=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "rev": "2532b500c3ed2b8940e831039dcec5a5ea093afc",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "home-manager-stable": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "catppuccin",
 | 
			
		||||
          "nixpkgs-stable"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1736373539,
 | 
			
		||||
        "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "ref": "release-24.11",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "home-manager_2": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1737188535,
 | 
			
		||||
        "narHash": "sha256-O2ttwW1/dUc/Y+Rf48Njtr4tZpRJhy8FhafikekIjMY=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "rev": "1e36429705f9af2d00a517ba46a4f21ef8a8194f",
 | 
			
		||||
        "rev": "c630dfa8abcc65984cc1e47fb25d4552c81dd37e",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -395,7 +300,7 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "home-manager_3": {
 | 
			
		||||
    "home-manager_2": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixvim",
 | 
			
		||||
| 
						 | 
				
			
			@ -418,34 +323,6 @@
 | 
			
		|||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "ixx": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": [
 | 
			
		||||
          "catppuccin",
 | 
			
		||||
          "nuscht-search",
 | 
			
		||||
          "flake-utils"
 | 
			
		||||
        ],
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "catppuccin",
 | 
			
		||||
          "nuscht-search",
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1729958008,
 | 
			
		||||
        "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
 | 
			
		||||
        "owner": "NuschtOS",
 | 
			
		||||
        "repo": "ixx",
 | 
			
		||||
        "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NuschtOS",
 | 
			
		||||
        "ref": "v0.0.6",
 | 
			
		||||
        "repo": "ixx",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "ixx_2": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": [
 | 
			
		||||
          "nixvim",
 | 
			
		||||
| 
						 | 
				
			
			@ -520,11 +397,11 @@
 | 
			
		|||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1737057290,
 | 
			
		||||
        "narHash": "sha256-3Pe0yKlCc7EOeq1X/aJVDH0CtNL+tIBm49vpepwL1MQ=",
 | 
			
		||||
        "lastModified": 1740947705,
 | 
			
		||||
        "narHash": "sha256-Co2kAD2SZalOm+5zoxmzEVZNvZ17TyafuFsD46BwSdY=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "nixos-generators",
 | 
			
		||||
        "rev": "d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453",
 | 
			
		||||
        "rev": "507911df8c35939050ae324caccc7cf4ffb76565",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -535,11 +412,11 @@
 | 
			
		|||
    },
 | 
			
		||||
    "nixos-hardware": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1736978406,
 | 
			
		||||
        "narHash": "sha256-oMr3PVIQ8XPDI8/x6BHxsWEPBRU98Pam6KGVwUh8MPk=",
 | 
			
		||||
        "lastModified": 1741325094,
 | 
			
		||||
        "narHash": "sha256-RUAdT8dZ6k/486vnu3tiNRrNW6+Q8uSD2Mq7gTX4jlo=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixos-hardware",
 | 
			
		||||
        "rev": "b678606690027913f3434dea3864e712b862dde5",
 | 
			
		||||
        "rev": "b48cc4dab0f9711af296fc367b6108cf7b8ccb16",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -551,11 +428,11 @@
 | 
			
		|||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1736012469,
 | 
			
		||||
        "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=",
 | 
			
		||||
        "lastModified": 1741246872,
 | 
			
		||||
        "narHash": "sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d",
 | 
			
		||||
        "rev": "10069ef4cf863633f57238f179a0297de84bd8d3",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -577,29 +454,13 @@
 | 
			
		|||
        "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-stable": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1736061677,
 | 
			
		||||
        "narHash": "sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "cbd8ec4de4469333c82ff40d057350c30e9f7d36",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "ref": "nixos-24.11",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_2": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1737062831,
 | 
			
		||||
        "narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=",
 | 
			
		||||
        "lastModified": 1741513245,
 | 
			
		||||
        "narHash": "sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c",
 | 
			
		||||
        "rev": "e3e32b642a31e6714ec1b712de8c91a3352ce7e1",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -654,7 +515,7 @@
 | 
			
		|||
        "flake-compat": "flake-compat_2",
 | 
			
		||||
        "flake-parts": "flake-parts_2",
 | 
			
		||||
        "git-hooks": "git-hooks",
 | 
			
		||||
        "home-manager": "home-manager_3",
 | 
			
		||||
        "home-manager": "home-manager_2",
 | 
			
		||||
        "nix-darwin": "nix-darwin",
 | 
			
		||||
        "nixpkgs": "nixpkgs_3",
 | 
			
		||||
        "nuschtosSearch": "nuschtosSearch",
 | 
			
		||||
| 
						 | 
				
			
			@ -674,33 +535,10 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nuscht-search": {
 | 
			
		||||
    "nuschtosSearch": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils",
 | 
			
		||||
        "ixx": "ixx",
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "catppuccin",
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1735854821,
 | 
			
		||||
        "narHash": "sha256-Iv59gMDZajNfezTO0Fw6LHE7uKAShxbvMidmZREit7c=",
 | 
			
		||||
        "owner": "NuschtOS",
 | 
			
		||||
        "repo": "search",
 | 
			
		||||
        "rev": "836908e3bddd837ae0f13e215dd48767aee355f0",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NuschtOS",
 | 
			
		||||
        "repo": "search",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nuschtosSearch": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils_2",
 | 
			
		||||
        "ixx": "ixx_2",
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixvim",
 | 
			
		||||
          "nixvim",
 | 
			
		||||
| 
						 | 
				
			
			@ -724,11 +562,11 @@
 | 
			
		|||
    "powerlevel10k": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1736162665,
 | 
			
		||||
        "narHash": "sha256-6tWuayZgQd9pUrD3xKlUSmOFQCgZ96G3DB8ojgZ/a78=",
 | 
			
		||||
        "lastModified": 1738157299,
 | 
			
		||||
        "narHash": "sha256-isxgLWpbBuNoETXCOlJ4nwGSxMwCjoVF5D0dMZWtM5s=",
 | 
			
		||||
        "owner": "romkatv",
 | 
			
		||||
        "repo": "powerlevel10k",
 | 
			
		||||
        "rev": "3e2053a9341fe4cf5ab69909d3f39d53b1dfe772",
 | 
			
		||||
        "rev": "8fa10f43a0f65a5e15417128be63e68e1d5b1f66",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -743,7 +581,7 @@
 | 
			
		|||
        "agenix": "agenix",
 | 
			
		||||
        "catppuccin": "catppuccin",
 | 
			
		||||
        "deploy-rs": "deploy-rs",
 | 
			
		||||
        "home-manager": "home-manager_2",
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
        "nixos-generators": "nixos-generators",
 | 
			
		||||
        "nixos-hardware": "nixos-hardware",
 | 
			
		||||
        "nixpkgs": "nixpkgs_2",
 | 
			
		||||
| 
						 | 
				
			
			@ -835,21 +673,6 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "systems_5": {
 | 
			
		||||
      "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": [
 | 
			
		||||
| 
						 | 
				
			
			@ -874,7 +697,7 @@
 | 
			
		|||
    },
 | 
			
		||||
    "utils": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems_3"
 | 
			
		||||
        "systems": "systems_2"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1701680307,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,12 +4,19 @@
 | 
			
		|||
  pkgs,
 | 
			
		||||
  namespace,
 | 
			
		||||
  ...
 | 
			
		||||
}: let
 | 
			
		||||
  inherit (lib) mkIf mkEnableOption mkOption types;
 | 
			
		||||
}:
 | 
			
		||||
let
 | 
			
		||||
  inherit (lib)
 | 
			
		||||
    mkIf
 | 
			
		||||
    mkEnableOption
 | 
			
		||||
    mkOption
 | 
			
		||||
    types
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
  cfg = config.${namespace}.services.homeassistant;
 | 
			
		||||
  hass_cfg = config.services.home-assistant;
 | 
			
		||||
in {
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  options.${namespace}.services.homeassistant = {
 | 
			
		||||
    enable = mkEnableOption "home assistant";
 | 
			
		||||
    acmeCertName = mkOption {
 | 
			
		||||
| 
						 | 
				
			
			@ -25,14 +32,24 @@ in {
 | 
			
		|||
  config = mkIf cfg.enable {
 | 
			
		||||
    services.home-assistant = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      extraPackages = python3packages:
 | 
			
		||||
        with python3packages; [
 | 
			
		||||
      extraPackages =
 | 
			
		||||
        python3packages: with python3packages; [
 | 
			
		||||
          # postgresql support
 | 
			
		||||
          psycopg2
 | 
			
		||||
 | 
			
		||||
          # homekit support
 | 
			
		||||
          hap-python
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
      extraComponents = [
 | 
			
		||||
        "3_day_blinds"
 | 
			
		||||
        "motion_blinds"
 | 
			
		||||
 | 
			
		||||
        "opower"
 | 
			
		||||
        "smud"
 | 
			
		||||
 | 
			
		||||
        "cast"
 | 
			
		||||
        "homekit_controller"
 | 
			
		||||
        "hue"
 | 
			
		||||
        "met"
 | 
			
		||||
        "mqtt"
 | 
			
		||||
| 
						 | 
				
			
			@ -46,10 +63,10 @@ in {
 | 
			
		|||
      ];
 | 
			
		||||
 | 
			
		||||
      config = {
 | 
			
		||||
        default_config = {};
 | 
			
		||||
        default_config = { };
 | 
			
		||||
        http = {
 | 
			
		||||
          use_x_forwarded_for = true;
 | 
			
		||||
          trusted_proxies = ["127.0.0.1"];
 | 
			
		||||
          trusted_proxies = [ "127.0.0.1" ];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        recorder.db_url = "postgresql://@/hass";
 | 
			
		||||
| 
						 | 
				
			
			@ -75,7 +92,7 @@ in {
 | 
			
		|||
    };
 | 
			
		||||
 | 
			
		||||
    services.postgresql = {
 | 
			
		||||
      ensureDatabases = ["hass"];
 | 
			
		||||
      ensureDatabases = [ "hass" ];
 | 
			
		||||
      ensureUsers = [
 | 
			
		||||
        {
 | 
			
		||||
          name = "hass";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,8 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: let
 | 
			
		||||
}:
 | 
			
		||||
let
 | 
			
		||||
  cfg = config.aa.services.nextcloud;
 | 
			
		||||
  secrets = config.age.secrets;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +16,8 @@
 | 
			
		|||
      group = "nextcloud";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
in {
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  options.aa.services.nextcloud = with lib; {
 | 
			
		||||
    enable = mkEnableOption "nextcloud";
 | 
			
		||||
    acmeCertName = mkOption {
 | 
			
		||||
| 
						 | 
				
			
			@ -29,28 +31,30 @@ in {
 | 
			
		|||
  };
 | 
			
		||||
 | 
			
		||||
  config = lib.mkIf cfg.enable {
 | 
			
		||||
    age.secrets = builtins.listToAttrs (builtins.map (attrs: mkNextcloudSecret attrs) [
 | 
			
		||||
      {
 | 
			
		||||
        name = "restic/password";
 | 
			
		||||
        path = ../../../../secrets/nextcloud_restic_password.age;
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        name = "restic/env";
 | 
			
		||||
        path = ../../../../secrets/nextcloud_restic_env.age;
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        name = "restic/repo";
 | 
			
		||||
        path = ../../../../secrets/nextcloud_restic_repo.age;
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        name = "nextcloud_admin";
 | 
			
		||||
        path = ../../../../secrets/nextcloud_admin.age;
 | 
			
		||||
      }
 | 
			
		||||
    ]);
 | 
			
		||||
    age.secrets = builtins.listToAttrs (
 | 
			
		||||
      builtins.map (attrs: mkNextcloudSecret attrs) [
 | 
			
		||||
        {
 | 
			
		||||
          name = "restic/password";
 | 
			
		||||
          path = ../../../../secrets/nextcloud_restic_password.age;
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          name = "restic/env";
 | 
			
		||||
          path = ../../../../secrets/nextcloud_restic_env.age;
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          name = "restic/repo";
 | 
			
		||||
          path = ../../../../secrets/nextcloud_restic_repo.age;
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          name = "nextcloud_admin";
 | 
			
		||||
          path = ../../../../secrets/nextcloud_admin.age;
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    services.nextcloud = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      package = pkgs.nextcloud30;
 | 
			
		||||
      package = pkgs.nextcloud31;
 | 
			
		||||
      hostName = "nextcloud.kilonull.com";
 | 
			
		||||
      https = true;
 | 
			
		||||
      database.createLocally = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -75,16 +79,18 @@ in {
 | 
			
		|||
    };
 | 
			
		||||
 | 
			
		||||
    # nextcloud module configures nginx, just need to specify SSL stuffs here
 | 
			
		||||
    services.nginx.virtualHosts.${config.services.nextcloud.hostName} = lib.mkIf (cfg.acmeCertName != "") {
 | 
			
		||||
      forceSSL = true;
 | 
			
		||||
      useACMEHost = cfg.acmeCertName;
 | 
			
		||||
    };
 | 
			
		||||
    services.nginx.virtualHosts.${config.services.nextcloud.hostName} =
 | 
			
		||||
      lib.mkIf (cfg.acmeCertName != "")
 | 
			
		||||
        {
 | 
			
		||||
          forceSSL = true;
 | 
			
		||||
          useACMEHost = cfg.acmeCertName;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
    services.restic.backups = {
 | 
			
		||||
      nextcloud = {
 | 
			
		||||
        user = "nextcloud";
 | 
			
		||||
        initialize = true;
 | 
			
		||||
        paths = [config.services.nextcloud.datadir];
 | 
			
		||||
        paths = [ config.services.nextcloud.datadir ];
 | 
			
		||||
        environmentFile = secrets."restic/env".path;
 | 
			
		||||
        repositoryFile = secrets."restic/repo".path;
 | 
			
		||||
        passwordFile = secrets."restic/password".path;
 | 
			
		||||
| 
						 | 
				
			
			@ -93,10 +99,18 @@ in {
 | 
			
		|||
          Persistent = true;
 | 
			
		||||
          RandomizedDelaySec = "5h";
 | 
			
		||||
        };
 | 
			
		||||
        pruneOpts = ["--keep-daily 7" "--keep-weekly 5" "--keep-monthly 12" "--keep-yearly 9001"];
 | 
			
		||||
        pruneOpts = [
 | 
			
		||||
          "--keep-daily 7"
 | 
			
		||||
          "--keep-weekly 5"
 | 
			
		||||
          "--keep-monthly 12"
 | 
			
		||||
          "--keep-yearly 9001"
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    networking.firewall.allowedTCPPorts = [80 443];
 | 
			
		||||
    networking.firewall.allowedTCPPorts = [
 | 
			
		||||
      80
 | 
			
		||||
      443
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,8 @@
 | 
			
		|||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./hardware-configuration.nix
 | 
			
		||||
    ./zfs.nix
 | 
			
		||||
| 
						 | 
				
			
			@ -62,7 +63,10 @@
 | 
			
		|||
    system.zfs.enable = true;
 | 
			
		||||
    system.monitoring.enable = true;
 | 
			
		||||
 | 
			
		||||
    user.extraGroups = ["dialout" "libvirtd"];
 | 
			
		||||
    user.extraGroups = [
 | 
			
		||||
      "dialout"
 | 
			
		||||
      "libvirtd"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services.udev.packages = [
 | 
			
		||||
| 
						 | 
				
			
			@ -110,12 +114,18 @@
 | 
			
		|||
 | 
			
		||||
  programs.virt-manager.enable = true;
 | 
			
		||||
 | 
			
		||||
  boot.binfmt.emulatedSystems = ["aarch64-linux" "armv6l-linux"];
 | 
			
		||||
  boot.binfmt.emulatedSystems = [
 | 
			
		||||
    "aarch64-linux"
 | 
			
		||||
    "armv6l-linux"
 | 
			
		||||
  ];
 | 
			
		||||
  networking = {
 | 
			
		||||
    hostName = "gospel";
 | 
			
		||||
    useDHCP = false;
 | 
			
		||||
    defaultGateway = "192.168.113.1";
 | 
			
		||||
    nameservers = ["192.168.113.13" "1.1.1.1"];
 | 
			
		||||
    networkmanager.enable = true;
 | 
			
		||||
    nameservers = [
 | 
			
		||||
      "192.168.113.1"
 | 
			
		||||
      "1.1.1.1"
 | 
			
		||||
    ];
 | 
			
		||||
    interfaces.eno1.ipv4.addresses = [
 | 
			
		||||
      {
 | 
			
		||||
        address = "192.168.113.69"; # nice
 | 
			
		||||
| 
						 | 
				
			
			@ -123,6 +133,11 @@
 | 
			
		|||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
  programs.winbox = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    openFirewall = true;
 | 
			
		||||
  };
 | 
			
		||||
  programs.nm-applet.enable = true;
 | 
			
		||||
 | 
			
		||||
  time.timeZone = "America/Los_Angeles";
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,8 @@
 | 
			
		|||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./hardware-configuration.nix
 | 
			
		||||
    ./zfs.nix
 | 
			
		||||
| 
						 | 
				
			
			@ -24,10 +25,6 @@
 | 
			
		|||
      configureServerRouting = true;
 | 
			
		||||
    };
 | 
			
		||||
    services.openssh.enable = true;
 | 
			
		||||
    services.adguardhome = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      acmeCertName = "kilonull.com";
 | 
			
		||||
    };
 | 
			
		||||
    services.nextcloud = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      acmeCertName = "kilonull.com";
 | 
			
		||||
| 
						 | 
				
			
			@ -75,32 +72,16 @@
 | 
			
		|||
    apps.yubikey.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Rewrite specific to this machine (didn't want to put this in my adguardhome
 | 
			
		||||
  # module incase I want to reuse it for something else later)
 | 
			
		||||
  services.adguardhome.settings.filtering.rewrites = [
 | 
			
		||||
    {
 | 
			
		||||
      domain = "octoprint.kilonull.com";
 | 
			
		||||
      answer = "192.168.113.42";
 | 
			
		||||
    }
 | 
			
		||||
    {
 | 
			
		||||
      domain = "hydra.kilonull.com";
 | 
			
		||||
      answer = "192.168.113.69";
 | 
			
		||||
    }
 | 
			
		||||
    {
 | 
			
		||||
      domain = "cache.kilonull.com";
 | 
			
		||||
      answer = "192.168.113.69";
 | 
			
		||||
    }
 | 
			
		||||
    {
 | 
			
		||||
      domain = "*.kilonull.com";
 | 
			
		||||
      answer = "192.168.113.13";
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
  services.avahi = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    nssmdns4 = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  security.pam.sshAgentAuth = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    # Addresses issue 31611
 | 
			
		||||
    # See: https://github.com/NixOS/nixpkgs/issues/31611
 | 
			
		||||
    authorizedKeysFiles = lib.mkForce ["/etc/ssh/authorized_keys.d/%u"];
 | 
			
		||||
    authorizedKeysFiles = lib.mkForce [ "/etc/ssh/authorized_keys.d/%u" ];
 | 
			
		||||
  };
 | 
			
		||||
  security.pam.services.${config.aa.user.name}.sshAgentAuth = true;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -115,7 +96,10 @@
 | 
			
		|||
    hostName = "node";
 | 
			
		||||
    useDHCP = false;
 | 
			
		||||
    defaultGateway = "192.168.113.1";
 | 
			
		||||
    nameservers = ["127.0.0.1" "1.1.1.1"];
 | 
			
		||||
    nameservers = [
 | 
			
		||||
      "192.168.113.1"
 | 
			
		||||
      "1.1.1.1"
 | 
			
		||||
    ];
 | 
			
		||||
    interfaces.enp7s0.ipv4.addresses = [
 | 
			
		||||
      {
 | 
			
		||||
        address = "192.168.113.13";
 | 
			
		||||
| 
						 | 
				
			
			@ -124,20 +108,6 @@
 | 
			
		|||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Running own DNS resolver on same system. This prevents DNS issues with ACME
 | 
			
		||||
  systemd.services = let
 | 
			
		||||
    dependency = ["adguardhome.service"];
 | 
			
		||||
  in
 | 
			
		||||
    lib.mapAttrs'
 | 
			
		||||
    (name: _:
 | 
			
		||||
      lib.nameValuePair "acme-${name}" {
 | 
			
		||||
        after = dependency;
 | 
			
		||||
        preStart = ''
 | 
			
		||||
          sleep 10
 | 
			
		||||
        '';
 | 
			
		||||
      })
 | 
			
		||||
    config.security.acme.certs;
 | 
			
		||||
 | 
			
		||||
  # List packages installed in system profile. To search, run:
 | 
			
		||||
  # $ nix search wget
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue