services: directus: build: context: . dockerfile: directus.Dockerfile volumes: - 'directus-uploads:/directus/uploads' - 'directus-extensions:/directus/extensions' - 'directus-templates:/directus/templates' environment: - SERVICE_URL_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: 'postgis/postgis:16-3.4-alpine' platform: linux/amd64 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 frontend: build: context: ./frontend dockerfile: Dockerfile environment: - PUBLIC_DIRECTUS_URL=http://directus:8055 - DIRECTUS_ADMIN_TOKEN=${DIRECTUS_ADMIN_TOKEN:-} - PUBLIC_PLATFORM_DOMAIN=${PLATFORM_DOMAIN:-localhost} depends_on: - directus volumes: directus-uploads: directus-extensions: directus-templates: directus-postgresql-data: directus-redis-data: