@selvajs/cli
v4.4.0
Published
Scaffold and operate a Selva white-label deployment. `npx @selvajs/cli <dir>` to bootstrap, `selva <cmd>` to manage.
Downloads
3,585
Readme
@selvajs/cli
CLI for white-label Selva deployments.
Bootstrap a new deployment
npx @selvajs/cli my-deploymentInteractive scaffolder. Prompts for provider, tenancy, flags, brand name, admin email. Generates SELVA_HMAC_KEY + SELVA_AT_REST_KEY. Writes .env, ecosystem.config.cjs, package.json. Runs npm install.
Operate an existing deployment
After install, the package exposes a selva bin:
selva init # reconfigure prompts; preserves existing secrets
selva doctor # validate env + providers + paths
selva start | stop | restart | logs
selva update # npm update @selvajs/selva + pm2 restart
selva keys rotate hmac # rotate SELVA_HMAC_KEY (logs everyone out)
selva keys rotate at-rest # rotate SELVA_AT_REST_KEY (compute API key needs re-entry)All operator commands run inside the deployment directory (the one that contains .env and ecosystem.config.cjs).
Idempotency rules
npx @selvajs/clirefuses to overwrite a non-empty directory without--force.selva initreads the current.env, lets the user edit, and never regeneratesSELVA_HMAC_KEY/SELVA_AT_REST_KEYif they're already set.- A
.selva-versionmarker is written so future CLI versions can migrate config schema cleanly.
Relationship to @selvajs/selva
The CLI generates a deployment directory whose package.json depends on @selvajs/selva. The runtime ships the prebuilt SvelteKit node build plus PM2 / config templates; the CLI's job is to fill in the template values and wire everything together.
