From b4542d82f828eb9492e8ea321cb0b42c41f9c898 Mon Sep 17 00:00:00 2001 From: Marko Kostich Date: Mon, 20 Jul 2026 04:25:33 +0300 Subject: [PATCH] feat(directus): upgrade template to Directus 12.1.1 (#986) * feat(directus): upgrade template to Directus 12.1.1 * feat(directus): add commented S3 env variables to template.toml --- blueprints/directus/docker-compose.yml | 98 ++++++++++++++++---------- blueprints/directus/meta.json | 4 +- blueprints/directus/template.toml | 33 ++++++++- 3 files changed, 95 insertions(+), 40 deletions(-) diff --git a/blueprints/directus/docker-compose.yml b/blueprints/directus/docker-compose.yml index 1f4572dd..ef27d2ba 100644 --- a/blueprints/directus/docker-compose.yml +++ b/blueprints/directus/docker-compose.yml @@ -1,15 +1,73 @@ services: + directus: + image: directus/directus:12.1.1 + ports: + - 8055 + volumes: + - directus_uploads:/directus/uploads + - directus_extensions:/directus/extensions + depends_on: + database: + condition: service_healthy + cache: + condition: service_healthy + healthcheck: + test: ["CMD-SHELL", "wget --spider -q http://127.0.0.1:8055/server/ping || exit 1"] + interval: 10s + timeout: 5s + retries: 5 + start_interval: 5s + start_period: 30s + environment: + SECRET: ${DIRECTUS_SECRET} + + DB_CLIENT: "pg" + DB_HOST: "database" + DB_PORT: "5432" + DB_DATABASE: ${DB_NAME} + DB_USER: ${DB_USER} + DB_PASSWORD: ${DB_PASSWORD} + + CACHE_ENABLED: "true" + CACHE_AUTO_PURGE: "true" + CACHE_STORE: "redis" + REDIS: "redis://cache:6379" + + WEBSOCKETS_ENABLED: "true" + PUBLIC_URL: ${PUBLIC_URL} + LICENSE_KEY: ${LICENSE_KEY} + + # After first successful login, remove ADMIN_EMAIL and ADMIN_PASSWORD below. + ADMIN_EMAIL: ${ADMIN_EMAIL} + ADMIN_PASSWORD: ${ADMIN_PASSWORD} + + STORAGE_LOCATIONS: "local" + STORAGE_LOCAL_DRIVER: "local" + STORAGE_LOCAL_ROOT: "/directus/uploads" + + # S3-compatible storage — uncomment and set S3_* env vars in template.toml. + # STORAGE_LOCATIONS: "s3" + # STORAGE_S3_DRIVER: "s3" + # STORAGE_S3_KEY: ${S3_ACCESS_KEY} + # STORAGE_S3_SECRET: ${S3_SECRET_KEY} + # STORAGE_S3_BUCKET: ${S3_BUCKET} + # STORAGE_S3_REGION: ${S3_REGION} + # STORAGE_S3_ENDPOINT: ${S3_ENDPOINT} + # STORAGE_S3_ROOT: ${S3_ROOT} + # STORAGE_S3_FORCE_PATH_STYLE: ${S3_FORCE_PATH_STYLE} + # STORAGE_S3_ACL: "private" + database: image: postgis/postgis:13-master volumes: - directus_database:/var/lib/postgresql/data environment: - POSTGRES_USER: "directus" - POSTGRES_PASSWORD: ${DATABASE_PASSWORD} - POSTGRES_DB: "directus" + POSTGRES_USER: ${DB_USER} + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_DB: ${DB_NAME} healthcheck: - test: ["CMD", "pg_isready", "--host=localhost", "--username=directus"] + test: ["CMD-SHELL", "pg_isready --host=localhost --username=$$POSTGRES_USER"] interval: 10s timeout: 5s retries: 5 @@ -26,38 +84,6 @@ services: start_interval: 5s start_period: 30s - - directus: - image: directus/directus:11.12.0 - ports: - - 8055 - volumes: - - directus_uploads:/directus/uploads - - directus_extensions:/directus/extensions - depends_on: - database: - condition: service_healthy - cache: - condition: service_healthy - environment: - SECRET: ${DIRECTUS_SECRET} - - DB_CLIENT: "pg" - DB_HOST: "database" - DB_PORT: "5432" - DB_DATABASE: "directus" - DB_USER: "directus" - DB_PASSWORD: ${DATABASE_PASSWORD} - - CACHE_ENABLED: "true" - CACHE_AUTO_PURGE: "true" - CACHE_STORE: "redis" - REDIS: "redis://cache:6379" - - # After first successful login, remove the admin email/password env. variables below - # as these will now be stored in the database. - ADMIN_EMAIL: "admin@example.com" - ADMIN_PASSWORD: "d1r3ctu5" volumes: directus_uploads: directus_extensions: diff --git a/blueprints/directus/meta.json b/blueprints/directus/meta.json index c9b20d20..f7757a47 100644 --- a/blueprints/directus/meta.json +++ b/blueprints/directus/meta.json @@ -1,13 +1,13 @@ { "id": "directus", "name": "Directus", - "version": "11.0.2", + "version": "12.1.1", "description": "Directus is an open source headless CMS that provides an API-first solution for building custom backends.", "logo": "directus.jpg", "links": { "github": "https://github.com/directus/directus", "website": "https://directus.io/", - "docs": "https://docs.directus.io/" + "docs": "https://directus.com/docs/" }, "tags": [ "cms" diff --git a/blueprints/directus/template.toml b/blueprints/directus/template.toml index 10738332..497f96b9 100644 --- a/blueprints/directus/template.toml +++ b/blueprints/directus/template.toml @@ -1,12 +1,41 @@ [variables] main_domain = "${domain}" +public_url = "https://${main_domain}" directus_secret = "${base64:64}" -database_password = "${password}" +db_password = "${password:32}" +db_user = "directus" +db_name = "directus" +admin_email = "${email}" +admin_password = "${password:24}" +license_key = "" + +# Object storage (S3-compatible) — uncomment when switching from local to S3. +# s3_access_key = "" +# s3_secret_key = "" +# s3_bucket = "" +# s3_region = "us-east-1" +# s3_endpoint = "https://s3.amazonaws.com" +# s3_root = "" +# s3_force_path_style = "false" [config] env = [ - "DATABASE_PASSWORD=${database_password}", + "PUBLIC_URL=${public_url}", "DIRECTUS_SECRET=${directus_secret}", + "DB_PASSWORD=${db_password}", + "DB_USER=${db_user}", + "DB_NAME=${db_name}", + "ADMIN_EMAIL=${admin_email}", + "ADMIN_PASSWORD=${admin_password}", + "LICENSE_KEY=${license_key}", + # Uncomment when enabling S3 storage in docker-compose.yml: + # "S3_ACCESS_KEY=${s3_access_key}", + # "S3_SECRET_KEY=${s3_secret_key}", + # "S3_BUCKET=${s3_bucket}", + # "S3_REGION=${s3_region}", + # "S3_ENDPOINT=${s3_endpoint}", + # "S3_ROOT=${s3_root}", + # "S3_FORCE_PATH_STYLE=${s3_force_path_style}", ] mounts = []