diff --git a/flake.lock b/flake.lock index 6e22514a..5a79b745 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "actor-typeahead-src": { + "flake": false, + "locked": { + "lastModified": 1762835797, + "narHash": "sha256-heizoWUKDdar6ymfZTnj3ytcEv/L4d4fzSmtr0HlXsQ=", + "ref": "refs/heads/main", + "rev": "677fe7f743050a4e7f09d4a6f87bbf1325a06f6b", + "revCount": 6, + "type": "git", + "url": "https://tangled.org/@jakelazaroff.com/actor-typeahead" + }, + "original": { + "type": "git", + "url": "https://tangled.org/@jakelazaroff.com/actor-typeahead" + } + }, "advisory-db": { "flake": false, "locked": { @@ -702,6 +718,20 @@ "type": "github" } }, + "flake-compat_10": { + "flake": false, + "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz?rev=549f2762aebeff29a2e5ece7a7dc0f955281a1d1" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz" + } + }, "flake-compat_2": { "locked": { "lastModified": 1767039857, @@ -1092,7 +1122,25 @@ }, "flake-utils_17": { "inputs": { - "systems": "systems_22" + "systems": "systems_21" + }, + "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_18": { + "inputs": { + "systems": "systems_23" }, "locked": { "lastModified": 1731533236, @@ -1309,6 +1357,28 @@ "type": "gitlab" } }, + "gomod2nix": { + "inputs": { + "flake-utils": "flake-utils_16", + "nixpkgs": [ + "tangled-core", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1763982521, + "narHash": "sha256-ur4QIAHwgFc0vXiaxn5No/FuZicxBr2p0gmT54xZkUQ=", + "owner": "nix-community", + "repo": "gomod2nix", + "rev": "02e63a239d6eabd595db56852535992c898eba72", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "gomod2nix", + "type": "github" + } + }, "handoff": { "inputs": { "flake-utils": "flake-utils_5", @@ -1409,6 +1479,30 @@ "type": "github" } }, + "htmx-src": { + "flake": false, + "locked": { + "narHash": "sha256-nm6avZuEBg67SSyyZUhjpXVNstHHgUxrtBHqJgowU08=", + "type": "file", + "url": "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js" + }, + "original": { + "type": "file", + "url": "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js" + } + }, + "htmx-ws-src": { + "flake": false, + "locked": { + "narHash": "sha256-2fg6KyEJoO24q0fQqbz9RMaYNPQrMwpZh29tkSqdqGY=", + "type": "file", + "url": "https://cdn.jsdelivr.net/npm/htmx-ext-ws@2.0.2" + }, + "original": { + "type": "file", + "url": "https://cdn.jsdelivr.net/npm/htmx-ext-ws@2.0.2" + } + }, "hyprmonitors": { "inputs": { "flake-utils": "flake-utils_7", @@ -1431,6 +1525,48 @@ "url": "https://git.darksailor.dev/servius/hyprmonitors" } }, + "ibm-plex-mono-src": { + "flake": false, + "locked": { + "lastModified": 1731402384, + "narHash": "sha256-OwUmrPfEehLDz0fl2ChYLK8FQM2p0G1+EMrGsYEq+6g=", + "type": "tarball", + "url": "https://github.com/IBM/plex/releases/download/@ibm%2Fplex-mono@1.1.0/ibm-plex-mono.zip" + }, + "original": { + "type": "tarball", + "url": "https://github.com/IBM/plex/releases/download/@ibm%2Fplex-mono@1.1.0/ibm-plex-mono.zip" + } + }, + "indigo": { + "flake": false, + "locked": { + "lastModified": 1753693716, + "narHash": "sha256-DMIKnCJRODQXEHUxA+7mLzRALmnZhkkbHlFT2rCQYrE=", + "owner": "oppiliappan", + "repo": "indigo", + "rev": "5f170569da9360f57add450a278d73538092d8ca", + "type": "github" + }, + "original": { + "owner": "oppiliappan", + "repo": "indigo", + "type": "github" + } + }, + "inter-fonts-src": { + "flake": false, + "locked": { + "lastModified": 1731687360, + "narHash": "sha256-5vdKKvHAeZi6igrfpbOdhZlDX2/5+UvzlnCQV6DdqoQ=", + "type": "tarball", + "url": "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip" + }, + "original": { + "type": "tarball", + "url": "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip" + } + }, "ironbar": { "inputs": { "flake-compat": "flake-compat_2", @@ -1477,6 +1613,31 @@ "type": "github" } }, + "lucide-src": { + "flake": false, + "locked": { + "lastModified": 1754044466, + "narHash": "sha256-+exBR2OToB1iv7ZQI2S4B0lXA/QRvC9n6U99UxGpJGs=", + "type": "tarball", + "url": "https://github.com/lucide-icons/lucide/releases/download/0.536.0/lucide-icons-0.536.0.zip" + }, + "original": { + "type": "tarball", + "url": "https://github.com/lucide-icons/lucide/releases/download/0.536.0/lucide-icons-0.536.0.zip" + } + }, + "mermaid-src": { + "flake": false, + "locked": { + "narHash": "sha256-/YOdECG2V5c3kJ1QfGvhziTT6K/Dx/4mOk2mr3Fs/do=", + "type": "file", + "url": "https://cdn.jsdelivr.net/npm/mermaid@11.12.3/dist/mermaid.min.js" + }, + "original": { + "type": "file", + "url": "https://cdn.jsdelivr.net/npm/mermaid@11.12.3/dist/mermaid.min.js" + } + }, "music-player": { "inputs": { "advisory-db": "advisory-db_3", @@ -2301,6 +2462,7 @@ "servius-website": "servius-website", "sops-nix": "sops-nix", "stylix": "stylix", + "tangled-core": "tangled-core", "tmux-float": "tmux-float", "tree-sitter-d2": "tree-sitter-d2", "tree-sitter-just": "tree-sitter-just", @@ -2568,6 +2730,19 @@ "type": "github" } }, + "sqlite-lib-src": { + "flake": false, + "locked": { + "lastModified": 1706631843, + "narHash": "sha256-bJoMjirsBjm2Qk9KPiy3yV3+8b/POlYe76/FQbciHro=", + "type": "tarball", + "url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip" + }, + "original": { + "type": "tarball", + "url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip" + } + }, "stylix": { "inputs": { "base16": "base16", @@ -2827,6 +3002,21 @@ "type": "github" } }, + "systems_23": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "systems_3": { "locked": { "lastModified": 1681028828, @@ -2932,6 +3122,37 @@ "type": "github" } }, + "tangled-core": { + "inputs": { + "actor-typeahead-src": "actor-typeahead-src", + "flake-compat": "flake-compat_10", + "gomod2nix": "gomod2nix", + "htmx-src": "htmx-src", + "htmx-ws-src": "htmx-ws-src", + "ibm-plex-mono-src": "ibm-plex-mono-src", + "indigo": "indigo", + "inter-fonts-src": "inter-fonts-src", + "lucide-src": "lucide-src", + "mermaid-src": "mermaid-src", + "nixpkgs": [ + "nixpkgs" + ], + "sqlite-lib-src": "sqlite-lib-src" + }, + "locked": { + "lastModified": 1772647996, + "narHash": "sha256-SsFWAbGvYhXG0zrDlZewSlO5sq2riuj7+j0+SAZW7VM=", + "ref": "refs/heads/master", + "rev": "d0acfc930f3d0ca8f918cdc443d0278dcdc7e0d0", + "revCount": 2012, + "type": "git", + "url": "https://tangled.org/tangled.org/core" + }, + "original": { + "type": "git", + "url": "https://tangled.org/tangled.org/core" + } + }, "tinted-foot": { "flake": false, "locked": { @@ -3017,7 +3238,7 @@ "inputs": { "advisory-db": "advisory-db_6", "crane": "crane_7", - "flake-utils": "flake-utils_16", + "flake-utils": "flake-utils_17", "nix-github-actions": "nix-github-actions_5", "nixpkgs": [ "nixpkgs" @@ -3160,7 +3381,7 @@ "vicinae": { "inputs": { "nixpkgs": "nixpkgs_10", - "systems": "systems_21" + "systems": "systems_22" }, "locked": { "lastModified": 1772331482, @@ -3202,7 +3423,7 @@ "zjstatus": { "inputs": { "crane": "crane_8", - "flake-utils": "flake-utils_17", + "flake-utils": "flake-utils_18", "nixpkgs": [ "nixpkgs" ], diff --git a/flake.nix b/flake.nix index f4567979..9c1a66e3 100644 --- a/flake.nix +++ b/flake.nix @@ -172,6 +172,10 @@ url = "github:uttarayan21/nixify"; inputs.nixpkgs.follows = "nixpkgs"; }; + tangled-core = { + url = "git+https://tangled.org/tangled.org/core"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { diff --git a/nixos/default.nix b/nixos/default.nix index d0186520..d149bc62 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -28,6 +28,7 @@ inputs.sops-nix.nixosModules.sops inputs.stylix.nixosModules.stylix inputs.headplane.nixosModules.headplane + inputs.tangled-core.nixosModules.knot ./${device.name}/configuration.nix ../home/module.nix diff --git a/nixos/tako/services/default.nix b/nixos/tako/services/default.nix index 77d9884e..786cbaab 100644 --- a/nixos/tako/services/default.nix +++ b/nixos/tako/services/default.nix @@ -12,6 +12,7 @@ ./resolved.nix ./tailscale.nix ./gitea.nix + ./knot.nix ./affine.nix ./attic.nix diff --git a/nixos/tako/services/knot.nix b/nixos/tako/services/knot.nix new file mode 100644 index 00000000..2cd0ad2f --- /dev/null +++ b/nixos/tako/services/knot.nix @@ -0,0 +1,31 @@ +{ + config, + inputs, + pkgs, + ... +}: { + services.tangled.knot = { + enable = true; + package = inputs.tangled-core.packages.${pkgs.system}.knot; + server = { + hostname = "tangled.darksailor.dev"; + owner = "did:plc:tllyvpa5oxw6fwwhkj3kv6dr"; + listenAddr = "127.0.0.1:5969"; + }; + }; + + services.caddy.virtualHosts."tangled.darksailor.dev".extraConfig = '' + reverse_proxy / ${config.services.tangled.knot.server.listenAddr} { + header_up Host {host} + header_up X-Real-IP {remote} + header_up X-Forwarded-For {remote} + header_up X-Forwarded-Proto {scheme} + } + handle /events/* { + reverse_proxy ${config.services.tangled.knot.server.listenAddr} { + header_up X-Forwarded-For {remote} + header_up Host {host} + } + } + ''; +}