version: '3.8' services: postgres: image: postgres:16 container_name: occto_postgres environment: POSTGRES_USER: admin POSTGRES_PASSWORD: adminpassword POSTGRES_DB: occto_db volumes: - postgres_data:/var/lib/postgresql/data networks: - occto_network healthcheck: test: ["CMD-SHELL", "pg_isready -U admin"] interval: 10s timeout: 5s retries: 5 minio: image: minio/minio:latest container_name: occto_minio environment: MINIO_ROOT_USER: admin 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 ports: - "3001:3000" environment: - NODE_ENV=production - DATABASE_URL=postgresql://admin:adminpassword@postgres:5432/occto_db?schema=public - MINIO_ENDPOINT=minio - MINIO_PORT=9000 - MINIO_USE_SSL=false - MINIO_ACCESS_KEY=admin - MINIO_SECRET_KEY=adminpassword - MINIO_BUCKET_NAME=occto-images - JWT_SECRET=b33500bb3dc5504535c34cc5f79f4ca0f60994b093bded14d48f76c0c090f032234693219e60398cab053a9c55c1d426ef7b1768104db9040254ba7db452f708 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: minio_data: