version: '3.5' # Example Docker Compose config file for PhotoPrism (Intel / AMD64) # # Documentation : https://docs.photoprism.org/getting-started/docker-compose/ # Docker Hub URL: https://hub.docker.com/r/photoprism/photoprism/ # # Please run behind a reverse proxy like Caddy, Traefik or Nginx if you need HTTPS / SSL support # e.g. when running PhotoPrism on a public server outside your home network. # # Usage: docker-compose up services: photoprism: image: photoprism/photoprism:latest container_name: photoprism security_opt: - seccomp:unconfined - apparmor:unconfined ports: - 5050:2342 # [local port]:[container port] # Uncomment the following lines to enable regular health checks (causes automatic restarts): restart: unless-stopped # healthcheck: # test: ["CMD", "photoprism", "status"] # interval: 60s # timeout: 15s # retries: 5 # # Run "photoprism help" and "photoprism config" too see all config options and current values: environment: # Run "photoprism help" and "photoprism config" too see all config options and current values PHOTOPRISM_ADMIN_PASSWORD: "insecure" # PLEASE CHANGE: This is your initial admin password PHOTOPRISM_DEBUG: "false" # Run in debug mode (shows additional log messages) PHOTOPRISM_PUBLIC: "false" # No authentication required (disables password protection) PHOTOPRISM_READONLY: "false" # Don't modify originals directory (reduced functionality) PHOTOPRISM_EXPERIMENTAL: "false" # Enable experimental features PHOTOPRISM_SITE_URL: "" # Canonical / public site URL PHOTOPRISM_SITE_TITLE: "PhotoPrism" PHOTOPRISM_SITE_CAPTION: "Browse Your Life" PHOTOPRISM_SITE_DESCRIPTION: "" PHOTOPRISM_SITE_AUTHOR: "" PHOTOPRISM_HTTP_HOST: "0.0.0.0" PHOTOPRISM_HTTP_PORT: 2342 PHOTOPRISM_DISABLE_BACKUPS: "false" # Don't backup photo and album metadata to YAML files PHOTOPRISM_DISABLE_WEBDAV: "false" # Disable built-in WebDAV server PHOTOPRISM_DISABLE_SETTINGS: "false" # Users can not view or change settings PHOTOPRISM_DISABLE_PLACES: "false" # Disables reverse geocoding and maps PHOTOPRISM_DISABLE_EXIFTOOL: "false" # Don't create ExifTool JSON files for improved metadata extraction PHOTOPRISM_DISABLE_TENSORFLOW: "false" # Don't use TensorFlow for image classification PHOTOPRISM_DETECT_NSFW: "false" # Flag photos as private that MAY be offensive (requires TensorFlow) PHOTOPRISM_UPLOAD_NSFW: "true" # Allow uploads that MAY be offensive PHOTOPRISM_DARKTABLE_PRESETS: "false" # Use Darktable presets (disables concurrent raw image conversion) PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite is an embedded database that doesn't require a server # PHOTOPRISM_DATABASE_DRIVER: "mysql" # Use MariaDB (or MySQL) instead of SQLite for improved performance PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB database server (hostname:port) PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB database schema name PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB database user name PHOTOPRISM_DATABASE_PASSWORD: "insecure" # MariaDB database user password PHOTOPRISM_THUMB_FILTER: "lanczos" # Resample filter, best to worst: blackman, lanczos, cubic, linear PHOTOPRISM_THUMB_UNCACHED: "false" # Enable on-demand thumbnail rendering (high memory and cpu usage) PHOTOPRISM_THUMB_SIZE: 2048 # Pre-rendered thumbnail size limit (default 2048, min 720, max 7680) # PHOTOPRISM_THUMB_SIZE: 4096 # Retina 4K, DCI 4K (requires more storage); 7680 for 8K Ultra HD PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # On-demand rendering size limit (default 7680, min 720, max 7680) PHOTOPRISM_JPEG_SIZE: 7680 # Size limit for converted image files in pixels (720-30000) PHOTOPRISM_JPEG_QUALITY: 92 # Set to 95 for high-quality thumbnails (25-100) # 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: 1000 # GID: 1000 # UMASK: 0000 # Uncomment and edit the following line to set a specific user / group id (native): # user: "1000:1000" volumes: # Storage folder for settings, index & sidecar files (DON'T REMOVE): # Multiple folders can be indexed by mounting them as subfolders of /photoprism/originals: # - "~/Family:/photoprism/originals/Family" # [folder_1]:/photoprism/originals/[folder_1] # - "~/Friends:/photoprism/originals/Friends" # [folder_2]:/photoprism/originals/[folder_2] # Mounting the import folder is optional (see docs): # - "~/Import:/photoprism/import" ofelia: restart: unless-stopped image: mcuadros/ofelia:latest container_name: ofelia-photoprism volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./jobs.ini:/etc/ofelia/config.ini" # Uncomment the following lines to use MariaDB instead of SQLite for improved performance & scalability: # # mariadb: # image: mariadb:10.5 # restart: unless-stopped # 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: # - "/var/lib/mysql" # environment: # MYSQL_ROOT_PASSWORD: insecure # MYSQL_DATABASE: photoprism # MYSQL_USER: photoprism # MYSQL_PASSWORD: insecure # Uncomment the following lines to upgrade automatically, whenever there is a new Docker image available: # # watchtower: # image: containrrr/watchtower # restart: unless-stopped # volumes: # - "/var/run/docker.sock:/var/run/docker.sock"