move photoprism to nextcloud

This commit is contained in:
Andreas Zweili 2022-03-07 15:29:20 +01:00
parent 47f56d2658
commit 157397f8d8
4 changed files with 70 additions and 107 deletions

View File

@ -13,3 +13,6 @@ SMTP_SECURE=ssl
SMTP_NAME=admin@2li.ch
SMTP_PASSWORD={{ nextcloud_smtp_password }}
MAIL_FROM_ADDRESS=admin@2li.ch
PHOTOPRISM_ADMIN_PASSWORD=password
PHOTOPRISM_DATABASE_PASSWORD=password

View File

@ -67,3 +67,70 @@ services:
depends_on:
- db
- redis
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
environment:
- PHOTOPRISM_ADMIN_PASSWORD
- PHOTOPRISM_SITE_URL=https://photos.zweili.org/ # 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=true # 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=photoprism-db: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
- PHOTOPRISM_SITE_TITLE=PhotoPrism
- PHOTOPRISM_SITE_CAPTION=AI-Powered Photos App
- PHOTOPRISM_SITE_DESCRIPTION=""
- PHOTOPRISM_SITE_AUTHOR=""
- PHOTOPRISM_UID=33
- PHOTOPRISM_GID=33
# 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:
- "./data/data/andreas/files/20_pictures:/photoprism/originals:ro" # original media files (photos and videos)
- "./storage:/photoprism/storage" # *writable* storage folder for cache, database, and sidecar files (never remove)
labels:
- "traefik.enable=true"
- "traefik.http.routers.photoprism.rule=Host(`photos.zweili.org`)"
- "traefik.http.routers.photoprism.entrypoints=websecure"
- "traefik.http.routers.photoprism.tls.certresolver=myresolver"
- "traefik.http.routers.photoprism.middlewares=default-headers@file"
photoprism-db:
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=${PHOTOPRISM_DATABASE_PASSWORD}

View File

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

View File

@ -1,105 +0,0 @@
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
environment:
- PHOTOPRISM_ADMIN_PASSWORD
- PHOTOPRISM_SITE_URL=https://photos.zweili.org/ # 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=true # 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=33
- PHOTOPRISM_GID=33
# 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/:/photoprism/originals:ro" # original media files (photos and videos)
- "./storage:/photoprism/storage" # *writable* storage folder for cache, database, and sidecar files (never remove)
labels:
- "traefik.enable=true"
- "traefik.http.routers.photoprism.rule=Host(`photos.zweili.org`)"
- "traefik.http.routers.photoprism.entrypoints=websecure"
- "traefik.http.routers.photoprism.tls.certresolver=myresolver"
- "traefik.http.routers.photoprism.middlewares=default-headers@file"
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