version: "3.5" services: photoprism: image: photoprism/photoprism:latest container_name: "photoprism" depends_on: - photoprism-mariadb restart: unless-stopped user: 1000:1000 ports: - "2342:2342" # HTTP port (host:container) environment: VIRTUAL_HOST: photo.micard-family.fr LETSENCRYPT_HOST: photo.micard-family.fr LETSENCRYPT_EMAIL: emilien.micard@gmail.com VIRTUAL_PORT: 2342 PHOTOPRISM_ADMIN_PASSWORD: ${PHOTOPRISM_ADMIN_PASSWORD} PHOTOPRISM_SITE_URL: https://photo.micard-family.fr PHOTOPRISM_DATABASE_DRIVER: "mysql" PHOTOPRISM_DATABASE_SERVER: "photoprism-mariadb:3306" PHOTOPRISM_DATABASE_NAME: "photoprism" PHOTOPRISM_DATABASE_USER: "photoprism" PHOTOPRISM_DATABASE_PASSWORD: t27s5e5YWuqFP6 PHOTOPRISM_SITE_TITLE: "PhotoPrism" PHOTOPRISM_SITE_CAPTION: "Browse Your Life" PHOTOPRISM_SITE_DESCRIPTION: "" PHOTOPRISM_SITE_AUTHOR: "" HOME: "/photoprism" PHOTOPRISM_ORIGINALS_LIMIT: 10000 # file size limit for originals in MB (increase for high-res video) PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip) PHOTOPRISM_LOG_LEVEL: "info" # log level: trace, debug, info, warning, error, fatal, or panic PHOTOPRISM_READONLY: "false" # do not modify originals directory (reduced functionality) PHOTOPRISM_EXPERIMENTAL: "false" # enables experimental features PHOTOPRISM_DISABLE_CHOWN: "false" # disables updating storage permissions via chmod and chown on startup PHOTOPRISM_DISABLE_WEBDAV: "false" # disables built-in WebDAV server PHOTOPRISM_DISABLE_SETTINGS: "false" # disables settings UI and API PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow PHOTOPRISM_DISABLE_FACES: "false" # disables face detection and recognition (requires TensorFlow) PHOTOPRISM_DISABLE_CLASSIFICATION: "false" # disables image classification (requires TensorFlow) PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW files PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW files (reduces performance) PHOTOPRISM_JPEG_QUALITY: 80 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow) PHOTOPRISM_UPLOAD_NSFW: "true" # allows uploads that MAY be offensive (no effect without TensorFlow) working_dir: "/photoprism" volumes: - /mnt/data/medias/photos:/photoprism/originals - /mnt/data/docker-storage/photoprism-storage:/photoprism/storage # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE) labels: ofelia.enabled: "true" ofelia.job-exec.photoprism_index.schedule: "@every 1h" ofelia.job-exec.photoprism_index.command: "photoprism index --cleanup" photoprism-mariadb: restart: unless-stopped container_name: "photoprism-db" image: mariadb:10.6 ports: - "33006:3306" # MySQL port (host:container) security_opt: - seccomp:unconfined - apparmor:unconfined command: mysqld --innodb-buffer-pool-size=256M --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: - "./db:/var/lib/mysql" environment: MYSQL_ROOT_PASSWORD: E2y3kHNf4Und48 MYSQL_DATABASE: photoprism MYSQL_USER: photoprism MYSQL_PASSWORD: t27s5e5YWuqFP6 ofelia: restart: unless-stopped image: mcuadros/ofelia:latest container_name: ofelia depends_on: - photoprism command: daemon --docker volumes: - /var/run/docker.sock:/var/run/docker.sock:ro backup: image: databack/mysql-backup container_name: "photoprism-db-backup" restart: always user : 0:0 depends_on: - photoprism-mariadb volumes: - /mnt/data/docker-backups/photoprism-db:/db # - /path/to/pre-backup/scripts:/scripts.d/pre-backup # - /path/to/post-backup/scripts:/scripts.d/post-backup environment: - DB_DUMP_TARGET=/db - DB_USER=photoprism - DB_PASS=t27s5e5YWuqFP6 - DB_DUMP_FREQ=1440 - DB_DUMP_BEGIN=+1 - DB_SERVER=photoprism-mariadb networks: default: external: name: proxy_nginxproxy