# documentation: https://directus.io # slogan: Directus wraps databases with a dynamic API, and provides an intuitive app for managing its content. # tags: directus, cms, database, sql # logo: svgs/directus.svg # port: 8055 services: directus: image: directus/directus:10 volumes: - directus-uploads:/directus/uploads - directus-extensions:/directus/extensions environment: - SERVICE_FQDN_DIRECTUS_8055 - KEY=$SERVICE_BASE64_64_KEY - SECRET=$SERVICE_BASE64_64_SECRET - ADMIN_EMAIL=${ADMIN_EMAIL:-admin@example.com} - ADMIN_PASSWORD=$SERVICE_PASSWORD_ADMIN - DB_CLIENT=postgres - DB_HOST=postgresql - DB_PORT=5432 - DB_DATABASE=${POSTGRESQL_DATABASE:-directus} - DB_USER=$SERVICE_USER_POSTGRESQL - DB_PASSWORD=$SERVICE_PASSWORD_POSTGRESQL - REDIS_HOST=redis - REDIS_PORT=6379 - WEBSOCKETS_ENABLED=true healthcheck: test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:8055/admin/login"] interval: 5s timeout: 20s retries: 10 depends_on: postgresql: condition: service_healthy redis: condition: service_healthy postgresql: image: postgres:16-alpine volumes: - directus-postgresql-data:/var/lib/postgresql/data environment: - POSTGRES_USER=${SERVICE_USER_POSTGRESQL} - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL} - POSTGRES_DB=${POSTGRESQL_DATABASE:-directus} healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 20s retries: 10 redis: image: redis:7-alpine command: redis-server --appendonly yes volumes: - directus-redis-data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 20s retries: 10