Getting started
Run WaferCMS locally and create your first content
For developers and contributors. Docker is enough for a full local stack; use pnpm when you want the apps outside Compose. More detail: Local Compose.
Compose
cp .env.example .env
docker compose up -d- Admin: http://localhost:8080
- API: http://localhost:3001
Optional first admin (remove after the user exists, then recreate cms-server):
CMS_BOOTSTRAP_ADMIN_USERNAME=admin
CMS_BOOTSTRAP_ADMIN_PASSWORD=choose-a-strong-passwordNeed host access to Postgres or RustFS?
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -dLocal app processes
pnpm install
cp .env.example .env
docker compose up -d cms-postgres rustfs
pnpm db:migrate
pnpm devWire CMS_DATABASE_URL / storage env to Compose (see .env.example). Vite uses VITE_CMS_API_BASE; containers use CMS_API_BASE.
First content
- Sign in to the admin UI.
- Create a collection and an item (draft or published).
- Create a read API key.
- List published items with
Authorization: Bearer <key>.
Uploads start private — mark an asset public when you need a keyless URL (e.g. <img>). Keep API keys in your app’s server, not a public browser bundle.
For a real host with HTTPS, see Deploy.