See this: https://docs.photoprism.org/getting-started/docker-compose/
sudo wget https://dl.photoprism.org/docker/docker-compose.yml sudo vim docker-compose.yml sudo docker-compose up -d sudo ufw allow 1234 sudo chown -R justin:justin photoprism/
Photos only need read-access. Upon initialization as root
, the directory owner for the storage
directory needs to be changed to the specified user, before restarting the docker container again. No need backend database.
version: '3.5' services: photoprism: image: photoprism/photoprism:latest container_name: photoprism # restart: unless-stopped # Restart loop is almost guaranteed in first-time setup security_opt: - seccomp:unconfined - apparmor:unconfined ports: - "1234:2342" environment: PHOTOPRISM_ADMIN_PASSWORD: "mypassword" PHOTOPRISM_ORIGINALS_LIMIT: 5000 # 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_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" # Enables experimental features PHOTOPRISM_DISABLE_WEBDAV: "true" # Disables built-in WebDAV server PHOTOPRISM_DISABLE_SETTINGS: "false" # Disables Settings in Web UI PHOTOPRISM_DISABLE_TENSORFLOW: "true" # Disables using TensorFlow for image classification PHOTOPRISM_DARKTABLE_PRESETS: "false" PHOTOPRISM_DETECT_NSFW: "false" PHOTOPRISM_UPLOAD_NSFW: "true" PHOTOPRISM_SITE_URL: "http://localhost:1234/" # Public PhotoPrism URL PHOTOPRISM_SITE_TITLE: "PhotoPrism" PHOTOPRISM_SITE_CAPTION: "Browse Your Life" PHOTOPRISM_SITE_DESCRIPTION: "" PHOTOPRISM_SITE_AUTHOR: "" user: "1000:1000" volumes: - "~/Pictures:/photoprism/originals" # this points to /root/Pictures, not /home/[USER]/Pictures: - "./storage:/photoprism/storage" # permanent storage/caching