v2.4.1

Prerequisites

Before installing FlowCMS, ensure your environment meets the following requirements:

1

Node.js 18+

Required for the CLI, admin panel, and API server runtime.

2

Database

PostgreSQL 14+ (recommended) or MySQL 8+. SQLite available for dev.

3

Package Manager

npm 9+, pnpm 8+, or yarn 1.22+ installed globally.

⚠️ Node Version Warning FlowCMS v2.4 requires Node.js 18 or higher. If you're using nvm, run: nvm use 20

Quick Start

The fastest way to get started is using the official project scaffolding tool. It will create a new project with best practices pre-configured.

Terminal
npx create-flowcms-app@latest my-flow-project
cd my-flow-project
npm run db:migrate
npm run dev
💡 Tip This will generate a .env.local file with a SQLite database for local development. For production, switch to PostgreSQL.

Manual Installation

For existing projects or custom setups, install the core packages directly.

Terminal
# Install core CMS engine and CLI
npm install @flowcms/core @flowcms/cli

# Optional: UI components for custom admin dashboards
npm install @flowcms/ui

Docker Installation

Deploy FlowCMS using Docker for consistent environments across dev, staging, and production.

docker-compose.yml
version: '3.8'

services:
  # PostgreSQL Database
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: flowcms
      POSTGRES_USER: flowcms
      POSTGRES_PASSWORD: secure_password_here
    volumes:
      - pgdata:/var/lib/postgresql/data

  # FlowCMS Application
  flowcms:
    image: ghcr.io/flowcms/flowcms:latest
    depends_on:
      - db
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://flowcms:secure_password_here@db:5432/flowcms
      ADMIN_EMAIL: admin@example.com
      ADMIN_PASSWORD: changeme123
      JWT_SECRET: your_super_secret_key_here

volumes:
  pgdata:

Run with docker compose up -d. The admin panel will be available at http://localhost:3000/admin.

Verification

After installation, verify that everything is running correctly:

Terminal
# Check system status
npx flowcms doctor

# Expected output:
✅ Node.js v20.x.x detected
✅ Database connection successful (PostgreSQL 16)
✅ Admin panel accessible at http://localhost:3000/admin
✅ API endpoint ready at http://localhost:3000/api/v1

You can also test the API directly:

Terminal
curl -X GET http://localhost:3000/api/v1/health

Environment Variables

Configure FlowCMS by creating a .env file in your project root. Below are the required and recommended variables:

.env
# Database Connection
DATABASE_URL=postgresql://user:password@localhost:5432/flowcms

# Authentication
JWT_SECRET=generate-a-secure-random-string-here
ADMIN_EMAIL=you@company.com
ADMIN_PASSWORD=secure-initial-password

# Security & Rate Limiting
API_RATE_LIMIT=100
CORS_ORIGIN=http://localhost:5173

# Optional: Cloud Storage
STORAGE_PROVIDER=local # or s3, gcs, azure
🔒 Security Notice Always generate a strong JWT_SECRET using openssl rand -base64 32 or a password manager. Never commit .env to version control.

Next Steps

Now that FlowCMS is installed and verified, you're ready to start building: