A Cloudflare-native Nix binary cache.
workers/cache/ Cloudflare Worker (main service)
packages/cache-domain/ Shared types and input parsers
apps/cli/ CLI for pushing store paths
scripts/ smoke-test.sh
nix develop # drops you into a shell with node, pnpm, wrangler
pnpm installpnpm dev # runs the worker locally via wrangler
pnpm check # type-check + tests across the workspaceSee docs.md for the full reference. Short version:
wrangler r2 bucket create helios-cache
wrangler d1 create helios-cache
# update database_id in workers/cache/wrangler.jsonc
wrangler d1 migrations apply helios-cache --remote
wrangler secret put JWT_SECRET
wrangler secret put ADMIN_SECRET
wrangler secret put SIGNING_PRIVATE_KEY
wrangler secret put SIGNING_KEY_NAME
pnpm deployBuild the CLI (or nix run . for one-off use):
nix build # produces ./result/bin/heliosSave credentials once:
helios login prod https://your-worker.workers.dev "$PUSH_TOKEN"Push a single path:
helios push main /nix/store/abc...-helloPush a full closure:
helios push main --closure /run/current-systemPush a flake output closure:
helios push main --closure .#nixosConfigurations.myhost.config.system.build.toplevelSee docs.md for token management and parallelism options.
# configuration.nix or flake
nix.settings.substituters = [ "https://your-worker.workers.dev/main" ];Source-available. See LICENSE.