summaryrefslogtreecommitdiff
path: root/compose.photoprism-secure.dev.yml
blob: 6cdfc9a5368158a0954d8380cc2285eaa27a5922 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
services:
  minio:
    image: minio/minio:latest
    container_name: medias-minio
    command: server /data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: ${MINIO_ROOT_USER}
      MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
    ports:
      - "9000:9000"
      - "9001:9001"
    volumes:
      - minio_data:/data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 10s
      timeout: 5s
      retries: 12
    networks:
      - medias_net

  minio-init:
    image: minio/mc:latest
    container_name: medias-minio-init
    depends_on:
      minio:
        condition: service_healthy
    entrypoint: >
      /bin/sh -c "
      mc alias set local http://minio:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD} &&
      mc mb -p local/${S3_BUCKET} || true &&
      mc anonymous set none local/${S3_BUCKET} || true
      "
    restart: "no"
    networks:
      - medias_net

  media-access-api:
    image: ${MEDIA_ACCESS_API_IMAGE}
    container_name: medias-access-api
    environment:
      OIDC_ISSUER: ${OIDC_ISSUER}
      OIDC_AUDIENCE: ${OIDC_AUDIENCE}
      OIDC_JWKS_URL: ${OIDC_JWKS_URL}
      OIDC_CLIENT_ID: ${OIDC_CLIENT_ID}
      OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}
      RBAC_ROLE_PREFIX: ${RBAC_ROLE_PREFIX}
      RBAC_ROLE_ALL: ${RBAC_ROLE_ALL}
      S3_ENDPOINT: http://minio:9000
      S3_BUCKET: ${S3_BUCKET}
      S3_REGION: ${S3_REGION}
      S3_ACCESS_KEY: ${MINIO_ROOT_USER}
      S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD}
      S3_FORCE_PATH_STYLE: "true"
      PRESIGN_TTL_SECONDS: ${PRESIGN_TTL_SECONDS}
      PORT: "8081"
    depends_on:
      minio:
        condition: service_healthy
      minio-init:
        condition: service_completed_successfully
    ports:
      - "8081:8081"
    networks:
      - medias_net

  viewer-bff:
    build:
      context: ./viewer-bff
      dockerfile: Dockerfile
    container_name: medias-viewer-bff
    depends_on:
      - media-access-api
    environment:
      PORT: "8082"
      MEDIA_API_BASE_URL: ${MEDIA_API_BASE_URL}
      CORS_ALLOWED_ORIGIN: ${CORS_ALLOWED_ORIGIN}
    ports:
      - "${VIEWER_BFF_PORT:-8082}:8082"
    networks:
      - medias_net

networks:
  medias_net:
    name: medias_net

volumes:
  minio_data: