App Deployment
Plan Node.js, Python, APIs, dashboards, and SaaS app launches.
App deployment planning
Plan application deployment before connecting domains, SSL, and runtime settings.
Read this guideEnvironment variables
Environment variables should be planned without exposing secrets.
Read this guideConnect an app to a domain
Connecting an app to a domain requires DNS, SSL, and routing review.
Read this guideDeploy a static website
Serve pre-built HTML, CSS and JavaScript files directly via nginx — no server process needed.
Read this guideDeploy a Node.js app
Run a Node.js server with automatic dependency install (npm, pnpm, or yarn) and environment variable injection.
Read this guideDeploy a Python app (FastAPI / Flask)
Deploy FastAPI or Flask in an isolated virtualenv with automatic dependency install.
Read this guideDeploy a Laravel app
Deploy Laravel with composer install, a SQLite database, and automatic php artisan migrate.
Read this guideDeploy a PocketBase app
Deploy a self-contained BaaS with built-in auth, SQLite, and REST API — no code required.
Read this guidePocketBase migrations and hooks (pb_migrations / pb_hooks)
How CM Cloud loads pb_migrations/ and pb_hooks/ from your repository — and the two things that can still trip you up.
Read this guideCI/CD deploy hook
Trigger automatic redeploys from GitHub Actions, GitLab CI, or any CI pipeline using a webhook.
Read this guideBuild commands
Set a build command for Node.js, PHP/Laravel, Python, or static sites that require a compile step before launch.
Read this guideSet environment variables
Add, edit, or delete environment variables from the portal — changes persist across redeploys.
Read this guideWhich environment variables does my app need?
CM Cloud mandates no variable names — your app's code decides. Set exactly what it reads (e.g. DATABASE_URL for Prisma, POCKETBASE_URL for a PocketBase app).
Read this guideUse your own domain with an app (external DNS)
Point a domain registered elsewhere to your CM Cloud app using a CNAME record — covers Cloudflare SSL mode settings.
Read this guideConnect your app to a PocketBase backend
Authenticate your deployed app to PocketBase, including the v0.23+ superuser login endpoint change.
Read this guideUse an S3 bucket for file storage
Connect your app to an S3-compatible bucket for scalable file and media storage.
Read this guideEnable PocketBase password-reset emails
Turn on 'forgot password' emails for your PocketBase users — one click, or with your own SMTP.
Read this guideHow to buy an App Deployment plan
Host your own Node, Python, Laravel, static, or PocketBase apps.
Read this guide