Web dashboard and install API for OpenBoot.
Live at openboot.dev
This repo handles the web interface for managing configs, serving install scripts, and storing snapshots. The CLI lives at openbootdotdev/openboot.
- Landing page + docs (SvelteKit + mdsvex)
- Dashboard for creating and editing configs
- Install script generator (the URL you curl from)
- Brewfile import parser
- Package search proxies (Homebrew, NPM)
- OAuth login (GitHub, Google) + CLI device auth flow
- Snapshot upload API (CLI posts your machine state here)
SvelteKit 5 + TypeScript, Cloudflare Workers + D1 (SQLite), GitHub/Google OAuth.
npm install
wrangler d1 migrations apply openboot --local # Sets up DB
npm run devCreate .dev.vars with your OAuth credentials:
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...
Tag-based releases — production deploys only happen when you create a version tag:
git tag v1.0.0
git push origin v1.0.0This triggers:
- Tests + build
- Database migrations
- Deployment to openboot.dev
Push to main only runs CI (tests + build), no deployment.
See RELEASE.md for full release process.
Secrets needed: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID
Install scripts (what the CLI curls):
GET /:alias— Short alias redirect or install script (curl-detected)GET /:username/:slug/install— Config install scriptGET /:username/:slug/config— Config JSON for CLI
Configs (CRUD for dashboard):
GET/POST /api/configs— List/createGET/PUT/DELETE /api/configs/:slug— Read/update/deletePOST /api/configs/from-snapshot— CLI snapshot upload
Auth:
- OAuth callbacks at
/api/auth/callback/{github,google} - CLI device flow:
/api/auth/cli/{start,approve,poll}
Utilities:
POST /api/brewfile/parse— Brewfile → package listGET /api/homebrew/search?q=...— Search HomebrewGET /api/npm/search?q=...— Search NPM
D1 (SQLite). Two tables: users and configs. See migrations/ for schema. Key fields:
configs.packages— JSON array of {name, type, desc}configs.snapshot— JSON object from CLIopenboot snapshotconfigs.visibility—public|unlisted|privateconfigs.alias— short URL (e.g.,openboot.dev/dev→ redirects)
MIT