add photoprism

This commit is contained in:
Andreas Zweili 2022-03-07 13:19:55 +01:00
parent 4edfc353de
commit ad17ee64b7
2 changed files with 103 additions and 0 deletions

2
photoprism/.env.j2 Normal file
View File

@ -0,0 +1,2 @@
PHOTOPRISM_ADMIN_PASSWORD=password
MYSQL_PASSWORD=password

View File

@ -0,0 +1,101 @@
version: "3.5"
# Example Docker Compose config file for PhotoPrism (Linux / AMD64)
#
# Note:
# - 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/
#
# Documentation : https://docs.photoprism.app/getting-started/docker-compose/
# Docker Hub URL: https://hub.docker.com/r/photoprism/photoprism/
#
# DOCKER COMPOSE COMMAND REFERENCE
# see https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface
# --------------------------------------------------------------------------
# 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
#
# 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:preview for testing preview builds:
image: photoprism/photoprism:latest
depends_on:
- mariadb
restart: unless-stopped
security_opt:
- seccomp:unconfined
- apparmor:unconfined
ports:
- "2342:2342" # HTTP port (host:container)
environment:
- PHOTOPRISM_ADMIN_PASSWORD
- PHOTOPRISM_SITE_URL="http://nextcloud.2li.local:2342/" # public server URL incl http:// or https:// and /path, :port is optional
- 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="true" # 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" # allows uploads that MAY be offensive
- 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=${MYSQL_PASSWORD}
- PHOTOPRISM_SITE_TITLE="PhotoPrism"
- PHOTOPRISM_SITE_CAPTION="AI-Powered Photos App"
- PHOTOPRISM_SITE_DESCRIPTION=""
- PHOTOPRISM_SITE_AUTHOR=""
# PHOTOPRISM_UID: 1000
# PHOTOPRISM_GID: 1000
# PHOTOPRISM_UMASK: 0000
## Start as a non-root user (see https://docs.docker.com/engine/reference/run/#user)
#user: "1000:100"
working_dir: "/photoprism"
volumes:
- "~/docker_systems/nextcloud/data/data/andreas/files/:ro:/photoprism/nextcloud" # original media files (photos and videos)
- "./storage:/photoprism/storage" # *writable* storage folder for cache, database, and sidecar files (never remove)
mariadb:
restart: unless-stopped
image: mariadb:10.6
security_opt:
- seccomp:unconfined
- apparmor:unconfined
command: mysqld --innodb-buffer-pool-size=128M --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" # important, don't remove
environment:
MYSQL_RANDOM_ROOT_PASSWORD: yes
MYSQL_DATABASE: photoprism
MYSQL_USER: photoprism
MYSQL_PASSWORD: insecure