Your one-stop-cake-shop for everything Freshly Baked has to offer

feat(midnight,teal): add spindle

We are moving over to tangled and want to have a spindle so that we can
run long builds like PacketMix needs :sweat_smile:

Midnight is our CI server so it makes sense to host the spindle on it,
proxied to the outside world via teal

authored by a.starrysky.fyi and committed by

Skyler Grey ad944b22 8d1b877f

+54
+15
packetmix/npins/sources.json
··· 312 312 "url": "https://github.com/eewanco/scriptfs/archive/82d7e4865c9a8e40bc717c8745d052420365069c.tar.gz", 313 313 "hash": "sha256-WLuOt8zemooHDzK+zWJNBicKu8bg0wXyAGvZIH/po6o=" 314 314 }, 315 + "tangled": { 316 + "type": "GitRelease", 317 + "repository": { 318 + "type": "Git", 319 + "url": "https://tangled.sh/@tangled.sh/core" 320 + }, 321 + "pre_releases": true, 322 + "version_upper_bound": null, 323 + "release_prefix": null, 324 + "submodules": false, 325 + "version": "v1.9.0-alpha", 326 + "revision": "6200797b6377ab37640e9236633df2b845ae4c49", 327 + "url": null, 328 + "hash": "sha256-sTJAWsTj49q48CneaO9t/rVswqbmvQWcNTnw/bJGfps=" 329 + }, 315 330 "treefmt-nix": { 316 331 "type": "Git", 317 332 "repository": {
+21
packetmix/systems/midnight/spindle.nix
··· 1 + # SPDX-FileCopyrightText: 2025 FreshlyBakedCake 2 + # 3 + # SPDX-License-Identifier: MIT 4 + 5 + { project, ... }: 6 + { 7 + imports = [ project.inputs.tangled.result.nixosModules.spindle ]; 8 + 9 + networking.firewall.interfaces."tailscale0".allowedTCPPorts = [ 1024 ]; 10 + 11 + services.tangled-spindle = { 12 + enable = true; 13 + server = { 14 + listenAddr = "0.0.0.0:1024"; 15 + hostname = "spindle.freshlybakedca.ke"; 16 + jetstreamEndpoint = "wss://jetstream1.us-east.bsky.network/subscribe"; 17 + owner = "did:plc:k2zmz2l3hvfr44tmlhewol2j"; 18 + }; 19 + pipelines.workflowTimeout = "2h"; 20 + }; 21 + }
+18
packetmix/systems/teal/spindle.nix
··· 1 + # SPDX-FileCopyrightText: 2025 FreshlyBakedCake 2 + # 3 + # SPDX-License-Identifier: MIT 4 + 5 + { 6 + services.nginx.enable = true; 7 + services.nginx.virtualHosts."spindle.freshlybakedca.ke" = { 8 + addSSL = true; 9 + enableACME = true; 10 + acmeRoot = null; 11 + 12 + locations."/" = { 13 + proxyPass = "http://midnight:1024"; 14 + recommendedProxySettings = true; 15 + proxyWebsockets = true; 16 + }; 17 + }; 18 + }