Docker/Voltaserve/docker-compose.yml
2024-04-17 20:22:30 +02:00

151 lines
4.0 KiB
YAML

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