cloudflare-workers/nix-cache/README.md

28 lines
949 B
Markdown
Raw Normal View History

2026-02-26 13:58:40 +01:00
# nix-cache
2026-02-26 10:16:34 +01:00
2026-02-26 13:58:40 +01:00
Serves a Nix binary cache from Cloudflare R2 with JWT-based authentication.
Only users with a valid Keycloak token and membership in the `nix-cache-users`
group can read from the cache.
2026-02-26 10:16:34 +01:00
2026-02-26 13:58:40 +01:00
Nix clients authenticate via netrc (Basic auth), while other clients can use
Bearer tokens directly. JWTs are verified locally using cached JWKS public keys.
2026-02-26 10:16:34 +01:00
2026-02-26 13:58:40 +01:00
## Development
```bash
npm install # install dependencies
npm test # run vitest (uses miniflare locally)
npm run dev # start wrangler dev server on localhost:8787
```
## Cloudflare Setup
1. Create an A record on the subdomain you want this Worker to run on which
points to `192.0.2.1`
2. Edit `wrangler.jsonc`:
- `route` should be the subdomain followed by `/*`
- `bucket_name` should be the name of the R2 bucket you'll use
3. Run `npx wrangler login` to login to Wrangler
4. Run `npm run deploy`
5. Upload an `index.html` to your bucket if you want a landing page