Deployment Overview

FlowCMS is designed for modern cloud architectures. Our deployment engine handles schema migrations, environment variables, asset optimization, and edge caching automatically. Choose the method that best fits your infrastructure.

â„šī¸

Recommendation: For most teams, we recommend using the CLI or platform-native deployments (Vercel/Netlify). Docker is ideal for self-hosted or Kubernetes environments.

Environment Configuration

Before deploying, configure the following environment variables in your hosting provider or `.env` file:

Variable Description Required
FLOWCMS_API_KEY Primary authentication token for API requests Yes
DATABASE_URL PostgreSQL or MySQL connection string Yes
REDIS_URL Cache layer connection (optional but recommended) No
FLOWCMS_ADMIN_EMAIL Initial superadmin account email No
EDGE_REGIONS Comma-separated list of CDN edge regions No

Deployment Methods

Using FlowCMS CLI

The fastest way to deploy. The CLI handles builds, migrations, and optimization automatically.

bash
# Install global CLI npm install -g @flowcms/cli # Login to your account flowcms auth:login # Deploy to production flowcms deploy --env production --region us-east-1 # Verify deployment flowcms status --env production

The CLI will prompt you for environment variables if not detected in your project root. Deployment typically takes 15-30 seconds depending on asset size.

Docker & Docker Compose

Self-host FlowCMS using our official Docker images. Includes built-in PostgreSQL and Redis services.

docker-compose.yml
version: '3.8' services: flowcms: image: ghcr.io/flowcms/core:latest ports: - "3000:3000" environment: - FLOWCMS_API_KEY=${FLOWCMS_API_KEY} - DATABASE_URL=postgresql://flowcms:password@db:5432/flowcms depends_on: - db - redis db: image: postgres:15-alpine volumes: - pgdata:/var/lib/postgresql/data redis: image: redis:7-alpine volumes: pgdata:
âš ī¸

Production Note: Always use persistent volumes for the database. Do not run the latest tag in production without testing; pin to a specific version like :3.2.0-alpine.

Platform as a Service (Vercel/Netlify)

Connect your Git repository for zero-config deployments. FlowCMS supports edge functions and serverless databases out of the box.

1

Connect Repository

Import your FlowCMS project from GitHub, GitLab, or Bitbucket. The platform will auto-detect the project framework.

2

Configure Environment

Add your .env variables in the dashboard. Enable "Edge Network" for global low-latency responses.

3

Deploy & Preview

Every pull request generates a unique preview URL. Merges to main trigger production deployments automatically.

Post-Deployment Verification

After deployment, run these health checks to ensure everything is functioning correctly:

  1. API Health: curl https://your-domain.com/api/health should return {"status":"ok","version":"3.2.0"}
  2. Database Connection: Check logs for [DB] Connection pool established
  3. Asset Loading: Verify CDN is serving static assets with cache-control: public, max-age=31536000
🎉

Deployment Successful! Your FlowCMS instance is now live. Access the admin dashboard at https://your-domain.com/admin

Troubleshooting

Common Deployment Errors

  • ECONNREFUSED: Database port not exposed or firewall blocking connection. Verify DATABASE_URL includes correct port.
  • ENOENT: env file missing: Environment variables not properly passed during build. Check your CI/CD secrets.
  • GraphQL schema mismatch: Run flowcms migrate before deploying schema changes.

Need more help? Contact our engineering team or check the community forum.