Created
December 10, 2021 20:30
-
-
Save lukeplausin/671ad5a66652c4dc17730ede0b359ffb to your computer and use it in GitHub Desktop.
Home photo server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# From: | |
# https://dl.photoprism.org/docker/docker-compose.yml | |
version: '3.5' | |
# Example Docker Compose config file for PhotoPrism (Linux / 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. | |
# | |
# ------------------------------------------------------------------ | |
# 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 -f | |
# Import | docker-compose exec photoprism photoprism import | |
# | |
# To search originals for faces without a complete rescan: | |
# docker-compose exec photoprism photoprism faces index | |
# ------------------------------------------------------------------- | |
# Note: All commands may have to be prefixed with "sudo" when not running as root. | |
# This will change the home directory "~" to "/root" in your configuration. | |
services: | |
photoprism: | |
# Use photoprism/photoprism:preview instead for testing preview builds: | |
image: photoprism/photoprism:latest | |
depends_on: | |
- mariadb | |
# Only enable automatic restarts once your installation is properly | |
# configured as it otherwise may get stuck in a restart loop: | |
# https://docs.photoprism.org/getting-started/faq/#why-is-photoprism-getting-stuck-in-a-restart-loop | |
# restart: unless-stopped | |
security_opt: | |
- seccomp:unconfined | |
- apparmor:unconfined | |
# Run as a specific, non-root user (see https://docs.docker.com/engine/reference/run/#user): | |
# user: "1000:1000" | |
ports: | |
- "127.0.0.1:2342:2342" # [server]:[container] | |
environment: | |
PHOTOPRISM_ADMIN_PASSWORD: "THEPASSWORD" # PLEASE CHANGE: Your initial admin password (min 4 characters) | |
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_CHOWN: "false" # Disables storage permission updates 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 facial recognition | |
PHOTOPRISM_DISABLE_CLASSIFICATION: "false" # Disables image classification | |
PHOTOPRISM_DARKTABLE_PRESETS: "false" # Enables Darktable presets and disables concurrent RAW conversion | |
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_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: "=:jv>h*dkNW2DjX" # MariaDB database user password | |
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # Public PhotoPrism URL | |
PHOTOPRISM_SITE_TITLE: "PhotoPrism" | |
PHOTOPRISM_SITE_CAPTION: "Browse Your Life" | |
PHOTOPRISM_SITE_DESCRIPTION: "" | |
PHOTOPRISM_SITE_AUTHOR: "" | |
# Set a non-root user, group, or custom umask if your Docker environment doesn't support this natively: | |
# PHOTOPRISM_UID: 1000 | |
# PHOTOPRISM_GID: 1000 | |
# PHOTOPRISM_UMASK: 0000 | |
# Enable TensorFlow AVX2 support for modern Intel CPUs (requires starting the container as root): | |
# PHOTOPRISM_INIT: "tensorflow-amd64-avx2" | |
# Hardware video transcoding options: | |
# PHOTOPRISM_FFMPEG_BUFFERS: "64" # FFmpeg capture buffers (default: 32) | |
# PHOTOPRISM_FFMPEG_BITRATE: "32" # FFmpeg encoding bitrate limit in Mbit/s (default: 50) | |
# PHOTOPRISM_FFMPEG_ENCODER: "h264_v4l2m2m" # Use Video4Linux for AVC transcoding (default: libx264) | |
# PHOTOPRISM_FFMPEG_ENCODER: "h264_qsv" # Use Intel Quick Sync Video for AVC transcoding (default: libx264) | |
# PHOTOPRISM_INIT: "intel-graphics tensorflow-amd64-avx2" # Enable TensorFlow AVX2 & Intel Graphics support | |
HOME: "/photoprism" | |
# Optional hardware devices for video transcoding and machine learning: | |
# devices: | |
# - "/dev/video11:/dev/video11" # Video4Linux (h264_v4l2m2m) | |
# - "/dev/dri/renderD128:/dev/dri/renderD128" # Intel GPU | |
# - "/dev/dri/card0:/dev/dri/card0" | |
working_dir: "/photoprism" | |
volumes: | |
# Your photo and video files ([local path]:[container path]): | |
- "/Volumes/sd_store/OneDrive:/photoprism/originals" | |
# Multiple folders can be indexed by mounting them as sub-folders of /photoprism/originals: | |
# - "/mnt/Family:/photoprism/originals/Family" # [folder_1]:/photoprism/originals/[folder_1] | |
# - "/mnt/Friends:/photoprism/originals/Friends" # [folder_2]:/photoprism/originals/[folder_2] | |
# Mounting an import folder is optional (see docs): | |
# - "~/Import:/photoprism/import" | |
# Permanent storage for settings, index & sidecar files (DON'T REMOVE): | |
- "./storage:/photoprism/storage" | |
mariadb: | |
restart: unless-stopped | |
image: mariadb:10.5 | |
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=120 | |
volumes: # Don't remove permanent storage for index database files! | |
- "./database:/var/lib/mysql" | |
environment: | |
MYSQL_ROOT_PASSWORD: please_change | |
MYSQL_DATABASE: photoprism | |
MYSQL_USER: photoprism | |
MYSQL_PASSWORD: THEPASSWORD | |
onedrive: | |
# Use photoprism/photoprism:preview instead for testing preview builds: | |
image: driveone/onedrive | |
volumes: | |
- "./onedrive:/root/.config/onedrive" | |
- "/Volumes/sd_store/OneDrive:/onedrive/data" | |
environment: | |
DOWNLOAD_ONLY: "1" # Remove once confidence in tool grows | |
# entrypoint: /usr/src/onedrive/onedrive | |
# command: --synchronize --verbose --single-directory "Pictures" --resync # --dry-run --resync |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment