Docs / Self-Hosted Applications / How to Self-Host Directus Headless CMS

How to Self-Host Directus Headless CMS

By Admin · Mar 1, 2026 · Updated Apr 23, 2026 · 29 views · 2 min read

What Is Directus?

Directus is an open-source headless CMS that wraps any SQL database with a real-time REST and GraphQL API. It provides a no-code data studio for managing content, a role-based access control system, and a flexible dashboard builder. Unlike traditional CMSes, Directus works with your existing database schema.

Prerequisites

  • A Breeze with at least 2 GB RAM running Ubuntu 22.04+
  • Docker and Docker Compose installed
  • A domain name pointed to your Breeze

Docker Compose Setup

mkdir -p ~/directus && cd ~/directus
version: "3.8"
services:
  directus:
    image: directus/directus:latest
    container_name: directus
    restart: unless-stopped
    ports:
      - "8055:8055"
    volumes:
      - directus_uploads:/directus/uploads
      - directus_extensions:/directus/extensions
    environment:
      - KEY=unique-random-key-here
      - SECRET=unique-random-secret-here
      - DB_CLIENT=pg
      - DB_HOST=directus-db
      - DB_PORT=5432
      - DB_DATABASE=directus
      - DB_USER=directus
      - DB_PASSWORD=DirectusDbPass
      - ADMIN_EMAIL=admin@yourdomain.com
      - ADMIN_PASSWORD=ChangeThisPassword
    depends_on:
      - directus-db

  directus-db:
    image: postgres:16-alpine
    container_name: directus-db
    restart: unless-stopped
    volumes:
      - directus_db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=directus
      - POSTGRES_USER=directus
      - POSTGRES_PASSWORD=DirectusDbPass

volumes:
  directus_uploads:
  directus_extensions:
  directus_db:

Launch and Access

docker compose up -d

Open http://your-breeze-ip:8055 and log in with your admin credentials. Create collections, define fields, and configure roles and permissions through the intuitive data studio interface.

Key Strengths

  • Auto-generated REST and GraphQL APIs for all collections
  • Flows for building automation workflows without code
  • Granular field-level permissions per role
  • Supports PostgreSQL, MySQL, SQLite, and more

Was this article helpful?