services: museum: image: ghcr.io/ente-io/server container_name: ente-museum #ports: #- 6000:8080 # API #- 2112:2112 # Prometheus metrics depends_on: postgres: condition: service_healthy environment: ENTE_CREDENTIALS_FILE: /credentials.yaml volumes: - /BigBoyy/config/ente-photo/museum/logs:/var/logs - /BigBoyy/config/ente-photo/museum/museum.yaml:/museum.yaml:ro - /BigBoyy/config/ente-photo/museum/credentials.yaml:/credentials.yaml:ro - /BigBoyy/config/ente-photo/museum/data:/data networks: - internal - traefik-back labels: - traefik.enable=true - traefik.docker.network=traefik-back - traefik.http.routers.ente.rule=Host(`photo.kanel.ovh`) - traefik.http.routers.ente.entrypoints=websecure - traefik.http.routers.ente.tls=true - traefik.http.routers.ente.tls.certresolver=letsencrypt - traefik.http.routers.ente.service=ente - traefik.http.services.ente.loadbalancer.server.port=8080 - traefik.http.middlewares.ente-cors.headers.accesscontrolallowmethods=GET,HEAD,POST,PUT,DELETE - traefik.http.middlewares.ente-cors.headers.accesscontrolallowheaders=* - traefik.http.middlewares.ente-cors.headers.accesscontrolalloworiginlist=https://photo.kanel.ovh,https://s3.photo.kanel.ovh,https://account.photo.kanel.ovh,https://web.photo.kanel.ovh,https://cast.photo.kanel.ovh,https://albums.photo.kanel.ovh - traefik.http.middlewares.ente-cors.headers.accesscontrolmaxage=3000 - traefik.http.middlewares.ente-cors.headers.accessControlExposeHeaders=ETag - traefik.http.middlewares.ente-cors.headers.addvaryheader=true - traefik.http.routers.ente.middlewares=ente-cors web: image: ente-web-dev container_name: ente-web environment: - NODE_ENV=development depends_on: - museum networks: - internal - traefik-back labels: - traefik.enable=true - traefik.docker.network=traefik-back - traefik.http.routers.ente-web.rule=Host(`web.photo.kanel.ovh`) - traefik.http.routers.ente-web.entrypoints=websecure - traefik.http.routers.ente-web.tls=true - traefik.http.routers.ente-web.tls.certresolver=letsencrypt - traefik.http.routers.ente-web.service=ente-web - traefik.http.services.ente-web.loadbalancer.server.port=3000 - traefik.http.routers.ente-album.rule=Host(`albums.photo.kanel.ovh`) - traefik.http.routers.ente-album.entrypoints=websecure - traefik.http.routers.ente-album.tls=true - traefik.http.routers.ente-album.tls.certresolver=letsencrypt - traefik.http.routers.ente-album.service=ente-album - traefik.http.services.ente-album.loadbalancer.server.port=3000 - traefik.http.routers.ente-acc.rule=Host(`account.photo.kanel.ovh`) - traefik.http.routers.ente-acc.entrypoints=websecure - traefik.http.routers.ente-acc.tls=true - traefik.http.routers.ente-acc.tls.certresolver=letsencrypt - traefik.http.routers.ente-acc.service=ente-acc - traefik.http.services.ente-acc.loadbalancer.server.port=3001 - traefik.http.routers.ente-cast.rule=Host(`cast.photo.kanel.ovh`) - traefik.http.routers.ente-cast.entrypoints=websecure - traefik.http.routers.ente-cast.tls=true - traefik.http.routers.ente-cast.tls.certresolver=letsencrypt - traefik.http.routers.ente-cast.service=ente-cast - traefik.http.services.ente-cast.loadbalancer.server.port=3003 postgres: image: postgres:15 container_name: ente-db ports: - 5432:5432 environment: POSTGRES_USER: POSTGRES_PASSWORD: POSTGRES_DB: ente_db # Wait for postgres to accept connections before starting museum. healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "ente_db", "-U", "pguser" ] start_period: 40s start_interval: 1s volumes: - /BigBoyy/config/ente-photo/db:/var/lib/postgresql/data networks: - internal minio: image: minio/minio container_name: ente-minio ports: #- 3200:3200 # API - 3201:3201 # Console environment: MINIO_ROOT_USER: MINIO_ROOT_PASSWORD: MINIO_SERVER_URL: https://s3.photo.kanel.ovh command: server /data --address ":3200" --console-address ":3201" volumes: - /BigBoyy/config/ente-photo/minio/data:/data networks: - internal - traefik-back labels: - traefik.enable=true - traefik.docker.network=traefik-back - traefik.http.routers.ente-s3.rule=Host(`s3.photo.kanel.ovh`) - traefik.http.routers.ente-s3.entrypoints=websecure - traefik.http.routers.ente-s3.tls=true - traefik.http.routers.ente-s3.tls.certresolver=letsencrypt - traefik.http.routers.ente-s3.service=ente-s3 - traefik.http.services.ente-s3.loadbalancer.server.port=3200 # minio-provision: # image: minio/mc # container_name: ente-minio-prov # depends_on: # - minio # volumes: # - /BigBoyy/config/ente-photo/minio/provision.sh:/provision.sh:ro # - /BigBoyy/config/ente-photo/minio/data:/data # networks: # - internal # entrypoint: sh /provision.sh networks: internal: name: ente-internal traefik-back: external: true