volumes:
  database-data:
    name: database-data

networks:
  traefik-net:
    external: true
    name: traefik-net

services:
  photoprism:
    image: photoprism/photoprism:latest
    # restart: unless-stopped
    stop_grace_period: 10s
    depends_on:
      - mariadb
    security_opt:
      - seccomp:unconfined
      - apparmor:unconfined
    env_file:
      - .env_file
    working_dir: "/photoprism"
    volumes:
      - ${MAIN_DIR}/originals:/photoprism/originals
      - ${MAIN_DIR}/imports:/photoprism/import
      - ${MAIN_DIR}/storage:/photoprism/storage
    networks:
      - traefik-net
      - default
    deploy:
      labels:
        - traefik.enable=true
        - traefik.docker.network=traefik-net
        - traefik.http.routers.photoprism.rule=Host(`${HOST}`)
        - traefik.http.routers.photoprism.entrypoints=${ENTRYPOINTS:-websecure}
        - traefik.http.routers.photoprism.tls.certresolver=le
        - traefik.http.services.photoprism.loadbalancer.server.port=2342

  mariadb:
    image: mariadb:11
    stop_grace_period: 5s
    security_opt:
      - seccomp:unconfined
      - apparmor:unconfined
    command: --innodb-buffer-pool-size=512M --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=120
    volumes:
      - database-data:/var/lib/mysql
    environment:
      MARIADB_AUTO_UPGRADE: "1"
      MARIADB_INITDB_SKIP_TZINFO: "1"
      MARIADB_DATABASE: "photoprism"
      MARIADB_USER: "photoprism"
      MARIADB_PASSWORD: "insecure"
      MARIADB_ROOT_PASSWORD: "insecure"