Complete Workflow — Creating an App from Scratch
End-to-end walkthrough: create the App, define the architecture, trigger a build, deploy to dev then to prod.
Complete Workflow — Creating an App from Scratch
Here is an end-to-end walkthrough to understand how everything fits together.
Step 1 — Create the App
You go into the UI, "New App", you give it a name. Wakastart creates:
- The
Apprecord in the DB - A dedicated space in the registry for your future Docker images
- A dedicated space in the secrets vault for your credentials
Step 2 — Define the Architecture
You navigate to Infra → Architecture. You create:
- A managed Repository
exemple-backend(Wakastart creates the repo on GitHub via theWaka-Startorg) - A ServiceDefinition
backend(role: BACK, exposure: PUBLIC, port: 3000, from theexemple-backendrepo) - A DatabaseDefinition
primary(engine: PostgreSQL, defaultMode: IN_CLUSTER) - A StorageBucketDefinition
medias(defaultMode: MANAGED)
Step 3 — Create an environment
You create a dev environment:
- gitRef:
main - autoDeploy: true
→ Wakastart creates for this environment:
- A dedicated Kubernetes namespace that isolates the env's resources
- The DatabaseInstance and StorageBucketInstance matching the Definitions (in-cluster in dev)
- The application credentials to access the env's resources
- A platform-managed URL
app.dev.exemple.wakastart.app
Step 4 — Build and deploy
You commit code, you push to main. Wakastart:
- Detects the push via a GitHub webhook
- Creates a Build in PENDING
- The build moves through BUILDING → PUSHING → SUCCEEDED
- In AUTO mode → the image is deployed to the
devenv - A Deployment appears, status PROGRESSING, then SUCCEEDED
- Your pods are running, your API is accessible at
app.dev.exemple.wakastart.app
Step 5 — Promote to prod
You create a prod environment:
- gitRef:
prod(dedicated branch) - autoDeploy: true
- You override your DatabaseInstance:
mode: MANAGED(managed PostgreSQL, HA + auto backups) - You add a custom domain
exemple.com
→ Your app now runs in prod on managed infrastructure, isolated from dev.
Frequently asked questions
"Why is there a Definition / Instance distinction?" → So that you can define your architecture once and duplicate it across multiple environments with local overrides (cheaper plan in dev, more powerful in prod).
"My build failed, where do I look?" → Infra → Builds → click on the build: you see the Docker build logs and the precise error.
"My service won't start, where do I look?" → Infra → Environments → {env} → Services → {service}: Logs tab for the container logs, Deployments tab to see if the deployment failed.
"How do I rotate my DB credentials?"
→ For databases in MANAGED mode: rotation is triggered on the cloud provider side. K8s secrets are regenerated and services are redeployed.
"How do I restore a backup?" → Infra → Backups: you see the list of backups, click Restore on the one you want.