Skip to content

Directus

Docs

Docker tags

YAML
services:
  directus:
    image: directus/directus:11.3.5
    ports:
      - 8055:8055
    volumes:
      - ./database:/directus/database
      - ./uploads:/directus/uploads
      - ./extensions:/directus/extensions
    environment:
      SECRET: "replace-with-secure-random-value"
      ADMIN_EMAIL: "[email protected]"
      ADMIN_PASSWORD: "Test1234"
      DB_CLIENT: "sqlite3"
      DB_FILENAME: "/directus/database/data.db"
      WEBSOCKETS_ENABLED: "true"
      CORS_ENABLED: "true"
      CORS_ORIGIN: "http://127.0.0.1:5173"

With Mysql

YAML
services:
  directus:
    container_name: directus
    hostname: directus
    restart: unless-stopped
    image: directus/directus:11.4.1
    ports:
      - 8055:8055
    volumes:
      - ./database:/directus/database
      - ./uploads:/directus/uploads
      - ./extensions:/directus/extensions
    environment:
      SECRET: "qBxLtjnFp8Szh9SZtGXXXXXXXXXXXXXXX3F3QX8pn2SmNBbFTD83mmR2Nqv9"
      ADMIN_EMAIL: "[email protected]"
      ADMIN_PASSWORD: "password"
      DB_CLIENT: "mysql"
      DB_HOST: mysql8
      DB_PORT: 3306
      DB_DATABASE: directus
      DB_USER: directus
      DB_PASSWORD: directus123
      WEBSOCKETS_ENABLED: "true"
      CORS_ORIGIN: "array:http://localhost:4200,https://www.example.com"
    depends_on:
      mysql8:
        condition: service_healthy

  mysql8:
    image: mysql:8.0
    container_name: mysql8
    hostname: mysql-8
    command: '--default-authentication-plugin=mysql_native_password'
    # cap_add:
    #   - SYS_NICE  # CAP_SYS_NICE
    volumes:
      - ./conf:/etc/mysql/conf.d
      - ./dbdata:/var/lib/mysql
    ports:
      - "3306"
    environment:
        # MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
      MYSQL_ROOT_PASSWORD: urrootpass
      MYSQL_USER: "directus"
      MYSQL_PASSWORD: "directus123"
      MYSQL_DATABASE: "directus"
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      timeout: 20s
      retries: 10
  • custom.ini
INI
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
default_authentication_plugin = mysql_native_password
max_connections  = 666
bind-address     = 0.0.0.0
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4