Overview
MiniPaaS CLI commands are organized into functional groups:
- code → modify compose files (routing, workers, jobs, cron, init)
- secret / config → manage Swarm secrets and configs with automatic compose updates
- deploy → build images, roll out updates, and apply routing
- certs → generate TLS certificates for Docker API access
- shell → open a Docker-ready shell for local or remote contexts
All commands operate relative to an environment directory (--env <dir>) that contains minipaas.yaml.
Global Flags
--env <dir>— environment directory containingminipaas.yaml--verbose— detailed output--files(forcode init) — list of compose files to wire into the environment--for <service>— service(s) to attach secrets/configs to--name <name>— name of secret/config
minipaas code — Compose-aware scaffolding
These commands modify your compose files in place.
Initialize an environment
minipaas code init --env dev \
--files compose.yaml compose.build.yaml
````
Creates/updates:
* `dev/minipaas.yaml`
* compose-file mapping inside the environment
---
### Route a service via Caddy
```bash
minipaas code route --env dev \
http://localhost:8000 \
api:8080
Arguments:
- Public URL
<service:port>pair inside the Swarm stack
Adds routing labels to the appropriate compose file.
Mark background worker services
minipaas code worker --env dev worker emails_worker
Updates each service definition to behave as a long-running worker.
Mark a job service (run-once)
minipaas code job --env dev migrate
Job services run once and exit. Execution is triggered via deploy workflows or CI.
Mark a cron-managed service
minipaas code cron --env dev cleanup
Makes the service runnable through swarm-cronjob. Schedule is configured in compose/env configuration.
minipaas secret — Swarm secrets (multi-file compose patching)
Create a secret
echo postgres | minipaas secret create \
--env dev \
--name postgres_password \
--for postgres --for api --for migrate
Creates a Swarm secret and patches the compose file where each service is defined.
Delete a secret
minipaas secret delete --env dev --name postgres_password
Removes the secret and cleans references from affected compose files.
Prune unused secrets
minipaas secret prune --env dev
# add --delete to remove unused secrets
minipaas config — Swarm configs (same model as secrets)
Create a config
minipaas config create \
--env dev \
--name app.json \
./configs/app.json \
--for api --for worker
Delete a config
minipaas config delete --env dev --name app.json
Prune unused configs
minipaas config prune --env dev
# add --delete to remove unused configs
minipaas deploy — Build, rollout, routing
These commands operate on the environment’s compose files + stack config.
Build images
minipaas deploy build --env dev
minipaas deploy build --verbose --env dev
Builds and tags all images referenced in minipaas.yaml.
Rollout an update
minipaas deploy rollout --env dev
minipaas deploy rollout --verbose --env dev
Applies controlled updates to services in the Swarm stack.
Apply routing configuration (Caddy)
minipaas deploy routing --env dev
Updates routing files/services after code route or Caddy config changes.
Canary (optional depending on version)
minipaas deploy canary --env dev --replicas 1 api worker
Temporarily runs additional replicas for testing.
minipaas certs — TLS for Docker API
Generate certificates for Swarm manager (server) or CLI/CI (client).
Generate all certificates
minipaas certs all --out .certs
Generate server-only certificates
minipaas certs server --out .certs
Generate client-only certificates
minipaas certs client --out .certs
minipaas shell — Docker-ready shell
Open a shell with DOCKER_HOST,DOCKER_TLS_VERIFY, DOCKER_CERT_PATH, etc. properly set:
minipaas shell --env dev
Useful for debugging or CI environments.
Notes
- All compose modifications are idempotent.
- Secrets/configs patch only the first compose file where each service appears.
- Deploy commands expect the remote Docker API (TLS optional) to already be reachable.
- The CLI never overwrites unrelated sections inside compose files.