this repo has no description
4
fork

Configure Feed

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

add relay thing

dawn 95e1ef96 1fee589c

+99 -77
+11 -11
_sources/generated.json
··· 32 32 "fetchSubmodules": false, 33 33 "leaveDotGit": false, 34 34 "name": null, 35 - "rev": "f222d83aadd1d881e9224fc90474d79d835a6593", 36 - "sha256": "sha256-vg/+iCL9yqmNqz3Ldmm5d4xWxOYculRHgP2Q/8jbyjo=", 35 + "rev": "3457b34e3cd0131873b78b2e0b756ad9081075d1", 36 + "sha256": "sha256-CYyKm6EtbnPHbdxZIMQppIjBMhkl34AyKkYNjd8mPTM=", 37 37 "sparseCheckout": [], 38 38 "type": "git", 39 39 "url": "https://tangled.org/@ptr.pet/atspool" 40 40 }, 41 - "version": "f222d83aadd1d881e9224fc90474d79d835a6593" 41 + "version": "3457b34e3cd0131873b78b2e0b756ad9081075d1" 42 42 }, 43 43 "blog": { 44 44 "cargoLock": null, 45 - "date": "2026-04-04", 45 + "date": "2026-04-17", 46 46 "extract": null, 47 47 "name": "blog", 48 48 "passthru": null, ··· 52 52 "fetchSubmodules": false, 53 53 "leaveDotGit": false, 54 54 "name": null, 55 - "rev": "eea7033b878f5c44d5ebdec4028f47507ca3c173", 56 - "sha256": "sha256-hYQ4QOLNjK0/1soSssuPOZc5zZBRoNVxJzWIE4ot8K0=", 55 + "rev": "07d745fb33cf580b79ff6d29631188eecd471357", 56 + "sha256": "sha256-2ThCN55JV1b4YbMaOtc7oFVNNSU/IC8wx6F7Ybj1+z4=", 57 57 "sparseCheckout": [], 58 58 "type": "git", 59 59 "url": "https://tangled.org/@ptr.pet/endpoint" 60 60 }, 61 - "version": "eea7033b878f5c44d5ebdec4028f47507ca3c173" 61 + "version": "07d745fb33cf580b79ff6d29631188eecd471357" 62 62 }, 63 63 "clickee": { 64 64 "cargoLock": null, ··· 206 206 }, 207 207 "hydrant": { 208 208 "cargoLock": null, 209 - "date": "2026-04-02", 209 + "date": "2026-04-15", 210 210 "extract": null, 211 211 "name": "hydrant", 212 212 "passthru": null, ··· 216 216 "fetchSubmodules": false, 217 217 "leaveDotGit": false, 218 218 "name": null, 219 - "rev": "064ef9141748928490d27ff0e749c7c75a67387b", 220 - "sha256": "sha256-FzikJ1vRuFLktK2To91LKs7EZgik/CWIfHft0jkN2U0=", 219 + "rev": "73c0f00899788fce68908d81a1faadb2b47d2517", 220 + "sha256": "sha256-auipRcz8kEtG38g77IATavm/wZWvinsGIDhouwJYA8c=", 221 221 "sparseCheckout": [], 222 222 "type": "git", 223 223 "url": "https://tangled.org/@ptr.pet/hydrant" 224 224 }, 225 - "version": "064ef9141748928490d27ff0e749c7c75a67387b" 225 + "version": "73c0f00899788fce68908d81a1faadb2b47d2517" 226 226 }, 227 227 "limbusart": { 228 228 "cargoLock": null,
+11 -11
_sources/generated.nix
··· 20 20 }; 21 21 atspool = { 22 22 pname = "atspool"; 23 - version = "f222d83aadd1d881e9224fc90474d79d835a6593"; 23 + version = "3457b34e3cd0131873b78b2e0b756ad9081075d1"; 24 24 src = fetchgit { 25 25 url = "https://tangled.org/@ptr.pet/atspool"; 26 - rev = "f222d83aadd1d881e9224fc90474d79d835a6593"; 26 + rev = "3457b34e3cd0131873b78b2e0b756ad9081075d1"; 27 27 fetchSubmodules = false; 28 28 deepClone = false; 29 29 leaveDotGit = false; 30 30 sparseCheckout = [ ]; 31 - sha256 = "sha256-vg/+iCL9yqmNqz3Ldmm5d4xWxOYculRHgP2Q/8jbyjo="; 31 + sha256 = "sha256-CYyKm6EtbnPHbdxZIMQppIjBMhkl34AyKkYNjd8mPTM="; 32 32 }; 33 33 date = "2026-04-14"; 34 34 }; 35 35 blog = { 36 36 pname = "blog"; 37 - version = "eea7033b878f5c44d5ebdec4028f47507ca3c173"; 37 + version = "07d745fb33cf580b79ff6d29631188eecd471357"; 38 38 src = fetchgit { 39 39 url = "https://tangled.org/@ptr.pet/endpoint"; 40 - rev = "eea7033b878f5c44d5ebdec4028f47507ca3c173"; 40 + rev = "07d745fb33cf580b79ff6d29631188eecd471357"; 41 41 fetchSubmodules = false; 42 42 deepClone = false; 43 43 leaveDotGit = false; 44 44 sparseCheckout = [ ]; 45 - sha256 = "sha256-hYQ4QOLNjK0/1soSssuPOZc5zZBRoNVxJzWIE4ot8K0="; 45 + sha256 = "sha256-2ThCN55JV1b4YbMaOtc7oFVNNSU/IC8wx6F7Ybj1+z4="; 46 46 }; 47 - date = "2026-04-04"; 47 + date = "2026-04-17"; 48 48 }; 49 49 clickee = { 50 50 pname = "clickee"; ··· 138 138 }; 139 139 hydrant = { 140 140 pname = "hydrant"; 141 - version = "064ef9141748928490d27ff0e749c7c75a67387b"; 141 + version = "73c0f00899788fce68908d81a1faadb2b47d2517"; 142 142 src = fetchgit { 143 143 url = "https://tangled.org/@ptr.pet/hydrant"; 144 - rev = "064ef9141748928490d27ff0e749c7c75a67387b"; 144 + rev = "73c0f00899788fce68908d81a1faadb2b47d2517"; 145 145 fetchSubmodules = false; 146 146 deepClone = false; 147 147 leaveDotGit = false; 148 148 sparseCheckout = [ ]; 149 - sha256 = "sha256-FzikJ1vRuFLktK2To91LKs7EZgik/CWIfHft0jkN2U0="; 149 + sha256 = "sha256-auipRcz8kEtG38g77IATavm/wZWvinsGIDhouwJYA8c="; 150 150 }; 151 - date = "2026-04-02"; 151 + date = "2026-04-15"; 152 152 }; 153 153 limbusart = { 154 154 pname = "limbusart";
+1 -1
dns/dnsconfig.js
··· 97 97 DnsProvider(DSP_PRIMARY), 98 98 TRIMOUNTS(["@", "spool"]), 99 99 DZWONEK("vpn"), 100 - VOLSINII(["plc", "hydrant"]), 100 + VOLSINII(["plc", "relay", "hydrant"]), 101 101 TXT("@", "data endpoint for services and projects that fall under klbr.net."), 102 102 TXT( 103 103 "@",
-54
hosts/volsinii/modules/hydrant.disabled
··· 1 - {terra, ...}: { 2 - users.users.hydrant = { 3 - isSystemUser = true; 4 - group = "hydrant"; 5 - home = "/var/lib/hydrant"; 6 - }; 7 - users.groups.hydrant = {}; 8 - 9 - systemd.services.hydrant = { 10 - description = "hydrant ATURI indexer"; 11 - wantedBy = ["multi-user.target"]; 12 - after = ["network.target"]; 13 - environment = { 14 - HYDRANT_FULL_NETWORK = "true"; 15 - HYDRANT_CRAWLER_MAX_PENDING_REPOS = "5000"; 16 - HYDRANT_CRAWLER_RESUME_PENDING_REPOS = "2000"; 17 - HYDRANT_CURSOR_SAVE_INTERVAL = "1"; 18 - HYDRANT_PLC_URL = "https://plc.directory,http://localhost:8000"; 19 - HYDRANT_DATA_COMPRESSION = "zstd"; 20 - HYDRANT_JOURNAL_COMPRESSION = "lz4"; 21 - }; 22 - serviceConfig = { 23 - Type = "simple"; 24 - ExecStart = "${terra.hydrant}/bin/hydrant"; 25 - Restart = "on-failure"; 26 - RestartSec = "10s"; 27 - StateDirectory = "hydrant"; 28 - WorkingDirectory = "/var/lib/hydrant"; 29 - User = "hydrant"; 30 - Group = "hydrant"; 31 - NoNewPrivileges = true; 32 - PrivateTmp = true; 33 - ProtectSystem = "strict"; 34 - ProtectHome = true; 35 - ReadWritePaths = ["/var/lib/hydrant"]; 36 - LimitNOFILE = 1048576; 37 - }; 38 - }; 39 - 40 - security.pam.loginLimits = [ 41 - { 42 - domain = "*"; 43 - type = "soft"; 44 - item = "nofile"; 45 - value = "1048576"; 46 - } 47 - { 48 - domain = "*"; 49 - type = "hard"; 50 - item = "nofile"; 51 - value = "1048576"; 52 - } 53 - ]; 54 - }
+76
hosts/volsinii/modules/relay.nix
··· 1 + {terra, ...}: 2 + let 3 + port = "13579"; 4 + pkg = terra.hydrant.overrideAttrs (old: { 5 + cargoBuildNoDefaultFeatures = true; 6 + cargoBuildFeatures = ["relay"]; 7 + doCheck = false; 8 + }); 9 + in 10 + { 11 + users.users.hydrant = { 12 + isSystemUser = true; 13 + group = "hydrant"; 14 + home = "/var/lib/hydrant"; 15 + }; 16 + users.groups.hydrant = {}; 17 + 18 + systemd.services.hydrant = { 19 + description = "hydrant atproto relay"; 20 + wantedBy = ["multi-user.target"]; 21 + after = ["network.target"]; 22 + environment = { 23 + HYDRANT_API_PORT = port; 24 + HYDRANT_CURSOR_SAVE_INTERVAL = "1"; 25 + HYDRANT_PLC_URL = "http://localhost:8000"; 26 + HYDRANT_DATA_COMPRESSION = "zstd"; 27 + HYDRANT_JOURNAL_COMPRESSION = "zstd"; 28 + HYDRANT_RATE_TIERS = "default:5000/10.0/18000000/432000000/10000000"; 29 + }; 30 + serviceConfig = { 31 + Type = "simple"; 32 + ExecStart = "${pkg}/bin/hydrant"; 33 + Restart = "on-failure"; 34 + RestartSec = "10s"; 35 + StateDirectory = "hydrant"; 36 + WorkingDirectory = "/var/lib/hydrant"; 37 + User = "hydrant"; 38 + Group = "hydrant"; 39 + NoNewPrivileges = true; 40 + PrivateTmp = true; 41 + ProtectSystem = "strict"; 42 + ProtectHome = true; 43 + ReadWritePaths = ["/var/lib/hydrant"]; 44 + LimitNOFILE = 1048576; 45 + }; 46 + }; 47 + 48 + security.pam.loginLimits = [ 49 + { 50 + domain = "*"; 51 + type = "soft"; 52 + item = "nofile"; 53 + value = "1048576"; 54 + } 55 + { 56 + domain = "*"; 57 + type = "hard"; 58 + item = "nofile"; 59 + value = "1048576"; 60 + } 61 + ]; 62 + 63 + security.acme.certs."plc.klbr.net".extraDomainNames = ["relay.klbr.net"]; 64 + services.nginx.virtualHosts."relay.klbr.net" = { 65 + useACMEHost = "plc.klbr.net"; 66 + forceSSL = true; 67 + quic = true; 68 + kTLS = true; 69 + locations."=/".proxyPass = "http://localhost:${port}"; 70 + locations."/xrpc" = { 71 + proxyPass = "http://localhost:${port}"; 72 + proxyWebsockets = true; 73 + }; 74 + locations."/_health".proxyPass = "http://localhost:${port}"; 75 + }; 76 + }