openboot.dev
February 14, 2026 · View on GitHub
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.
What's in Here
- 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)
Stack
SvelteKit 5 + TypeScript, Cloudflare Workers + D1 (SQLite), GitHub/Google OAuth.
Running Locally
npm install
wrangler d1 migrations apply openboot --local # Sets up DB
npm run dev
Create .dev.vars with your OAuth credentials:
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...
Deployment
Tag-based releases — production deploys only happen when you create a version tag:
git tag v1.0.0
git push origin v1.0.0
This 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
Key Endpoints
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
Database
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)
Related
License
MIT