• About
  • Services
  • Tech-Stack
  • Projects
  • Contact & Prices
  • Blog

directus.io mit Docker-Compose aufsetzen

directus on docker

Hier erfährst du, wie du directus (das vielleicht beste CMS auf dem Markt), mithilfe von Docker-Compose schnell und einfach aufsetzen kannst.

Warum directus mit Docker?

Bestens geeignet, um auf dem lokalen Rechner directus zu testen, vor allem aber um direcus auf einem eigenen Linux Server zu installieren.

Voraussetzungen

Bevor wir beginnen, stelle sicher, dass Docker und Docker Compose auf deinem System installiert ist.

Schritt 1: Erstellen der docker-compose.yml

Erstelle eine docker-compose.yml-Datei im directus-docker Ordner.

docker-compose.yml

services:
  database:
    image: postgis/postgis:13-master
    # Required when running on platform other than amd64, like Apple M1/M2:
    # platform: linux/amd64
    volumes:
      - ./data/database:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: "directus"
      POSTGRES_PASSWORD: "directus"
      POSTGRES_DB: "directus"

  cache:
    image: redis:6

  directus:
    image: directus/directus:10.10.4
    ports:
      - 8055:8055
    volumes:
      - ./uploads:/directus/uploads
      # If you want to load extensions from the host
      # - ./extensions:/directus/extensions
    depends_on:
      - cache
      - database
    environment:
      KEY: "255d861b-5ea1-5996-9aa3-922530ec40b1"
      SECRET: "6116487b-cda1-52c2-b5b5-c8022c45e263"

      DB_CLIENT: "pg"
      DB_HOST: "database"
      DB_PORT: "5432"
      DB_DATABASE: "directus"
      DB_USER: "directus"
      DB_PASSWORD: "directus"

      CACHE_ENABLED: "true"
      CACHE_STORE: "redis"
      REDIS: "redis://cache:6379"

      ADMIN_EMAIL: "admin@example.com"
      ADMIN_PASSWORD: "d1r3ctu5"

      CORS_ENABLED: "true"

  adminer:
    container_name: adminer
    image: adminer
    environment:
      # ADMINER_DESIGN: ${ADMINER_DESIGN:-dracula}
      # ADMINER_DESIGN: ${ADMINER_DESIGN:-pepa-linha}
      ADMINER_DESIGN: ${ADMINER_DESIGN:-pepa-linha-dark}
    ports:
      - "8008:8080"
    depends_on:
      database:
        condition: service_started

Schritt 2: Starten der directus Installation

Navigiere im Terminal zum directus-docker Ordner und führe folgenden Befehl aus:

docker-compose up

Schritt 3: Zugriff auf directus

Unter http://localhost:8055 können wir nun directus aufrufen. Benutzername zum Anmelden ist wie in der docker-compose.yml Datei beschrieben.

Die docker-compose.yml Datei enthält auch ein adminer Image. Wir können über http://localhost:8008 adminer starten, um auf die Datenbank zuzugreifen. In einer Produktivumgebung wäre es besser adminer nicht standardmäßig zu starten, da dadurch auch die Angriffsoberläche des Servers erhöht wird.

Weitere directus Instanzen

Um weitere Instanzen von directus zu erstellen, können wir nun einfach den directus-docker Ordner kopieren, umbenennen und bei Schritt 2 weitermachen. Um directus im produktivbetrieb einzusetzen würde man noch einen nginx reverse proxy konfigurieren welcher ebenfalls in einem docker-container sitzt. Hier könnte man dann zusätzliche Sicherheit features wie einen Bot Blocker konfigurieren und SSL für die Seite einrichten. Ich werde dazu in einem kommenden Beitrag noch genauer eingehen.