Personal-use NixOS configuration
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Start work on Tangled Knot

encode42 3b86a8c9 58f08e04

+281
+208
flake.lock
··· 1 1 { 2 2 "nodes": { 3 + "actor-typeahead-src": { 4 + "flake": false, 5 + "locked": { 6 + "lastModified": 1762835797, 7 + "narHash": "sha256-heizoWUKDdar6ymfZTnj3ytcEv/L4d4fzSmtr0HlXsQ=", 8 + "ref": "refs/heads/main", 9 + "rev": "677fe7f743050a4e7f09d4a6f87bbf1325a06f6b", 10 + "revCount": 6, 11 + "type": "git", 12 + "url": "https://tangled.org/@jakelazaroff.com/actor-typeahead" 13 + }, 14 + "original": { 15 + "type": "git", 16 + "url": "https://tangled.org/@jakelazaroff.com/actor-typeahead" 17 + } 18 + }, 3 19 "crane": { 4 20 "locked": { 5 21 "lastModified": 1754269165, ··· 142 158 "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" 143 159 } 144 160 }, 161 + "flake-compat_4": { 162 + "flake": false, 163 + "locked": { 164 + "lastModified": 1751685974, 165 + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", 166 + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", 167 + "type": "tarball", 168 + "url": "https://git.lix.systems/api/v1/repos/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz?rev=549f2762aebeff29a2e5ece7a7dc0f955281a1d1" 169 + }, 170 + "original": { 171 + "type": "tarball", 172 + "url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz" 173 + } 174 + }, 145 175 "flake-parts": { 146 176 "inputs": { 147 177 "nixpkgs-lib": [ ··· 199 229 "type": "github" 200 230 } 201 231 }, 232 + "flake-utils_2": { 233 + "inputs": { 234 + "systems": "systems_3" 235 + }, 236 + "locked": { 237 + "lastModified": 1731533236, 238 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 239 + "owner": "numtide", 240 + "repo": "flake-utils", 241 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 242 + "type": "github" 243 + }, 244 + "original": { 245 + "owner": "numtide", 246 + "repo": "flake-utils", 247 + "type": "github" 248 + } 249 + }, 202 250 "flakey-profile": { 203 251 "locked": { 204 252 "lastModified": 1712898590, ··· 236 284 "type": "github" 237 285 } 238 286 }, 287 + "gomod2nix": { 288 + "inputs": { 289 + "flake-utils": "flake-utils_2", 290 + "nixpkgs": [ 291 + "tangled", 292 + "nixpkgs" 293 + ] 294 + }, 295 + "locked": { 296 + "lastModified": 1763982521, 297 + "narHash": "sha256-ur4QIAHwgFc0vXiaxn5No/FuZicxBr2p0gmT54xZkUQ=", 298 + "owner": "nix-community", 299 + "repo": "gomod2nix", 300 + "rev": "02e63a239d6eabd595db56852535992c898eba72", 301 + "type": "github" 302 + }, 303 + "original": { 304 + "owner": "nix-community", 305 + "repo": "gomod2nix", 306 + "type": "github" 307 + } 308 + }, 239 309 "home-manager": { 240 310 "inputs": { 241 311 "nixpkgs": [ ··· 257 327 "type": "github" 258 328 } 259 329 }, 330 + "htmx-src": { 331 + "flake": false, 332 + "locked": { 333 + "narHash": "sha256-nm6avZuEBg67SSyyZUhjpXVNstHHgUxrtBHqJgowU08=", 334 + "type": "file", 335 + "url": "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js" 336 + }, 337 + "original": { 338 + "type": "file", 339 + "url": "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js" 340 + } 341 + }, 342 + "htmx-ws-src": { 343 + "flake": false, 344 + "locked": { 345 + "narHash": "sha256-2fg6KyEJoO24q0fQqbz9RMaYNPQrMwpZh29tkSqdqGY=", 346 + "type": "file", 347 + "url": "https://cdn.jsdelivr.net/npm/htmx-ext-ws@2.0.2" 348 + }, 349 + "original": { 350 + "type": "file", 351 + "url": "https://cdn.jsdelivr.net/npm/htmx-ext-ws@2.0.2" 352 + } 353 + }, 354 + "ibm-plex-mono-src": { 355 + "flake": false, 356 + "locked": { 357 + "lastModified": 1731402384, 358 + "narHash": "sha256-OwUmrPfEehLDz0fl2ChYLK8FQM2p0G1+EMrGsYEq+6g=", 359 + "type": "tarball", 360 + "url": "https://github.com/IBM/plex/releases/download/@ibm/plex-mono@1.1.0/ibm-plex-mono.zip" 361 + }, 362 + "original": { 363 + "type": "tarball", 364 + "url": "https://github.com/IBM/plex/releases/download/@ibm/plex-mono@1.1.0/ibm-plex-mono.zip" 365 + } 366 + }, 367 + "indigo": { 368 + "flake": false, 369 + "locked": { 370 + "lastModified": 1753693716, 371 + "narHash": "sha256-DMIKnCJRODQXEHUxA+7mLzRALmnZhkkbHlFT2rCQYrE=", 372 + "owner": "oppiliappan", 373 + "repo": "indigo", 374 + "rev": "5f170569da9360f57add450a278d73538092d8ca", 375 + "type": "github" 376 + }, 377 + "original": { 378 + "owner": "oppiliappan", 379 + "repo": "indigo", 380 + "type": "github" 381 + } 382 + }, 383 + "inter-fonts-src": { 384 + "flake": false, 385 + "locked": { 386 + "lastModified": 1731687360, 387 + "narHash": "sha256-5vdKKvHAeZi6igrfpbOdhZlDX2/5+UvzlnCQV6DdqoQ=", 388 + "type": "tarball", 389 + "url": "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip" 390 + }, 391 + "original": { 392 + "type": "tarball", 393 + "url": "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip" 394 + } 395 + }, 260 396 "lanzaboote": { 261 397 "inputs": { 262 398 "crane": "crane", ··· 316 452 "original": { 317 453 "type": "tarball", 318 454 "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-2.tar.gz" 455 + } 456 + }, 457 + "lucide-src": { 458 + "flake": false, 459 + "locked": { 460 + "lastModified": 1754044466, 461 + "narHash": "sha256-+exBR2OToB1iv7ZQI2S4B0lXA/QRvC9n6U99UxGpJGs=", 462 + "type": "tarball", 463 + "url": "https://github.com/lucide-icons/lucide/releases/download/0.536.0/lucide-icons-0.536.0.zip" 464 + }, 465 + "original": { 466 + "type": "tarball", 467 + "url": "https://github.com/lucide-icons/lucide/releases/download/0.536.0/lucide-icons-0.536.0.zip" 319 468 } 320 469 }, 321 470 "nix-jetbrains-plugins": { ··· 481 630 "nixos-hardware": "nixos-hardware", 482 631 "nixpkgs": "nixpkgs_2", 483 632 "nixpkgs-unstable": "nixpkgs-unstable", 633 + "tangled": "tangled", 484 634 "vpn-confinement": "vpn-confinement" 485 635 } 486 636 }, ··· 505 655 "type": "github" 506 656 } 507 657 }, 658 + "sqlite-lib-src": { 659 + "flake": false, 660 + "locked": { 661 + "lastModified": 1706631843, 662 + "narHash": "sha256-bJoMjirsBjm2Qk9KPiy3yV3+8b/POlYe76/FQbciHro=", 663 + "type": "tarball", 664 + "url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip" 665 + }, 666 + "original": { 667 + "type": "tarball", 668 + "url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip" 669 + } 670 + }, 508 671 "systems": { 509 672 "locked": { 510 673 "lastModified": 1681028828, ··· 533 696 "owner": "nix-systems", 534 697 "repo": "default", 535 698 "type": "github" 699 + } 700 + }, 701 + "systems_3": { 702 + "locked": { 703 + "lastModified": 1681028828, 704 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 705 + "owner": "nix-systems", 706 + "repo": "default", 707 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 708 + "type": "github" 709 + }, 710 + "original": { 711 + "owner": "nix-systems", 712 + "repo": "default", 713 + "type": "github" 714 + } 715 + }, 716 + "tangled": { 717 + "inputs": { 718 + "actor-typeahead-src": "actor-typeahead-src", 719 + "flake-compat": "flake-compat_4", 720 + "gomod2nix": "gomod2nix", 721 + "htmx-src": "htmx-src", 722 + "htmx-ws-src": "htmx-ws-src", 723 + "ibm-plex-mono-src": "ibm-plex-mono-src", 724 + "indigo": "indigo", 725 + "inter-fonts-src": "inter-fonts-src", 726 + "lucide-src": "lucide-src", 727 + "nixpkgs": [ 728 + "nixpkgs" 729 + ], 730 + "sqlite-lib-src": "sqlite-lib-src" 731 + }, 732 + "locked": { 733 + "lastModified": 1770793790, 734 + "narHash": "sha256-USZxj9C74gPROHaKJbWooI1ABjGbYnL3Jj1o84xUfmo=", 735 + "ref": "refs/heads/master", 736 + "rev": "e17836203f86a090a9f663d54f3cde82fb57a29d", 737 + "revCount": 1945, 738 + "type": "git", 739 + "url": "https://tangled.org/@tangled.org/core" 740 + }, 741 + "original": { 742 + "type": "git", 743 + "url": "https://tangled.org/@tangled.org/core" 536 744 } 537 745 }, 538 746 "vpn-confinement": {
+6
flake.nix
··· 58 58 url = "github:encode42/emby-server-flake"; 59 59 }; 60 60 61 + tangled = { 62 + url = "git+https://tangled.org/@tangled.org/core"; 63 + 64 + inputs.nixpkgs.follows = "nixpkgs"; 65 + }; 66 + 61 67 # Community-maintained package repositories 62 68 encode42-packages = { 63 69 url = "github:encode42/nixos-packages";
+33
hosts/index/config/atmosphere/tangled.nix
··· 1 + { flakeRoot, ... }: 2 + 3 + let 4 + host = "knot.encrypted.group"; 5 + 6 + tangledModule = import (flakeRoot + /packages/server/atmosphere/tangled.nix) { 7 + hosts = [ 8 + { 9 + name = host; 10 + ssl = "cloudflare"; 11 + } 12 + ]; 13 + }; 14 + in 15 + { 16 + imports = [ 17 + tangledModule 18 + ]; 19 + 20 + services.tangled.knot = { 21 + stateDir = "/mnt/apps/tangled"; 22 + 23 + repo = { 24 + scanPath = "/mnt/data/tangled"; 25 + }; 26 + 27 + server = { 28 + hostname = host; 29 + 30 + owner = "did:plc:2uoarm26m6b24zqbq7h2kpqs"; 31 + }; 32 + }; 33 + }
+1
hosts/index/default.nix
··· 27 27 ./config/nfs.nix 28 28 29 29 ./config/atmosphere/bluesky-pds.nix 30 + ./config/atmosphere/tangled.nix 30 31 31 32 ./config/databases/mysql.nix 32 33 ./config/databases/postgresql.nix
+2
outputs.nix
··· 37 37 extraModules = [ 38 38 inputs.vpn-confinement.nixosModules.default 39 39 inputs.emby-flake.nixosModules.default 40 + inputs.tangled.nixosModules.knot 41 + inputs.tangled.nixosModules.spindle 40 42 ]; 41 43 }; 42 44 };
+31
packages/server/atmosphere/tangled.nix
··· 1 + { 2 + hosts ? [ ], 3 + }: 4 + 5 + { 6 + config, 7 + flakeLib, 8 + lib, 9 + ... 10 + }: 11 + 12 + let 13 + port = 5555; 14 + in 15 + { 16 + services.tangled = { 17 + knot = { 18 + enable = true; 19 + 20 + server = { 21 + listenAddr = "0.0.0.0:${toString port}"; 22 + }; 23 + 24 + openFirewall = false; 25 + }; 26 + }; 27 + 28 + services.caddy.virtualHosts = flakeLib.mkProxies hosts '' 29 + reverse_proxy :${toString port} 30 + ''; 31 + }