version: "3.7"

services:
  web:
    image: photoprism/photoprism:20210925@sha256:238e6955804d82097d08f0e4318835721f46bd844f9065a38aa7d112ab72906e
    user: "1000:1000"
    restart: on-failure
    stop_grace_period: "1m"
    ports:
      - ${APP_PHOTOPRISM_PORT}:${APP_PHOTOPRISM_PORT}
    volumes:
      - "${APP_DATA_DIR}/originals:/photoprism/originals"
      - "${APP_DATA_DIR}/storage:/photoprism/storage"
    environment:
      PHOTOPRISM_ADMIN_PASSWORD: "${APP_PASSWORD}"
      PHOTOPRISM_ORIGINALS_LIMIT: 10000
      PHOTOPRISM_HTTP_COMPRESSION: "gzip"
      PHOTOPRISM_HTTP_PORT: "${APP_PHOTOPRISM_PORT}"
      PHOTOPRISM_DATABASE_DRIVER: "mysql"
      PHOTOPRISM_DATABASE_SERVER: "${APP_PHOTOPRISM_DB_IP}:3306"
      PHOTOPRISM_DATABASE_NAME: "photoprism"
      PHOTOPRISM_DATABASE_USER: "photoprism"
      PHOTOPRISM_DATABASE_PASSWORD: "photoprism"
      PHOTOPRISM_SITE_URL: "http://${APP_DOMAIN}:${APP_PHOTOPRISM_PORT}/"
      PHOTOPRISM_SITE_TITLE: "PhotoPrism"
      PHOTOPRISM_SITE_CAPTION: "Digital Asset Management"
      PHOTOPRISM_SITE_DESCRIPTION: ""
      PHOTOPRISM_SITE_AUTHOR: ""
    networks:
      default:
        ipv4_address: ${APP_PHOTOPRISM_IP}

  db:
    image: mariadb:10.5.12@sha256:dfcba5641bdbfd7cbf5b07eeed707e6a3672f46823695a0d3aba2e49bbd9b1dd
    user: "1000:1000"
    restart: on-failure
    stop_grace_period: "1m"
    command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=50
    volumes:
      - "${APP_DATA_DIR}/database:/var/lib/mysql"
    environment:
      MYSQL_ROOT_PASSWORD: "photoprism"
      MYSQL_DATABASE: "photoprism"
      MYSQL_USER: "photoprism"
      MYSQL_PASSWORD: "photoprism"
    networks:
      default:
        ipv4_address: ${APP_PHOTOPRISM_DB_IP}