services: postgres: image: postgres:12-alpine container_name: occto_postgres environment: POSTGRES_USER: ${POSTGRES_USER:-admin} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-adminpassword} POSTGRES_DB: ${POSTGRES_DB:-occto_db} volumes: - postgres_data_v2:/var/lib/postgresql/data networks: - occto_network healthcheck: test: ["CMD-SHELL", "pg_isready -U admin -d occto_db"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped minio: image: minio/minio:RELEASE.2023-09-04T19-57-37Z container_name: occto_minio environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-admin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-adminpassword} volumes: - minio_data:/data networks: - occto_network command: server /data --console-address ":9001" restart: unless-stopped frontend: build: context: ./frontend dockerfile: Dockerfile container_name: occto_frontend expose: - "3000" environment: - NODE_ENV=${NODE_ENV:-production} - DATABASE_URL=${DATABASE_URL:-postgresql://admin:adminpassword@postgres:5432/occto_db?schema=public} - MINIO_ENDPOINT=${MINIO_ENDPOINT:-minio} - MINIO_PORT=${MINIO_PORT:-9000} - MINIO_USE_SSL=${MINIO_USE_SSL:-false} - MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY:-admin} - MINIO_SECRET_KEY=${MINIO_SECRET_KEY:-adminpassword} - MINIO_BUCKET_NAME=${MINIO_BUCKET_NAME:-occto-images} - JWT_SECRET=${JWT_SECRET:-b33500bb3dc5504535c34cc5f79f4ca0f60994b093bded14d48f76c0c090f032234693219e60398cab053a9c55c1d426ef7b1768104db9040254ba7db452f708} - LIBRETRANSLATE_URL=${LIBRETRANSLATE_URL:-https://libretranslate.stackbyte.cloud} depends_on: postgres: condition: service_healthy networks: - occto_network - dokploy-network restart: unless-stopped networks: occto_network: driver: bridge dokploy-network: external: true volumes: postgres_data_v2: minio_data: