version: '3.5' # ------------------------------------------------------------------ # DOCKER COMPOSE COMMAND REFERENCE # ------------------------------------------------------------------ # Start | docker-compose up -d # Stop | docker-compose stop # Update | docker-compose pull # Logs | docker-compose logs --tail=25 -f # Terminal | docker-compose exec photoprism bash # Help | docker-compose exec photoprism photoprism help # Config | docker-compose exec photoprism photoprism config # Reset | docker-compose exec photoprism photoprism reset # Backup | docker-compose exec photoprism photoprism backup -a -i # Restore | docker-compose exec photoprism photoprism restore -a -i # Index | docker-compose exec photoprism photoprism index # Reindex | docker-compose exec photoprism photoprism index -a # Import | docker-compose exec photoprism photoprism import # ------------------------------------------------------------------- services: photoprism: # Use photoprism/photoprism:preview instead for testing preview builds: image: "photoprism/photoprism:231128@sha256:cf45026f3381b13cc638ed556d1f717340267d1a832794380f49998fd3a899c8" container_name: photoprism-frontend restart: always security_opt: - seccomp:unconfined - apparmor:unconfined ports: - 2342:2342 environment: PHOTOPRISM_ADMIN_PASSWORD: "{{ lookup('keepass', 'photoprism_admin_password', 'password') }}" PHOTOPRISM_HTTP_PORT: 2342 PHOTOPRISM_HTTP_COMPRESSION: "gzip" # none or gzip PHOTOPRISM_DEBUG: "false" PHOTOPRISM_PUBLIC: "false" # No authentication required (disables password protection) PHOTOPRISM_READONLY: "true" # Don't modify originals directory (reduced functionality) PHOTOPRISM_EXPERIMENTAL: "false" PHOTOPRISM_DISABLE_WEBDAV: "true" PHOTOPRISM_DISABLE_SETTINGS: "false" PHOTOPRISM_DISABLE_TENSORFLOW: "false" PHOTOPRISM_DARKTABLE_PRESETS: "false" PHOTOPRISM_DETECT_NSFW: "true" PHOTOPRISM_UPLOAD_NSFW: "true" PHOTOPRISM_DATABASE_DRIVER: "mysql" PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" PHOTOPRISM_DATABASE_NAME: "photoprism" PHOTOPRISM_DATABASE_USER: "photoprism" PHOTOPRISM_DATABASE_PASSWORD: "{{ lookup('keepass', 'photoprism_database_password', 'password') }}" PHOTOPRISM_SITE_URL: "http://docker10.mgrote.net:2342/" PHOTOPRISM_SITE_TITLE: "PhotoPrism" PHOTOPRISM_SITE_CAPTION: "Browse Your Life" PHOTOPRISM_SITE_DESCRIPTION: "" PHOTOPRISM_SITE_AUTHOR: "mgrote" # You may optionally set a user / group id using environment variables if your Docker version or NAS does not # support this natively (see next example): UID: 5000 GID: 5000 # UMASK: 0000 # Uncomment and edit the following line to set a specific user / group id (native): user: "5000:5000" volumes: - /mnt/fileserver3_photoprism_bilder_ro:/photoprism/originals/:ro - "storage:/photoprism/storage" labels: com.centurylinklabs.watchtower.enable: true com.centurylinklabs.watchtower.depends-on: photoprism-db mariadb: image: "mariadb:11.2.2@sha256:eb6a2d34367b662a6e9c92e8cd112bbadf03ad4627f8eeb8d19f480f8da87fa6" container_name: photoprism-db restart: always security_opt: - seccomp:unconfined - apparmor:unconfined 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: # Don't remove permanent storage for index database files! - "database:/var/lib/mysql" environment: MYSQL_ROOT_PASSWORD: "{{ lookup('keepass', 'photoprism_mysql_root_password', 'password') }}" MYSQL_DATABASE: photoprism MYSQL_USER: photoprism MYSQL_PASSWORD: "{{ lookup('keepass', 'photoprism_database_password', 'password') }}" labels: com.centurylinklabs.watchtower.enable: true volumes: storage: database: