From 68ff9b56acef17454a424c53725404f0825ac62e Mon Sep 17 00:00:00 2001 From: Michael Mayer Date: Mon, 1 May 2023 11:32:31 +0200 Subject: [PATCH] CI: Update Makefile and docker-compose.yml config examples Signed-off-by: Michael Mayer --- Makefile | 46 +++--- docker/demo/Dockerfile | 2 +- docker/demo/debian/Dockerfile | 2 +- docker/demo/ubuntu/Dockerfile | 2 +- docker/demo/unstable/Dockerfile | 2 +- setup/docker/arm64/docker-compose.yml | 2 + setup/docker/arm64/plus/docker-compose.yml | 143 ------------------ setup/docker/armv7/docker-compose.yml | 1 + setup/docker/cloud/docker-compose.yml | 1 + setup/docker/docker-compose.yml | 2 + setup/docker/macos/docker-compose.yml | 1 + setup/docker/macos/plus/docker-compose.yml | 122 ---------------- setup/docker/nvidia/docker-compose.yml | 2 + setup/docker/nvidia/plus/docker-compose.yml | 146 ------------------- setup/docker/plus/docker-compose.yml | 143 ------------------ setup/docker/scheduler/docker-compose.yml | 2 + setup/docker/sqlite/docker-compose.yml | 2 + setup/docker/windows/docker-compose.yml | 2 + setup/docker/windows/plus/docker-compose.yml | 129 ---------------- setup/podman/docker-compose.yml | 2 + setup/podman/plus/docker-compose.yml | 120 --------------- 21 files changed, 44 insertions(+), 830 deletions(-) delete mode 100644 setup/docker/arm64/plus/docker-compose.yml delete mode 100644 setup/docker/macos/plus/docker-compose.yml delete mode 100644 setup/docker/nvidia/plus/docker-compose.yml delete mode 100644 setup/docker/plus/docker-compose.yml delete mode 100644 setup/docker/windows/plus/docker-compose.yml delete mode 100644 setup/podman/plus/docker-compose.yml diff --git a/Makefile b/Makefile index 9a64226c3..8355d2ed4 100644 --- a/Makefile +++ b/Makefile @@ -366,11 +366,11 @@ docker-unstable: docker-unstable-lunar docker-unstable-jammy: docker pull --platform=amd64 photoprism/develop:jammy docker pull --platform=amd64 photoprism/develop:jammy-slim - scripts/docker/buildx-multi.sh photoprism linux/amd64 unstable /jammy + scripts/docker/buildx-multi.sh photoprism linux/amd64 unstable-ce /jammy docker-unstable-lunar: docker pull --platform=amd64 photoprism/develop:lunar docker pull --platform=amd64 photoprism/develop:lunar-slim - scripts/docker/buildx-multi.sh photoprism linux/amd64 unstable /lunar + scripts/docker/buildx-multi.sh photoprism linux/amd64 unstable-ce /lunar preview: docker-preview docker-preview: docker-preview-latest docker-preview-all: docker-preview-latest docker-preview-other @@ -384,7 +384,7 @@ docker-preview-bookworm: docker pull --platform=amd64 photoprism/develop:bookworm-slim docker pull --platform=arm64 photoprism/develop:bookworm docker pull --platform=arm64 photoprism/develop:bookworm-slim - scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-bookworm /bookworm "-t photoprism/photoprism:preview-debian" + scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-bookworm /bookworm "-t photoprism/photoprism:preview-ce-debian" docker-preview-armv7: docker pull --platform=arm photoprism/develop:armv7 docker pull --platform=arm ubuntu:jammy @@ -410,13 +410,13 @@ docker-preview-jammy: docker pull --platform=amd64 photoprism/develop:jammy-slim docker pull --platform=arm64 photoprism/develop:jammy docker pull --platform=arm64 photoprism/develop:jammy-slim - scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview /jammy + scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-ce /jammy docker-preview-lunar: docker pull --platform=amd64 photoprism/develop:lunar docker pull --platform=amd64 photoprism/develop:lunar-slim docker pull --platform=arm64 photoprism/develop:lunar docker pull --platform=arm64 photoprism/develop:lunar-slim - scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview /lunar "-t photoprism/photoprism:preview-ubuntu" + scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-ce /lunar "-t photoprism/photoprism:preview-ce-ubuntu" docker-preview-impish: docker pull --platform=amd64 photoprism/develop:impish docker pull --platform=arm64 photoprism/develop:impish @@ -436,7 +436,7 @@ docker-release-bookworm: docker pull --platform=amd64 photoprism/develop:bookworm-slim docker pull --platform=arm64 photoprism/develop:bookworm docker pull --platform=arm64 photoprism/develop:bookworm-slim - scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 bookworm /bookworm "-t photoprism/photoprism:debian" + scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 ce-bookworm /bookworm "-t photoprism/photoprism:ce-debian" docker-release-armv7: docker pull --platform=arm photoprism/develop:armv7 docker pull --platform=arm ubuntu:jammy @@ -444,37 +444,37 @@ docker-release-armv7: docker-release-arm64: docker pull --platform=arm64 photoprism/develop:lunar docker pull --platform=arm64 photoprism/develop:lunar-slim - scripts/docker/buildx.sh photoprism linux/arm64 arm64 /lunar + scripts/docker/buildx.sh photoprism linux/arm64 ce-arm64 /lunar docker-release-bullseye: docker pull --platform=amd64 photoprism/develop:bullseye docker pull --platform=amd64 photoprism/develop:bullseye-slim docker pull --platform=arm64 photoprism/develop:bullseye docker pull --platform=arm64 photoprism/develop:bullseye-slim - scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 bullseye /bullseye + scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 ce-bullseye /bullseye docker-release-buster: docker pull --platform=amd64 photoprism/develop:buster docker pull --platform=arm64 photoprism/develop:buster docker pull --platform=amd64 debian:buster-slim docker pull --platform=arm64 debian:buster-slim - scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 buster /buster + scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 ce-buster /buster docker-release-jammy: docker pull --platform=amd64 photoprism/develop:jammy docker pull --platform=amd64 photoprism/develop:jammy-slim docker pull --platform=arm64 photoprism/develop:jammy docker pull --platform=arm64 photoprism/develop:jammy-slim - scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 jammy /jammy + scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 ce-jammy /jammy docker-release-lunar: docker pull --platform=amd64 photoprism/develop:lunar docker pull --platform=amd64 photoprism/develop:lunar-slim docker pull --platform=arm64 photoprism/develop:lunar docker pull --platform=arm64 photoprism/develop:lunar-slim - scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 lunar /lunar "-t photoprism/photoprism:latest -t photoprism/photoprism:ubuntu" + scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 ce /lunar docker-release-impish: docker pull --platform=amd64 photoprism/develop:impish docker pull --platform=arm64 photoprism/develop:impish docker pull --platform=amd64 ubuntu:impish docker pull --platform=arm64 ubuntu:impish - scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 impish /impish + scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 ce-impish /impish start-local: $(DOCKER_COMPOSE) -f docker-compose.local.yml up -d --wait stop-local: @@ -506,27 +506,27 @@ docker-local-all: docker-local-lunar docker-local-jammy docker-local-bookworm do docker-local-bookworm: docker pull photoprism/develop:bookworm docker pull photoprism/develop:bookworm-slim - scripts/docker/build.sh photoprism bookworm /bookworm "-t photoprism/photoprism:local" + scripts/docker/build.sh photoprism ce-bookworm /bookworm "-t photoprism/photoprism:local" docker-local-bullseye: docker pull photoprism/develop:bullseye docker pull photoprism/develop:bullseye-slim - scripts/docker/build.sh photoprism bullseye /bullseye "-t photoprism/photoprism:local" + scripts/docker/build.sh photoprism ce-bullseye /bullseye "-t photoprism/photoprism:local" docker-local-buster: docker pull photoprism/develop:buster docker pull debian:buster-slim - scripts/docker/build.sh photoprism buster /buster "-t photoprism/photoprism:local" + scripts/docker/build.sh photoprism ce-buster /buster "-t photoprism/photoprism:local" docker-local-jammy: docker pull photoprism/develop:jammy docker pull ubuntu:jammy - scripts/docker/build.sh photoprism jammy /jammy "-t photoprism/photoprism:local" + scripts/docker/build.sh photoprism ce-jammy /jammy "-t photoprism/photoprism:local" docker-local-lunar: docker pull photoprism/develop:lunar docker pull ubuntu:lunar - scripts/docker/build.sh photoprism lunar /lunar "-t photoprism/photoprism:local" + scripts/docker/build.sh photoprism ce-lunar /lunar "-t photoprism/photoprism:local" docker-local-impish: docker pull photoprism/develop:impish docker pull ubuntu:impish - scripts/docker/build.sh photoprism impish /impish "-t photoprism/photoprism:local" + scripts/docker/build.sh photoprism ce-impish /impish "-t photoprism/photoprism:local" docker-local-develop: docker-local-develop-lunar docker-local-develop-all: docker-local-develop-lunar docker-local-develop-jammy docker-local-develop-bookworm docker-local-develop-bullseye docker-local-develop-buster docker-local-develop-impish docker-local-develop-bookworm: @@ -557,19 +557,19 @@ demo: docker-demo docker-demo: docker-demo-latest docker-demo-all: docker-demo-latest docker-demo-debian docker-demo-latest: - docker pull photoprism/photoprism:preview + docker pull photoprism/photoprism:preview-ce scripts/docker/build.sh demo $(BUILD_DATE) scripts/docker/push.sh demo $(BUILD_DATE) docker-demo-debian: - docker pull photoprism/photoprism:preview-debian + docker pull photoprism/photoprism:preview-ce-debian scripts/docker/build.sh demo debian /debian - scripts/docker/push.sh demo debian + scripts/docker/push.sh demo-c debian docker-demo-ubuntu: - docker pull photoprism/photoprism:preview-ubuntu + docker pull photoprism/photoprism:preview-ce-ubuntu scripts/docker/build.sh demo ubuntu /ubuntu scripts/docker/push.sh demo ubuntu docker-demo-unstable: - docker pull photoprism/photoprism:unstable + docker pull photoprism/photoprism:unstable-ce scripts/docker/build.sh demo $(BUILD_DATE) /unstable scripts/docker/push.sh demo $(BUILD_DATE) docker-demo-local: diff --git a/docker/demo/Dockerfile b/docker/demo/Dockerfile index eb466c9c8..50e30b591 100644 --- a/docker/demo/Dockerfile +++ b/docker/demo/Dockerfile @@ -1,4 +1,4 @@ -FROM photoprism/photoprism:preview as build +FROM photoprism/photoprism:preview-ce as build # Set environment variables ENV TF_CPP_MIN_LOG_LEVEL=2 \ diff --git a/docker/demo/debian/Dockerfile b/docker/demo/debian/Dockerfile index 018e46e28..8baa2fc5e 100644 --- a/docker/demo/debian/Dockerfile +++ b/docker/demo/debian/Dockerfile @@ -1,4 +1,4 @@ -FROM photoprism/photoprism:preview-debian as build +FROM photoprism/photoprism:preview-ce-debian as build # Set environment variables ENV TF_CPP_MIN_LOG_LEVEL=2 \ diff --git a/docker/demo/ubuntu/Dockerfile b/docker/demo/ubuntu/Dockerfile index f2524b012..909bd9ea6 100644 --- a/docker/demo/ubuntu/Dockerfile +++ b/docker/demo/ubuntu/Dockerfile @@ -1,4 +1,4 @@ -FROM photoprism/photoprism:preview-ubuntu as build +FROM photoprism/photoprism:preview-ce-ubuntu as build # Set environment variables ENV TF_CPP_MIN_LOG_LEVEL=2 \ diff --git a/docker/demo/unstable/Dockerfile b/docker/demo/unstable/Dockerfile index c6efb92a6..3f0bb272e 100644 --- a/docker/demo/unstable/Dockerfile +++ b/docker/demo/unstable/Dockerfile @@ -1,4 +1,4 @@ -FROM photoprism/photoprism:unstable as build +FROM photoprism/photoprism:unstable-ce as build # Set environment variables ENV TF_CPP_MIN_LOG_LEVEL=2 \ diff --git a/setup/docker/arm64/docker-compose.yml b/setup/docker/arm64/docker-compose.yml index d96ed0579..fd101bac8 100644 --- a/setup/docker/arm64/docker-compose.yml +++ b/setup/docker/arm64/docker-compose.yml @@ -22,6 +22,7 @@ version: '3.5' # Setup Guides: # - https://docs.photoprism.app/getting-started/docker-compose/ # - https://docs.photoprism.app/getting-started/raspberry-pi/ +# - https://www.photoprism.app/kb/activation # # Troubleshooting Checklists: # - https://docs.photoprism.app/getting-started/troubleshooting/ @@ -67,6 +68,7 @@ services: 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_VECTORS: "false" # disables vector graphics support PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) diff --git a/setup/docker/arm64/plus/docker-compose.yml b/setup/docker/arm64/plus/docker-compose.yml deleted file mode 100644 index 4b40c4354..000000000 --- a/setup/docker/arm64/plus/docker-compose.yml +++ /dev/null @@ -1,143 +0,0 @@ -version: '3.5' - -# Example Docker Compose config file for PhotoPrism® Plus (Raspberry Pi 3/4 and other ARM64-based devices) -# -# Note: -# - You have to boot your Raspberry Pi 3/4 with the parameter "arm_64bit=1" in config.txt to use our ARM64 (64-bit) image. -# An "exec format" error will occur otherwise. -# - Try explicitly pulling the ARM64 version if you've booted your device with the "arm_64bit=1" flag and you see -# the "no matching manifest" error on Raspberry Pi OS (Raspbian). See documentation for details. -# - Use https://dl.photoprism.app/docker/armv7/docker-compose.yml to run PhotoPrism and MariaDB on ARMv7-based devices -# as well as Raspberry Pi OS (Raspbian) installations without 64-bit support. -# - Hardware transcoding is only available to members due to the high maintenance and support effort. -# - Running PhotoPrism on a server with less than 4 GB of swap space or setting a memory/swap limit can cause unexpected -# restarts ("crashes"), for example, when the indexer temporarily needs more memory to process large files. -# - In case you see Docker errors related to "cgroups", try adding the following parameters to /boot/firmware/cmdline.txt -# or /boot/cmdline.txt (file location depends on the OS in use): cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 -# - If you install PhotoPrism on a public server outside your home network, please always run it behind a secure -# HTTPS reverse proxy such as Traefik or Caddy. Your files and passwords will otherwise be transmitted -# in clear text and can be intercepted by anyone, including your provider, hackers, and governments: -# https://docs.photoprism.app/getting-started/proxies/traefik/ -# -# Setup Guides: -# - https://www.photoprism.app/plus/kb/quickstart -# - https://www.photoprism.app/plus/kb/activation -# - https://docs.photoprism.app/getting-started/docker-compose/ -# - https://docs.photoprism.app/getting-started/raspberry-pi/ -# -# Troubleshooting Checklists: -# - https://docs.photoprism.app/getting-started/troubleshooting/ -# - https://docs.photoprism.app/getting-started/troubleshooting/docker/ -# - https://docs.photoprism.app/getting-started/troubleshooting/mariadb/ -# -# CLI Commands: -# - https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface -# -# All commands may have to be prefixed with "sudo" when not running as root. -# This will point the home directory shortcut ~ to /root in volume mounts. - -services: - photoprism: - ## Use photoprism/photoprism-plus:preview for testing preview builds: - image: photoprism/photoprism-plus:latest - ## Don't enable automatic restarts until PhotoPrism has been properly configured and tested! - ## If the service gets stuck in a restart loop, this points to a memory, filesystem, network, or database issue: - ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors - # restart: unless-stopped - stop_grace_period: 10s - depends_on: - - mariadb - security_opt: - - seccomp:unconfined - - apparmor:unconfined - ports: - - "2342:2342" # HTTP port (host:container) - environment: - PHOTOPRISM_ADMIN_USER: "admin" # admin login username - PHOTOPRISM_ADMIN_PASSWORD: "insecure" # initial admin password (8-72 characters) - PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password) - PHOTOPRISM_SITE_URL: "http://photoprism.me:2342/" # server URL in the format "http(s)://domain.name(:port)/(path)" - PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video) - PHOTOPRISM_HTTP_COMPRESSION: "none" # improves transfer speed and bandwidth utilization (none or gzip) - PHOTOPRISM_WORKERS: 2 # limits the number of indexing workers to reduce system load - 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 in Web UI - 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_VECTORS: "false" # disables vector graphics support - PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images - PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) - PHOTOPRISM_JPEG_QUALITY: 85 # 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" # allow uploads that MAY be offensive - # PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite is an embedded database that doesn't require a server - PHOTOPRISM_DATABASE_DRIVER: "mysql" # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance - PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB or MySQL database server (hostname:port) - PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB or MySQL database schema name - PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB or MySQL database user name - PHOTOPRISM_DATABASE_PASSWORD: "insecure" # MariaDB or MySQL database user password - PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App" - PHOTOPRISM_SITE_DESCRIPTION: "" # meta site description - PHOTOPRISM_SITE_AUTHOR: "" # meta site author - ## Run/install on first startup (options: update, gpu, tensorflow, davfs, clean): - # PHOTOPRISM_INIT: "update clean" - ## Hardware Video Transcoding: - # PHOTOPRISM_FFMPEG_ENCODER: "raspberry" # FFmpeg encoder ("software", "intel", "nvidia", "apple", "raspberry") - # PHOTOPRISM_FFMPEG_BITRATE: "32" # FFmpeg encoding bitrate limit in Mbit/s (default: 50) - ## Run as a non-root user after initialization (supported: 0, 33, 50-99, 500-600, and 900-1200): - # PHOTOPRISM_UID: 1000 - # PHOTOPRISM_GID: 1000 - # PHOTOPRISM_UMASK: 0000 - ## Share hardware devices with FFmpeg and TensorFlow (optional): - ## See: https://www.raspberrypi.com/documentation/accessories/camera.html#driver-differences-when-using-libcamera-or-the-legacy-stack - # devices: - # - "/dev/video11:/dev/video11" # Video4Linux Video Encode Device (h264_v4l2m2m) - working_dir: "/photoprism" # do not change or remove - ## Storage Folders: "~" is a shortcut for your home directory, "." for the current directory - volumes: - # "/host/folder:/photoprism/folder" # Example - - "~/Pictures:/photoprism/originals" # Original media files (DO NOT REMOVE) - # - "/example/family:/photoprism/originals/family" # *Additional* media folders can be mounted like this - # - "~/Import:/photoprism/import" # *Optional* base folder from which files can be imported to originals - - "./storage:/photoprism/storage" # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE) - - ## Database Server (recommended) - ## see https://docs.photoprism.app/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql - mariadb: - image: arm64v8/mariadb:10.11 # ARM64 IMAGE ONLY, DOES NOT WORK ON ARMv7, AMD or Intel - ## If MariaDB gets stuck in a restart loop, this points to a memory or filesystem issue: - ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors - restart: unless-stopped - stop_grace_period: 5s - 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 - ## Never store database files on an unreliable device such as a USB flash drive, an SD card, or a shared network folder: - volumes: - - "./database:/var/lib/mysql" # DO NOT REMOVE - environment: - MARIADB_AUTO_UPGRADE: "1" - MARIADB_INITDB_SKIP_TZINFO: "1" - MARIADB_DATABASE: "photoprism" - MARIADB_USER: "photoprism" - MARIADB_PASSWORD: "insecure" - MARIADB_ROOT_PASSWORD: "insecure" - - ## Watchtower upgrades services automatically (optional) - ## see https://docs.photoprism.app/getting-started/updates/#watchtower - # - # watchtower: - # restart: unless-stopped - # image: containrrr/watchtower - # environment: - # WATCHTOWER_CLEANUP: "true" - # WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours - # volumes: - # - "/var/run/docker.sock:/var/run/docker.sock" - # - "~/.docker/config.json:/config.json" # optional, for authentication if you have a Docker Hub account diff --git a/setup/docker/armv7/docker-compose.yml b/setup/docker/armv7/docker-compose.yml index 5013c40b4..4ca4b368a 100644 --- a/setup/docker/armv7/docker-compose.yml +++ b/setup/docker/armv7/docker-compose.yml @@ -17,6 +17,7 @@ version: '3.5' # Setup Guides: # - https://docs.photoprism.app/getting-started/docker-compose/ # - https://docs.photoprism.app/getting-started/raspberry-pi/ +# - https://www.photoprism.app/kb/activation # # Troubleshooting Checklists: # - https://docs.photoprism.app/getting-started/troubleshooting/ diff --git a/setup/docker/cloud/docker-compose.yml b/setup/docker/cloud/docker-compose.yml index bfb66f88b..ff09b317d 100644 --- a/setup/docker/cloud/docker-compose.yml +++ b/setup/docker/cloud/docker-compose.yml @@ -149,6 +149,7 @@ services: 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_VECTORS: "false" # disables vector graphics support PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) diff --git a/setup/docker/docker-compose.yml b/setup/docker/docker-compose.yml index 33fc25622..dce0e67a2 100644 --- a/setup/docker/docker-compose.yml +++ b/setup/docker/docker-compose.yml @@ -14,6 +14,7 @@ version: '3.5' # Setup Guides: # - https://docs.photoprism.app/getting-started/docker-compose/ # - https://docs.photoprism.app/getting-started/raspberry-pi/ +# - https://www.photoprism.app/kb/activation # # Troubleshooting Checklists: # - https://docs.photoprism.app/getting-started/troubleshooting/ @@ -58,6 +59,7 @@ services: 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_VECTORS: "false" # disables vector graphics support PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) diff --git a/setup/docker/macos/docker-compose.yml b/setup/docker/macos/docker-compose.yml index fec77f908..533e2ccc9 100644 --- a/setup/docker/macos/docker-compose.yml +++ b/setup/docker/macos/docker-compose.yml @@ -13,6 +13,7 @@ version: '3.5' # # Setup Guide: # - https://docs.photoprism.app/getting-started/docker-compose/ +# - https://www.photoprism.app/kb/activation # # Troubleshooting Checklists: # - https://docs.photoprism.app/getting-started/troubleshooting/ diff --git a/setup/docker/macos/plus/docker-compose.yml b/setup/docker/macos/plus/docker-compose.yml deleted file mode 100644 index b9860b57f..000000000 --- a/setup/docker/macos/plus/docker-compose.yml +++ /dev/null @@ -1,122 +0,0 @@ -version: '3.5' - -# Example Docker Compose config file for PhotoPrism® Plus (Apple macOS) -# -# Note: -# - Hardware transcoding is only available to members due to the high maintenance and support effort. -# - Running PhotoPrism on a server with less than 4 GB of swap space or setting a memory/swap limit can cause unexpected -# restarts ("crashes"), for example, when the indexer temporarily needs more memory to process large files. -# - If you install PhotoPrism on a public server outside your home network, please always run it behind a secure -# HTTPS reverse proxy such as Traefik or Caddy. Your files and passwords will otherwise be transmitted -# in clear text and can be intercepted by anyone, including your provider, hackers, and governments: -# https://docs.photoprism.app/getting-started/proxies/traefik/ -# -# Setup Guide: -# - https://www.photoprism.app/plus/kb/quickstart -# - https://www.photoprism.app/plus/kb/activation -# - https://docs.photoprism.app/getting-started/docker-compose/ -# -# Troubleshooting Checklists: -# - https://docs.photoprism.app/getting-started/troubleshooting/ -# - https://docs.photoprism.app/getting-started/troubleshooting/docker/ -# - https://docs.photoprism.app/getting-started/troubleshooting/mariadb/ -# -# CLI Commands: -# - https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface - -services: - photoprism: - ## Use photoprism/photoprism-plus:preview for testing preview builds: - image: photoprism/photoprism-plus:latest - ## Don't enable automatic restarts until PhotoPrism has been properly configured and tested! - ## If the service gets stuck in a restart loop, this points to a memory, filesystem, network, or database issue: - ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors - # restart: unless-stopped - stop_grace_period: 10s - depends_on: - - mariadb - security_opt: - - seccomp:unconfined - - apparmor:unconfined - ports: - - "2342:2342" # HTTP port (host:container) - environment: - PHOTOPRISM_ADMIN_USER: "admin" # admin login username - PHOTOPRISM_ADMIN_PASSWORD: "insecure" # initial admin password (8-72 characters) - PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password) - PHOTOPRISM_SITE_URL: "http://photoprism.me:2342/" # server URL in the format "http(s)://domain.name(:port)/(path)" - 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_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_VECTORS: "false" # disables vector graphics support - PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images - PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) - PHOTOPRISM_JPEG_QUALITY: 85 # 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) - PHOTOPRISM_DATABASE_DRIVER: "mysql" # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance - PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB or MySQL database server (hostname:port) - PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB or MySQL database schema name - PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB or MySQL database user name - PHOTOPRISM_DATABASE_PASSWORD: "insecure" # MariaDB or MySQL database user password - PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App" - PHOTOPRISM_SITE_DESCRIPTION: "" # meta site description - PHOTOPRISM_SITE_AUTHOR: "" # meta site author - ## Run/install on first startup (options: update https gpu tensorflow davfs clitools clean): - # PHOTOPRISM_INIT: "https gpu tensorflow" - ## Storage Folders: "~" is a shortcut for your home directory, "." for the current directory - volumes: - # "/host/folder:/photoprism/folder" # Example - - "~/Pictures:/photoprism/originals" # Original media files (DO NOT REMOVE) - # - "/example/family:/photoprism/originals/family" # *Additional* media folders can be mounted like this - # - "~/Import:/photoprism/import" # *Optional* base folder from which files can be imported to originals - - "./storage:/photoprism/storage" # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE) - - ## Database Server (recommended) - ## see https://docs.photoprism.app/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql - mariadb: - image: mariadb:10.11 - restart: unless-stopped - stop_grace_period: 5s - security_opt: # see https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239 - - seccomp:unconfined - - apparmor:unconfined - ## --lower-case-table-names=1 stores tables in lowercase and compares names in a case-insensitive manner - ## see https://mariadb.com/kb/en/server-system-variables/#lower_case_table_names - command: mysqld --lower-case-table-names=1 --innodb-buffer-pool-size=512M --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: - - "database:/var/lib/mysql" # Named volume "database" is defined at the bottom (DO NOT REMOVE) - environment: - MARIADB_AUTO_UPGRADE: "1" - MARIADB_INITDB_SKIP_TZINFO: "1" - MARIADB_DATABASE: "photoprism" - MARIADB_USER: "photoprism" - MARIADB_PASSWORD: "insecure" - MARIADB_ROOT_PASSWORD: "insecure" - - ## Watchtower upgrades services automatically (optional) - ## see https://docs.photoprism.app/getting-started/updates/#watchtower - # - # watchtower: - # restart: unless-stopped - # image: containrrr/watchtower - # environment: - # WATCHTOWER_CLEANUP: "true" - # WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours - # volumes: - # - "/var/run/docker.sock:/var/run/docker.sock" - # - "~/.docker/config.json:/config.json" # optional, for authentication if you have a Docker Hub account - -## Create named volumes, advanced users may remove this if they mount a regular host folder -## for the database or use SQLite instead (never remove otherwise) -volumes: - database: - driver: local diff --git a/setup/docker/nvidia/docker-compose.yml b/setup/docker/nvidia/docker-compose.yml index 5157c13d5..816bcd74d 100644 --- a/setup/docker/nvidia/docker-compose.yml +++ b/setup/docker/nvidia/docker-compose.yml @@ -18,6 +18,7 @@ version: '3.5' # Setup Guides: # - https://docs.photoprism.app/getting-started/docker-compose/ # - https://docs.photoprism.app/getting-started/advanced/transcoding/#nvidia-container-toolkit +# - https://www.photoprism.app/kb/activation # # Troubleshooting Checklists: # - https://docs.photoprism.app/getting-started/troubleshooting/ @@ -62,6 +63,7 @@ services: 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_VECTORS: "false" # disables vector graphics support PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) diff --git a/setup/docker/nvidia/plus/docker-compose.yml b/setup/docker/nvidia/plus/docker-compose.yml deleted file mode 100644 index bdda4820a..000000000 --- a/setup/docker/nvidia/plus/docker-compose.yml +++ /dev/null @@ -1,146 +0,0 @@ -version: '3.5' - -# Example Docker Compose config file for PhotoPrism® Plus (NVIDIA Container Toolkit / AMD64) -# -# For hardware transcoding with an NVIDIA graphics card, the NVIDIA Container Toolkit must be installed on -# the host computer first. Instructions can be found in their installation guide: -# - https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html -# -# Note: -# - Hardware transcoding is only available to members due to the high maintenance and support effort. -# - Running PhotoPrism on a server with less than 4 GB of swap space or setting a memory/swap limit can cause unexpected -# restarts ("crashes"), for example, when the indexer temporarily needs more memory to process large files. -# - If you install PhotoPrism on a public server outside your home network, please always run it behind a secure -# HTTPS reverse proxy such as Traefik or Caddy. Your files and passwords will otherwise be transmitted -# in clear text and can be intercepted by anyone, including your provider, hackers, and governments: -# https://docs.photoprism.app/getting-started/proxies/traefik/ -# -# Setup Guides: -# - https://www.photoprism.app/plus/kb/quickstart -# - https://www.photoprism.app/plus/kb/activation -# - https://docs.photoprism.app/getting-started/docker-compose/ -# - https://docs.photoprism.app/getting-started/advanced/transcoding/#nvidia-container-toolkit -# -# Troubleshooting Checklists: -# - https://docs.photoprism.app/getting-started/troubleshooting/ -# - https://docs.photoprism.app/getting-started/troubleshooting/docker/ -# - https://docs.photoprism.app/getting-started/troubleshooting/mariadb/ -# -# CLI Commands: -# - https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface -# -# All commands may have to be prefixed with "sudo" when not running as root. -# This will point the home directory shortcut ~ to /root in volume mounts. - -services: - photoprism: - ## Use photoprism/photoprism-plus:preview for testing preview builds: - image: photoprism/photoprism-plus:latest - ## Don't enable automatic restarts until PhotoPrism has been properly configured and tested! - ## If the service gets stuck in a restart loop, this points to a memory, filesystem, network, or database issue: - ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors - # restart: unless-stopped - stop_grace_period: 10s - depends_on: - - mariadb - security_opt: - - seccomp:unconfined - - apparmor:unconfined - ports: - - "2342:2342" # HTTP port (host:container) - environment: - PHOTOPRISM_ADMIN_USER: "admin" # admin login username - PHOTOPRISM_ADMIN_PASSWORD: "insecure" # initial admin password (8-72 characters) - PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password) - PHOTOPRISM_SITE_URL: "http://photoprism.me:2342/" # server URL in the format "http(s)://domain.name(:port)/(path)" - 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_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_VECTORS: "false" # disables vector graphics support - PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images - PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) - PHOTOPRISM_JPEG_QUALITY: 85 # 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) - # PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite is an embedded database that doesn't require a server - PHOTOPRISM_DATABASE_DRIVER: "mysql" # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance - PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB or MySQL database server (hostname:port) - PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB or MySQL database schema name - PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB or MySQL database user name - PHOTOPRISM_DATABASE_PASSWORD: "insecure" # MariaDB or MySQL database user password - PHOTOPRISM_SITE_DESCRIPTION: "" # meta site description - PHOTOPRISM_SITE_AUTHOR: "" # meta site author - PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App" - ## Run/install on first startup: - PHOTOPRISM_INIT: "tensorflow" - ## Hardware Video Transcoding: - ## see https://docs.photoprism.app/getting-started/advanced/transcoding/#nvidia-container-toolkit - PHOTOPRISM_FFMPEG_ENCODER: "nvidia" - PHOTOPRISM_FFMPEG_BITRATE: "50" - NVIDIA_VISIBLE_DEVICES: "all" - NVIDIA_DRIVER_CAPABILITIES: "compute,video,utility" - ## Run as a non-root user after initialization (supported: 0, 33, 50-99, 500-600, and 900-1200): - # PHOTOPRISM_UID: 1000 - # PHOTOPRISM_GID: 1000 - # PHOTOPRISM_UMASK: 0000 - ## Start as non-root user before initialization (supported: 0, 33, 50-99, 500-600, and 900-1200): - # user: "1000:1000" - working_dir: "/photoprism" # do not change or remove - ## Storage Folders: "~" is a shortcut for your home directory, "." for the current directory - volumes: - # "/host/folder:/photoprism/folder" # Example - - "~/Pictures:/photoprism/originals" # Original media files (DO NOT REMOVE) - # - "/example/family:/photoprism/originals/family" # *Additional* media folders can be mounted like this - # - "~/Import:/photoprism/import" # *Optional* base folder from which files can be imported to originals - - "./storage:/photoprism/storage" # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE) - deploy: - resources: - reservations: - devices: - - driver: "nvidia" - count: 1 - capabilities: [gpu] - - ## Database Server (recommended) - ## see https://docs.photoprism.app/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql - mariadb: - image: mariadb:10.11 - ## If MariaDB gets stuck in a restart loop, this points to a memory or filesystem issue: - ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors - restart: unless-stopped - stop_grace_period: 5s - security_opt: # see https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239 - - seccomp:unconfined - - apparmor:unconfined - command: mysqld --innodb-buffer-pool-size=512M --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 - ## Never store database files on an unreliable device such as a USB flash drive, an SD card, or a shared network folder: - volumes: - - "./database:/var/lib/mysql" # DO NOT REMOVE - environment: - MARIADB_AUTO_UPGRADE: "1" - MARIADB_INITDB_SKIP_TZINFO: "1" - MARIADB_DATABASE: "photoprism" - MARIADB_USER: "photoprism" - MARIADB_PASSWORD: "insecure" - MARIADB_ROOT_PASSWORD: "insecure" - - ## Watchtower upgrades services automatically (optional) - ## see https://docs.photoprism.app/getting-started/updates/#watchtower - # - # watchtower: - # restart: unless-stopped - # image: containrrr/watchtower - # environment: - # WATCHTOWER_CLEANUP: "true" - # WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours - # volumes: - # - "/var/run/docker.sock:/var/run/docker.sock" - # - "~/.docker/config.json:/config.json" # optional, for authentication if you have a Docker Hub account diff --git a/setup/docker/plus/docker-compose.yml b/setup/docker/plus/docker-compose.yml deleted file mode 100644 index dc049bbaa..000000000 --- a/setup/docker/plus/docker-compose.yml +++ /dev/null @@ -1,143 +0,0 @@ -version: '3.5' - -# Example Docker Compose config file for PhotoPrism® Plus (Linux / AMD64) -# -# Note: -# - Hardware transcoding is only available to members due to the high maintenance and support effort. -# - Running PhotoPrism on a server with less than 4 GB of swap space or setting a memory/swap limit can cause unexpected -# restarts ("crashes"), for example, when the indexer temporarily needs more memory to process large files. -# - If you install PhotoPrism on a public server outside your home network, please always run it behind a secure -# HTTPS reverse proxy such as Traefik or Caddy. Your files and passwords will otherwise be transmitted -# in clear text and can be intercepted by anyone, including your provider, hackers, and governments: -# https://docs.photoprism.app/getting-started/proxies/traefik/ -# -# Setup Guides: -# - https://www.photoprism.app/plus/kb/quickstart -# - https://www.photoprism.app/plus/kb/activation -# - https://docs.photoprism.app/getting-started/docker-compose/ -# - https://docs.photoprism.app/getting-started/raspberry-pi/ -# -# Troubleshooting Checklists: -# - https://docs.photoprism.app/getting-started/troubleshooting/ -# - https://docs.photoprism.app/getting-started/troubleshooting/docker/ -# - https://docs.photoprism.app/getting-started/troubleshooting/mariadb/ -# -# CLI Commands: -# - https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface -# -# All commands may have to be prefixed with "sudo" when not running as root. -# This will point the home directory shortcut ~ to /root in volume mounts. - -services: - photoprism: - ## Use photoprism/photoprism-plus:preview for testing preview builds: - image: photoprism/photoprism-plus:latest - ## Don't enable automatic restarts until PhotoPrism has been properly configured and tested! - ## If the service gets stuck in a restart loop, this points to a memory, filesystem, network, or database issue: - ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors - # restart: unless-stopped - stop_grace_period: 10s - depends_on: - - mariadb - security_opt: - - seccomp:unconfined - - apparmor:unconfined - ports: - - "2342:2342" # HTTP port (host:container) - environment: - PHOTOPRISM_ADMIN_USER: "admin" # admin login username - PHOTOPRISM_ADMIN_PASSWORD: "insecure" # initial admin password (8-72 characters) - PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password) - PHOTOPRISM_SITE_URL: "http://photoprism.me:2342/" # server URL in the format "http(s)://domain.name(:port)/(path)" - 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_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_VECTORS: "false" # disables vector graphics support - PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images - PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) - PHOTOPRISM_JPEG_QUALITY: 85 # 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) - # PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite is an embedded database that doesn't require a server - PHOTOPRISM_DATABASE_DRIVER: "mysql" # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance - PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB or MySQL database server (hostname:port) - PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB or MySQL database schema name - PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB or MySQL database user name - PHOTOPRISM_DATABASE_PASSWORD: "insecure" # MariaDB or MySQL database user password - PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App" - PHOTOPRISM_SITE_DESCRIPTION: "" # meta site description - PHOTOPRISM_SITE_AUTHOR: "" # meta site author - ## Run/install on first startup (options: update https gpu tensorflow davfs clitools clean): - # PHOTOPRISM_INIT: "https gpu tensorflow" - ## Hardware Video Transcoding: - # PHOTOPRISM_FFMPEG_ENCODER: "software" # FFmpeg encoder ("software", "intel", "nvidia", "apple", "raspberry") - # PHOTOPRISM_FFMPEG_BITRATE: "32" # FFmpeg encoding bitrate limit in Mbit/s (default: 50) - ## Run as a non-root user after initialization (supported: 0, 33, 50-99, 500-600, and 900-1200): - # PHOTOPRISM_UID: 1000 - # PHOTOPRISM_GID: 1000 - # PHOTOPRISM_UMASK: 0000 - ## Start as non-root user before initialization (supported: 0, 33, 50-99, 500-600, and 900-1200): - # user: "1000:1000" - ## Share hardware devices with FFmpeg and TensorFlow (optional): - # devices: - # - "/dev/dri:/dev/dri" # Intel QSV - # - "/dev/nvidia0:/dev/nvidia0" # Nvidia CUDA - # - "/dev/nvidiactl:/dev/nvidiactl" - # - "/dev/nvidia-modeset:/dev/nvidia-modeset" - # - "/dev/nvidia-nvswitchctl:/dev/nvidia-nvswitchctl" - # - "/dev/nvidia-uvm:/dev/nvidia-uvm" - # - "/dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools" - # - "/dev/video11:/dev/video11" # Video4Linux Video Encode Device (h264_v4l2m2m) - working_dir: "/photoprism" # do not change or remove - ## Storage Folders: "~" is a shortcut for your home directory, "." for the current directory - volumes: - # "/host/folder:/photoprism/folder" # Example - - "~/Pictures:/photoprism/originals" # Original media files (DO NOT REMOVE) - # - "/example/family:/photoprism/originals/family" # *Additional* media folders can be mounted like this - # - "~/Import:/photoprism/import" # *Optional* base folder from which files can be imported to originals - - "./storage:/photoprism/storage" # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE) - - ## Database Server (recommended) - ## see https://docs.photoprism.app/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql - mariadb: - image: mariadb:10.11 - ## If MariaDB gets stuck in a restart loop, this points to a memory or filesystem issue: - ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors - restart: unless-stopped - stop_grace_period: 5s - security_opt: # see https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239 - - seccomp:unconfined - - apparmor:unconfined - command: mysqld --innodb-buffer-pool-size=512M --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 - ## Never store database files on an unreliable device such as a USB flash drive, an SD card, or a shared network folder: - volumes: - - "./database:/var/lib/mysql" # DO NOT REMOVE - environment: - MARIADB_AUTO_UPGRADE: "1" - MARIADB_INITDB_SKIP_TZINFO: "1" - MARIADB_DATABASE: "photoprism" - MARIADB_USER: "photoprism" - MARIADB_PASSWORD: "insecure" - MARIADB_ROOT_PASSWORD: "insecure" - - ## Watchtower upgrades services automatically (optional) - ## see https://docs.photoprism.app/getting-started/updates/#watchtower - ## activate via "COMPOSE_PROFILES=update docker compose up -d" - watchtower: - restart: unless-stopped - image: containrrr/watchtower - profiles: ["update"] - environment: - WATCHTOWER_CLEANUP: "true" - WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours - volumes: - - "/var/run/docker.sock:/var/run/docker.sock" - - "~/.docker/config.json:/config.json" # optional, for authentication if you have a Docker Hub account diff --git a/setup/docker/scheduler/docker-compose.yml b/setup/docker/scheduler/docker-compose.yml index a673ddb49..3bc9bd9a4 100644 --- a/setup/docker/scheduler/docker-compose.yml +++ b/setup/docker/scheduler/docker-compose.yml @@ -16,6 +16,7 @@ version: '3.5' # - https://docs.photoprism.app/getting-started/docker-compose/ # - https://docs.photoprism.app/getting-started/raspberry-pi/ # - https://docs.photoprism.app/getting-started/troubleshooting/docker/ +# - https://www.photoprism.app/kb/activation # # CLI Commands: # - https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface @@ -56,6 +57,7 @@ services: 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_VECTORS: "false" # disables vector graphics support PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) diff --git a/setup/docker/sqlite/docker-compose.yml b/setup/docker/sqlite/docker-compose.yml index 5725a7917..4f6155e27 100644 --- a/setup/docker/sqlite/docker-compose.yml +++ b/setup/docker/sqlite/docker-compose.yml @@ -17,6 +17,7 @@ version: '3.5' # - https://docs.photoprism.app/getting-started/docker-compose/ # - https://docs.photoprism.app/getting-started/raspberry-pi/ # - https://docs.photoprism.app/getting-started/troubleshooting/docker/ +# - https://www.photoprism.app/kb/activation # # CLI Commands: # - https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface @@ -54,6 +55,7 @@ services: 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_VECTORS: "false" # disables vector graphics support PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) diff --git a/setup/docker/windows/docker-compose.yml b/setup/docker/windows/docker-compose.yml index 2610e88af..9951b3a5f 100644 --- a/setup/docker/windows/docker-compose.yml +++ b/setup/docker/windows/docker-compose.yml @@ -18,6 +18,7 @@ version: '3.5' # # Setup Guide: # - https://docs.photoprism.app/getting-started/docker-compose/ +# - https://www.photoprism.app/kb/activation # # Troubleshooting Checklists: # - https://docs.photoprism.app/getting-started/troubleshooting/ @@ -60,6 +61,7 @@ services: 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_VECTORS: "false" # disables vector graphics support PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) diff --git a/setup/docker/windows/plus/docker-compose.yml b/setup/docker/windows/plus/docker-compose.yml deleted file mode 100644 index 837928c7d..000000000 --- a/setup/docker/windows/plus/docker-compose.yml +++ /dev/null @@ -1,129 +0,0 @@ -version: '3.5' - -# Example Docker Compose config file for PhotoPrism® Plus (Windows / AMD64) -# -# Note: -# - Hardware transcoding is only available to members due to the high maintenance and support effort. -# - Running PhotoPrism on a server with less than 4 GB of swap space or setting a memory/swap limit can cause unexpected -# restarts ("crashes"), for example, when the indexer temporarily needs more memory to process large files. -# - Windows Pro users should disable the WSL 2 based engine in Docker Settings > General so that -# they can mount drives other than C:. This will enable Hyper-V, which Microsoft doesn't offer -# to its Windows Home customers. Docker Desktop uses dynamic memory allocation with WSL 2. -# It's important to explicitly increase the Docker memory limit to 4 GB or more when using Hyper-V. -# The default of 2 GB may reduce indexing performance and cause unexpected restarts. -# - If you install PhotoPrism on a public server outside your home network, please always run it behind a secure -# HTTPS reverse proxy such as Traefik or Caddy. Your files and passwords will otherwise be transmitted -# in clear text and can be intercepted by anyone, including your provider, hackers, and governments: -# https://docs.photoprism.app/getting-started/proxies/traefik/ -# -# Setup Guide: -# - https://www.photoprism.app/plus/kb/quickstart -# - https://www.photoprism.app/plus/kb/activation -# - https://docs.photoprism.app/getting-started/docker-compose/ -# -# Troubleshooting Checklists: -# - https://docs.photoprism.app/getting-started/troubleshooting/ -# - https://docs.photoprism.app/getting-started/troubleshooting/docker/ -# - https://docs.photoprism.app/getting-started/troubleshooting/mariadb/ -# - https://docs.photoprism.app/getting-started/troubleshooting/windows/ -# -# CLI Commands: -# - https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface - -services: - photoprism: - ## Use photoprism/photoprism-plus:preview for testing preview builds: - image: photoprism/photoprism-plus:latest - ## Don't enable automatic restarts until PhotoPrism has been properly configured and tested! - ## If the service gets stuck in a restart loop, this points to a memory, filesystem, network, or database issue: - ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors - # restart: unless-stopped - stop_grace_period: 10s - depends_on: - - mariadb - security_opt: - - seccomp:unconfined - - apparmor:unconfined - ports: - - "2342:2342" # HTTP port (host:container) - environment: - PHOTOPRISM_ADMIN_USER: "admin" # admin login username - PHOTOPRISM_ADMIN_PASSWORD: "insecure" # initial admin password (8-72 characters) - PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password) - PHOTOPRISM_SITE_URL: "http://photoprism.me:2342/" # server URL in the format "http(s)://domain.name(:port)/(path)" - 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_READONLY: "false" # do not modify originals folder; disables import, upload, and delete - 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_VECTORS: "false" # disables vector graphics support - PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images - PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) - PHOTOPRISM_JPEG_QUALITY: 85 # 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) - PHOTOPRISM_DATABASE_DRIVER: "mysql" # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance - PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB or MySQL database server hostname (:port is optional) - PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB or MySQL database schema name - PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB or MySQL database user name - PHOTOPRISM_DATABASE_PASSWORD: "insecure" # MariaDB or MySQL database user password - PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App" - PHOTOPRISM_SITE_DESCRIPTION: "" # meta site description - PHOTOPRISM_SITE_AUTHOR: "" # meta site author - working_dir: "/photoprism" # do not change or remove - ## Storage Folders: use "/" not "\" as separator, "~" is a shortcut for C:/user/{username}, "." for the current directory - volumes: - # "C:/user/username/folder:/photoprism/folder" # example - - "~/Pictures:/photoprism/originals" # original media files (photos and videos) - # - "D:/example/family:/photoprism/originals/family" # *additional* media folders can be mounted like this - # - "E:/:/photoprism/import" # *optional* base folder from which files can be imported to originals - - "./storage:/photoprism/storage" # *writable* storage folder for cache, database, and sidecar files (never remove) - - ## Database Server (recommended) - ## see https://docs.photoprism.app/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql - mariadb: - image: mariadb:10.11 - ## If MariaDB gets stuck in a restart loop, this points to a memory or filesystem issue: - ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors - restart: unless-stopped - stop_grace_period: 5s - security_opt: # see https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239 - - seccomp:unconfined - - apparmor:unconfined - ## --lower-case-table-names=1 stores tables in lowercase and compares names in a case-insensitive manner - ## see https://mariadb.com/kb/en/server-system-variables/#lower_case_table_names - command: mysqld --innodb-buffer-pool-size=512M --lower-case-table-names=1 --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: - - "database:/var/lib/mysql" # Named volume "database" is defined at the bottom (DO NOT REMOVE) - environment: - MARIADB_AUTO_UPGRADE: "1" - MARIADB_INITDB_SKIP_TZINFO: "1" - MARIADB_DATABASE: "photoprism" - MARIADB_USER: "photoprism" - MARIADB_PASSWORD: "insecure" - MARIADB_ROOT_PASSWORD: "insecure" - - ## Watchtower upgrades services automatically (optional) - ## see https://docs.photoprism.app/getting-started/updates/#watchtower - # - # watchtower: - # restart: unless-stopped - # image: containrrr/watchtower - # environment: - # WATCHTOWER_CLEANUP: "true" - # WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours - # volumes: - # - "/var/run/docker.sock:/var/run/docker.sock" - # - "~/.docker/config.json:/config.json" # optional, for authentication if you have a Docker Hub account - -## Create named volumes, advanced users may remove this if they mount a regular host folder -## for the database or use SQLite instead (never remove otherwise) -volumes: - database: - driver: local diff --git a/setup/podman/docker-compose.yml b/setup/podman/docker-compose.yml index 4a14a3b90..2cb7f9eec 100644 --- a/setup/podman/docker-compose.yml +++ b/setup/podman/docker-compose.yml @@ -12,6 +12,7 @@ version: '3.5' # https://docs.photoprism.app/getting-started/proxies/traefik/ # # Quickstart Guide: https://docs.photoprism.app/getting-started/docker-compose/ +# Membership Activation: https://www.photoprism.app/kb/activation # Knowledge Base: https://www.photoprism.app/kb # Docker Image: https://hub.docker.com/r/photoprism/photoprism # @@ -62,6 +63,7 @@ services: 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_VECTORS: "false" # disables vector graphics support PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) diff --git a/setup/podman/plus/docker-compose.yml b/setup/podman/plus/docker-compose.yml deleted file mode 100644 index 384cc62a9..000000000 --- a/setup/podman/plus/docker-compose.yml +++ /dev/null @@ -1,120 +0,0 @@ -version: '3.5' - -# Example Podman Compose config file for PhotoPrism® Plus (RedHat, CentOS, Fedora, and AlmaLinux) -# -# Note: -# - Hardware transcoding is only available to members due to the high maintenance and support effort. -# - Running PhotoPrism on a server with less than 4 GB of swap space or setting a memory/swap limit can cause unexpected -# restarts ("crashes"), for example, when the indexer temporarily needs more memory to process large files. -# - If you install PhotoPrism on a public server outside your home network, please always run it behind a secure -# HTTPS reverse proxy such as Traefik or Caddy. Your files and passwords will otherwise be transmitted -# in clear text and can be intercepted by anyone, including your provider, hackers, and governments: -# https://docs.photoprism.app/getting-started/proxies/traefik/ -# -# Quickstart Guide: https://www.photoprism.app/plus/kb/quickstart -# Knowledge Base: https://www.photoprism.app/kb -# Docker Image: https://hub.docker.com/r/photoprism/photoprism -# -# PODMAN COMPOSE COMMAND REFERENCE -# -------------------------------------------------------------------------- -# Start | podman-compose up -d -# Stop | podman-compose stop -# Update | podman-compose pull -# Logs | podman-compose logs --tail=25 -f -# Terminal | podman-compose exec photoprism bash -# Help | podman-compose exec photoprism photoprism help -# Config | podman-compose exec photoprism photoprism config -# Reset | podman-compose exec photoprism photoprism reset -# Backup | podman-compose exec photoprism photoprism backup -a -i -# Restore | podman-compose exec photoprism photoprism restore -a -i -# Index | podman-compose exec photoprism photoprism index -# Reindex | podman-compose exec photoprism photoprism index -f -# Import | podman-compose exec photoprism photoprism import - -services: - photoprism: - ## Use photoprism/photoprism-plus:preview for testing preview builds: - image: photoprism/photoprism-plus:latest - container_name: photoprism - depends_on: - - mariadb - restart: unless-stopped - security_opt: - - seccomp:unconfined - - apparmor:unconfined - user: 1000:1000 - privileged: true - ports: - - "2342:2342" # HTTP port (host:container) - environment: - PHOTOPRISM_ADMIN_USER: "admin" # admin login username - PHOTOPRISM_ADMIN_PASSWORD: "insecure" # initial admin password (8-72 characters) - PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password) - PHOTOPRISM_SITE_URL: "http://photoprism.me:2342/" # server URL in the format "http(s)://domain.name(:port)/(path)" - 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_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_VECTORS: "false" # disables vector graphics support - PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images - PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) - PHOTOPRISM_JPEG_QUALITY: 85 # 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) - # PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite is an embedded database that doesn't require a server - PHOTOPRISM_DATABASE_DRIVER: "mysql" # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance - PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB or MySQL database server (hostname:port) - PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB or MySQL database schema name - PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB or MySQL database user name - PHOTOPRISM_DATABASE_PASSWORD: "insecure" # MariaDB or MySQL database user password - PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App" - PHOTOPRISM_SITE_DESCRIPTION: "" # meta site description - PHOTOPRISM_SITE_AUTHOR: "" # meta site author - ## Run/install on first startup (options: update https gpu tensorflow davfs clitools clean): - # PHOTOPRISM_INIT: "https gpu tensorflow" - ## Hardware Video Transcoding: - # PHOTOPRISM_FFMPEG_ENCODER: "software" # FFmpeg encoder ("software", "intel", "nvidia", "apple", "raspberry") - # PHOTOPRISM_FFMPEG_BITRATE: "32" # FFmpeg encoding bitrate limit in Mbit/s (default: 50) - ## Run as a non-root user after initialization (supported: 0, 33, 50-99, 500-600, and 900-1200): - # PHOTOPRISM_UID: 1000 - # PHOTOPRISM_GID: 1000 - # PHOTOPRISM_UMASK: 0000 - working_dir: "/photoprism" # do not change or remove - ## Storage Folders: "~" is a shortcut for your home directory, "." for the current directory - volumes: - - "./originals:/photoprism/originals" # original media files (photos and videos) - - "./import:/photoprism/import" # *optional* folder from which files can be imported to originals - - "./storage:/photoprism/storage" # *writable* storage folder for cache, database, and sidecar files (never remove) - - ## Database Server (recommended) - ## see https://docs.photoprism.app/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql - mariadb: - ## If MariaDB gets stuck in a restart loop, this points to a memory or filesystem issue: - ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors - restart: unless-stopped - image: mariadb:10.11 - container_name: mariadb - user: 1000:1000 - privileged: true - security_opt: - - seccomp:unconfined - - apparmor:unconfined - ## --lower-case-table-names=1 stores tables in lowercase and compares names in a case-insensitive manner - ## see https://mariadb.com/kb/en/server-system-variables/#lower_case_table_names - command: mysqld --innodb-buffer-pool-size=2G --lower-case-table-names=1 --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=180 - volumes: - - "./database:/var/lib/mysql" - environment: - MARIADB_AUTO_UPGRADE: "1" - MARIADB_INITDB_SKIP_TZINFO: "1" - MARIADB_DATABASE: "photoprism" - MARIADB_USER: "photoprism" - MARIADB_PASSWORD: "insecure" - MARIADB_ROOT_PASSWORD: "insecure"