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