Nix configurations for my homelab

tangled: rename tangled.sh -> tangled.org

yemou.pink 778579c1 527b3b2d

verified
Changed files
+53 -36
modules
services
caddy
websites
+44 -27
flake.lock
··· 8 }, 9 "locked": { 10 "dir": "blender", 11 - "lastModified": 1755896146, 12 - "narHash": "sha256-JAVIWAMG3imYamhxvx94FtvHt17pC/z2fCHDiwla45I=", 13 "owner": "edolstra", 14 "repo": "nix-warez", 15 - "rev": "8ae661516ca53314cfad8a8d3ab41e2274fdc168", 16 "type": "github" 17 }, 18 "original": { ··· 78 "inputs": { 79 "flake-utils": "flake-utils_2", 80 "nixpkgs": [ 81 - "tangled-sh", 82 "nixpkgs" 83 ] 84 }, ··· 103 ] 104 }, 105 "locked": { 106 - "lastModified": 1757529548, 107 - "narHash": "sha256-If5AT3dPXH0BM+q+pwyZvtWLTmlqJmGW6IDZ2MqlGRU=", 108 "owner": "nix-community", 109 "repo": "home-manager", 110 - "rev": "e0154ae41614e32a443c43ee51eee9eed3ad9a48", 111 "type": "github" 112 }, 113 "original": { ··· 212 }, 213 "nixpkgs": { 214 "locked": { 215 - "lastModified": 1757536220, 216 - "narHash": "sha256-isLCR9rmUj451Vlu7XhlSeaTSsvwV5J6KaFIpJ124rI=", 217 "owner": "NixOS", 218 "repo": "nixpkgs", 219 - "rev": "ed1362ec8b9519b3f2f6dcaa81362f8b626e43a1", 220 "type": "github" 221 }, 222 "original": { 223 "owner": "NixOS", 224 "ref": "nixos-unstable-small", 225 "repo": "nixpkgs", 226 "type": "github" 227 } ··· 244 }, 245 "nixpkgs_3": { 246 "locked": { 247 - "lastModified": 1757034884, 248 - "narHash": "sha256-PgLSZDBEWUHpfTRfFyklmiiLBE1i1aGCtz4eRA3POao=", 249 "owner": "NixOS", 250 "repo": "nixpkgs", 251 - "rev": "ca77296380960cd497a765102eeb1356eb80fed0", 252 "type": "github" 253 }, 254 "original": { ··· 282 "rust-overlay": "rust-overlay" 283 }, 284 "locked": { 285 - "lastModified": 1757435427, 286 - "narHash": "sha256-NVSIJm+GIWJlqLFXiK7POM9KuOEFJa4FAz9d9aB0exY=", 287 "owner": "roc-lang", 288 "repo": "roc", 289 - "rev": "0331d5aebe0d6b1b2393c116c94ef733f5e9582a", 290 "type": "github" 291 }, 292 "original": { ··· 301 "home-manager": "home-manager", 302 "impermanence": "impermanence", 303 "nixpkgs": "nixpkgs", 304 "roc-lang": "roc-lang", 305 "sops-nix": "sops-nix", 306 - "tangled-sh": "tangled-sh", 307 "yemou-dotfiles": "yemou-dotfiles", 308 "yemou-scripts": "yemou-scripts" 309 } ··· 334 "nixpkgs": "nixpkgs_3" 335 }, 336 "locked": { 337 - "lastModified": 1757503115, 338 - "narHash": "sha256-S9F6bHUBh+CFEUalv/qxNImRapCxvSnOzWBUZgK1zDU=", 339 "owner": "Mic92", 340 "repo": "sops-nix", 341 - "rev": "0bf793823386187dff101ee2a9d4ed26de8bbf8c", 342 "type": "github" 343 }, 344 "original": { ··· 390 "type": "github" 391 } 392 }, 393 - "tangled-sh": { 394 "inputs": { 395 "gomod2nix": "gomod2nix", 396 "htmx-src": "htmx-src", ··· 409 "rev": "6200797b6377ab37640e9236633df2b845ae4c49", 410 "revCount": 1335, 411 "type": "git", 412 - "url": "https://tangled.sh/@tangled.sh/core" 413 }, 414 "original": { 415 "ref": "refs/tags/v1.9.0-alpha", 416 "type": "git", 417 - "url": "https://tangled.sh/@tangled.sh/core" 418 } 419 }, 420 "yemou-dotfiles": { ··· 426 "rev": "e707438e1157ac7b085c48c44bab3948d07825a6", 427 "revCount": 102, 428 "type": "git", 429 - "url": "https://tangled.sh/@yemou.pink/dotfiles" 430 }, 431 "original": { 432 "type": "git", 433 - "url": "https://tangled.sh/@yemou.pink/dotfiles" 434 } 435 }, 436 "yemou-scripts": { ··· 446 "rev": "a0196a345c63894e8ce671ef660c34ce44890150", 447 "revCount": 30, 448 "type": "git", 449 - "url": "https://tangled.sh/@yemou.pink/scripts" 450 }, 451 "original": { 452 "type": "git", 453 - "url": "https://tangled.sh/@yemou.pink/scripts" 454 } 455 } 456 },
··· 8 }, 9 "locked": { 10 "dir": "blender", 11 + "lastModified": 1758185131, 12 + "narHash": "sha256-GlScQnoFgaFLQ9cd4llbJSisR0LjafjMAkBZQV7m4uk=", 13 "owner": "edolstra", 14 "repo": "nix-warez", 15 + "rev": "f49a87422539d748a34b9f3b07a7b8ced7242dff", 16 "type": "github" 17 }, 18 "original": { ··· 78 "inputs": { 79 "flake-utils": "flake-utils_2", 80 "nixpkgs": [ 81 + "tangled", 82 "nixpkgs" 83 ] 84 }, ··· 103 ] 104 }, 105 "locked": { 106 + "lastModified": 1758207369, 107 + "narHash": "sha256-BG7GlXo5moXtrFSCqnkIb1Q00szOZXTj5Dx7NmWgves=", 108 "owner": "nix-community", 109 "repo": "home-manager", 110 + "rev": "b5698ed57db7ee7da5e93df2e6bbada91c88f3ce", 111 "type": "github" 112 }, 113 "original": { ··· 212 }, 213 "nixpkgs": { 214 "locked": { 215 + "lastModified": 1758229499, 216 + "narHash": "sha256-5TS4Rtwpdg/oR26AsvPfWiBGRm9fsPEJH0Ig+Dr6Sfw=", 217 "owner": "NixOS", 218 "repo": "nixpkgs", 219 + "rev": "971d10cf2dd0dd459d907ba777b429649f56b50b", 220 "type": "github" 221 }, 222 "original": { 223 "owner": "NixOS", 224 "ref": "nixos-unstable-small", 225 + "repo": "nixpkgs", 226 + "type": "github" 227 + } 228 + }, 229 + "nixpkgs-stable": { 230 + "locked": { 231 + "lastModified": 1758070117, 232 + "narHash": "sha256-uLwwHFCZnT1c3N3biVe/0hCkag2GSrf9+M56+Okf+WY=", 233 + "owner": "NixOS", 234 + "repo": "nixpkgs", 235 + "rev": "e9b7f2ff62b35f711568b1f0866243c7c302028d", 236 + "type": "github" 237 + }, 238 + "original": { 239 + "owner": "NixOS", 240 + "ref": "nixos-25.05", 241 "repo": "nixpkgs", 242 "type": "github" 243 } ··· 260 }, 261 "nixpkgs_3": { 262 "locked": { 263 + "lastModified": 1757746433, 264 + "narHash": "sha256-fEvTiU4s9lWgW7mYEU/1QUPirgkn+odUBTaindgiziY=", 265 "owner": "NixOS", 266 "repo": "nixpkgs", 267 + "rev": "6d7ec06d6868ac6d94c371458fc2391ded9ff13d", 268 "type": "github" 269 }, 270 "original": { ··· 298 "rust-overlay": "rust-overlay" 299 }, 300 "locked": { 301 + "lastModified": 1757897943, 302 + "narHash": "sha256-XHW5OewFMYQ7eiQ/X+uoruMTDKn/IGeDXr+Le6sa7Cw=", 303 "owner": "roc-lang", 304 "repo": "roc", 305 + "rev": "211b42db82b20495f797865014fe043abef80ffd", 306 "type": "github" 307 }, 308 "original": { ··· 317 "home-manager": "home-manager", 318 "impermanence": "impermanence", 319 "nixpkgs": "nixpkgs", 320 + "nixpkgs-stable": "nixpkgs-stable", 321 "roc-lang": "roc-lang", 322 "sops-nix": "sops-nix", 323 + "tangled": "tangled", 324 "yemou-dotfiles": "yemou-dotfiles", 325 "yemou-scripts": "yemou-scripts" 326 } ··· 351 "nixpkgs": "nixpkgs_3" 352 }, 353 "locked": { 354 + "lastModified": 1758007585, 355 + "narHash": "sha256-HYnwlbY6RE5xVd5rh0bYw77pnD8lOgbT4mlrfjgNZ0c=", 356 "owner": "Mic92", 357 "repo": "sops-nix", 358 + "rev": "f77d4cfa075c3de66fc9976b80e0c4fc69e2c139", 359 "type": "github" 360 }, 361 "original": { ··· 407 "type": "github" 408 } 409 }, 410 + "tangled": { 411 "inputs": { 412 "gomod2nix": "gomod2nix", 413 "htmx-src": "htmx-src", ··· 426 "rev": "6200797b6377ab37640e9236633df2b845ae4c49", 427 "revCount": 1335, 428 "type": "git", 429 + "url": "https://tangled.org/@tangled.org/core" 430 }, 431 "original": { 432 "ref": "refs/tags/v1.9.0-alpha", 433 "type": "git", 434 + "url": "https://tangled.org/@tangled.org/core" 435 } 436 }, 437 "yemou-dotfiles": { ··· 443 "rev": "e707438e1157ac7b085c48c44bab3948d07825a6", 444 "revCount": 102, 445 "type": "git", 446 + "url": "https://tangled.org/@yemou.pink/dotfiles" 447 }, 448 "original": { 449 "type": "git", 450 + "url": "https://tangled.org/@yemou.pink/dotfiles" 451 } 452 }, 453 "yemou-scripts": { ··· 463 "rev": "a0196a345c63894e8ce671ef660c34ce44890150", 464 "revCount": 30, 465 "type": "git", 466 + "url": "https://tangled.org/@yemou.pink/scripts" 467 }, 468 "original": { 469 "type": "git", 470 + "url": "https://tangled.org/@yemou.pink/scripts" 471 } 472 } 473 },
+3 -3
flake.nix
··· 5 sops-nix.url = "github:Mic92/sops-nix"; 6 7 yemou-dotfiles = { 8 - url = "git+https://tangled.sh/@yemou.pink/dotfiles"; 9 flake = false; 10 }; 11 yemou-scripts = { 12 - url = "git+https://tangled.sh/@yemou.pink/scripts"; 13 inputs.nixpkgs.follows = "nixpkgs"; 14 }; 15 home-manager = { ··· 22 inputs.nixpkgs.follows = "nixpkgs"; 23 }; 24 roc-lang.url = "github:roc-lang/roc"; 25 - tangled-sh.url = "git+https://tangled.sh/@tangled.sh/core?ref=refs/tags/v1.9.0-alpha"; 26 }; 27 28 outputs =
··· 5 sops-nix.url = "github:Mic92/sops-nix"; 6 7 yemou-dotfiles = { 8 + url = "git+https://tangled.org/@yemou.pink/dotfiles"; 9 flake = false; 10 }; 11 yemou-scripts = { 12 + url = "git+https://tangled.org/@yemou.pink/scripts"; 13 inputs.nixpkgs.follows = "nixpkgs"; 14 }; 15 home-manager = { ··· 22 inputs.nixpkgs.follows = "nixpkgs"; 23 }; 24 roc-lang.url = "github:roc-lang/roc"; 25 + tangled.url = "git+https://tangled.org/@tangled.org/core?ref=refs/tags/v1.9.0-alpha"; 26 }; 27 28 outputs =
+1 -1
modules/nix.nix
··· 40 }; 41 registry.seed.to = { 42 type = "git"; 43 - url = "https://tangled.sh/@yemou.pink/seed"; 44 }; 45 }; 46 }
··· 40 }; 41 registry.seed.to = { 42 type = "git"; 43 + url = "https://tangled.org/@yemou.pink/seed"; 44 }; 45 }; 46 }
+1 -1
modules/services/caddy/websites/pink-yemou.nix
··· 16 expression `{path} == "/"` 17 } 18 19 - redir @redirect https://tangled.sh/@yemou.pink 20 21 handle_errors { 22 respond "{err.status_code} {err.status_text}"
··· 16 expression `{path} == "/"` 17 } 18 19 + redir @redirect https://tangled.org/@yemou.pink 20 21 handle_errors { 22 respond "{err.status_code} {err.status_text}"
+2 -2
modules/services/tangled.nix
··· 1 - { config, tangled-sh, ... }: 2 { 3 - imports = [ tangled-sh.nixosModules.knot ]; 4 5 environment.persistence."/data/persistent".directories = [ 6 {
··· 1 + { config, tangled, ... }: 2 { 3 + imports = [ tangled.nixosModules.knot ]; 4 5 environment.persistence."/data/persistent".directories = [ 6 {
+2 -2
readme.md
··· 9 # Dotfiles 10 This repo only contains configurations for setting up each machine. 11 Configurations specific to an application (i.e. text editor config, shell config, etc.) are stored in a 12 - [different git repository](https://tangled.sh/@yemou.pink/dotfiles). 13 14 This separation is so I don't need to perform a `nixos-rebuild` when changing application configs on my desktop. 15 My dotfiles are still included as an input to this flake so that changes stay in sync on machines where I don't manually ··· 20 - [Caddy](https://caddyserver.com) 21 - [Nextcloud](https://nextcloud.com) 22 - [soju](https://soju.im) 23 - - [tangled-knot](https://tangled.sh/@tangled.sh/core)
··· 9 # Dotfiles 10 This repo only contains configurations for setting up each machine. 11 Configurations specific to an application (i.e. text editor config, shell config, etc.) are stored in a 12 + [different git repository](https://tangled.org/@yemou.pink/dotfiles). 13 14 This separation is so I don't need to perform a `nixos-rebuild` when changing application configs on my desktop. 15 My dotfiles are still included as an input to this flake so that changes stay in sync on machines where I don't manually ··· 20 - [Caddy](https://caddyserver.com) 21 - [Nextcloud](https://nextcloud.com) 22 - [soju](https://soju.im) 23 + - [tangled-knot](https://tangled.org/@tangled.org/core)