version: "3.9" volumes: postgres: minio: meilisearch: redis: services: postgres: image: voltaserve/postgres build: context: ./postgres ports: - ${VOLTASERVE_POSTGRES_PORT}:5432 environment: POSTGRES_USER: voltaserve POSTGRES_PASSWORD: voltaserve volumes: - postgres:/var/lib/postgresql/data minio: image: minio/minio:RELEASE.2024-04-06T05-26-02Z ports: - ${VOLTASERVE_MINIO_PORT}:9000 - ${VOLTASERVE_MINIO_CONSOLE_PORT}:9001 environment: MINIO_ROOT_USER: voltaserve MINIO_ROOT_PASSWORD: voltaserve MINIO_REGION: us-east-1 volumes: - minio:/data command: server /data --console-address ":9001" meilisearch: image: getmeili/meilisearch:v1.7 ports: - ${VOLTASERVE_MEILISEARCH_PORT}:7700 volumes: - meilisearch:/meili_data redis: image: redis:7.2 ports: - ${VOLTASERVE_REDIS_PORT}:6379 volumes: - redis:/data mailhog: image: mailhog/mailhog:v1.0.1 ports: - ${VOLTASERVE_MAILHOG_SMTP_PORT}:1025 - ${VOLTASERVE_MAILHOG_WEB_PORT}:8025 api: image: voltaserve/api build: context: ./api ports: - ${VOLTASERVE_API_PORT}:5000 environment: - PORT=5000 - CONVERSION_URL=http://conversion:5001 - POSTGRES_URL=postgresql://voltaserve:voltaserve@postgres:5432/voltaserve - S3_URL=minio:9000 - SEARCH_URL=http://meilisearch:7700 - PUBLIC_UI_URL=http://${VOLTASERVE_HOSTNAME}:${VOLTASERVE_UI_PORT} - REDIS_ADDRESS=redis:6379 - SMTP_HOST=${VOLTASERVE_SMTP_HOST} - SMTP_PORT=${VOLTASERVE_SMTP_PORT} - SMTP_SECURE=${VOLTASERVE_SMTP_SECURE} - SMTP_USERNAME=${VOLTASERVE_SMTP_USERNAME} - SMTP_PASSWORD=${VOLTASERVE_SMTP_PASSWORD} - SMTP_SENDER_ADDRESS=${VOLTASERVE_SMTP_SENDER_ADDRESS} - SMTP_SENDER_NAME=${VOLTASERVE_SMTP_SENDER_NAME} healthcheck: test: curl --fail http://localhost:5000/v1/health || exit 1 depends_on: - postgres - redis - minio - meilisearch restart: on-failure idp: image: voltaserve/idp build: context: ./idp ports: - ${VOLTASERVE_IDP_PORT}:7000 environment: - PORT=7000 - POSTGRES_URL=postgresql://voltaserve:voltaserve@postgres:5432/voltaserve - SEARCH_URL=http://meilisearch:7700 - PUBLIC_UI_URL=http://${VOLTASERVE_HOSTNAME}:${VOLTASERVE_UI_PORT} - SMTP_HOST=${VOLTASERVE_SMTP_HOST} - SMTP_PORT=${VOLTASERVE_SMTP_PORT} - SMTP_SECURE=${VOLTASERVE_SMTP_SECURE} - SMTP_USERNAME=${VOLTASERVE_SMTP_USERNAME} - SMTP_PASSWORD=${VOLTASERVE_SMTP_PASSWORD} - SMTP_SENDER_ADDRESS=${VOLTASERVE_SMTP_SENDER_ADDRESS} - SMTP_SENDER_NAME=${VOLTASERVE_SMTP_SENDER_NAME} healthcheck: test: curl --fail http://localhost:7000/v1/health || exit 1 depends_on: - postgres - meilisearch - minio restart: on-failure ui: image: voltaserve/ui build: context: ./ui ports: - ${VOLTASERVE_UI_PORT}:3000 environment: - API_URL=http://api:5000 - IDP_URL=http://idp:7000 healthcheck: test: curl --fail http://localhost:3000/index.html || exit 1 depends_on: - idp - api restart: on-failure webdav: image: voltaserve/webdav build: context: ./webdav ports: - ${VOLTASERVE_WEBDAV_PORT}:6000 environment: - PORT=6000 - IDP_URL=http://idp:7000 - API_URL=http://api:5000 healthcheck: test: curl --fail http://localhost:6000/v1/health || exit 1 depends_on: - idp - api restart: on-failure conversion: image: voltaserve/conversion build: context: ./conversion ports: - ${VOLTASERVE_CONVERSION_PORT}:5001 environment: - PORT=5001 - API_URL=http://api:5000 - S3_URL=minio:9000 healthcheck: test: curl --fail http://localhost:5001/v1/health || exit 1 depends_on: - api - minio restart: on-failure