The supported deployment path is ./setup.sh. It installs the Platform Console and routing layer; projects are created afterwards from the Console.
Prerequisites
- A VPS running Ubuntu 22.04+
- A domain pointing at the VPS
- One wildcard DNS record for project subdomains
- Docker and Docker Compose
DNS
For example.com, create:
Type: A
Name: *
Value: <VPS_IP>This covers:
console.example.com
todo.example.com
todo-storage.example.com
client-a.example.com*.example.com does not cover example.com itself. External customer domains still need their own DNS records.
Install
git clone https://github.com/JulienGuinot/Boilerplate-backend.git
cd Boilerplate-backend
DOMAIN=example.com ACME_EMAIL=you@example.com ./setup.sh --yes --prodThe setup starts Traefik and the Platform Console, builds the images, generates secrets, and prints Console credentials.
No default project stack is created. Open the Platform Console, then create projects with New project.
Create a project
From the Platform Console, create a project with:
| Field | Example |
|---|---|
| Name | todo |
| Domain | todo.example.com |
| Storage domain | todo-storage.example.com |
| CORS origins | https://app.example.com |
Then open the project Studio to configure auth providers, SMTP, storage, RLS policies, SQL, and SDK connection values.
Services
| Surface | URL |
|---|---|
| Platform Console | https://console.example.com |
| Project API | https://<project>.example.com |
| Project Studio | Open from the Platform Console |
| OpenAPI docs | https://<project>.example.com/api/docs |
In production, direct access to a project /console can be restricted by Traefik or an IP allowlist. The normal operator path is through the Platform Console.
Health check
curl https://todo.example.com/api/health-check
# {"status":"ok"}Updates
For normal platform updates, rerun the supported setup path from the repository:
git pull
./setup.sh --yes --prodThis rebuilds the shared images and recreates Traefik plus the Platform Console without deleting project volumes. See Updates for project updates, release-channel checks, migrations, and rollback.
Advanced maintenance
Files under deploy/ are internal helpers used by setup.sh. Use direct Docker Compose, deploy/console, or Prisma migration commands only for maintenance/debugging when you understand the project stack being targeted.
npm run prisma:deploy
npm run studio:build
docker compose -f deploy/docker-compose.prod.yml ps