From ee3bea3747a5611a0a2043c372a5587b16611b81 Mon Sep 17 00:00:00 2001 From: matthias Date: Tue, 11 Apr 2023 13:33:59 +0000 Subject: [PATCH] Updated nextcloud and added photoprism --- compose/grafana/docker-compose.yml | 34 +---- compose/nextcloud/docker-compose.yml | 33 +---- compose/photoprism/docker-compose.yml | 133 ++++++++++++++++++ compose/photoprism/storage/backup/serial | 1 + compose/photoprism/storage/config/hub.yml | 6 + .../photoprism/storage/config/settings.yml | 62 ++++++++ compose/photoprism/storage/serial | 1 + 7 files changed, 207 insertions(+), 63 deletions(-) create mode 100644 compose/photoprism/docker-compose.yml create mode 100644 compose/photoprism/storage/backup/serial create mode 100644 compose/photoprism/storage/config/hub.yml create mode 100644 compose/photoprism/storage/config/settings.yml create mode 100644 compose/photoprism/storage/serial diff --git a/compose/grafana/docker-compose.yml b/compose/grafana/docker-compose.yml index 9c52ddc..c56b4a1 100644 --- a/compose/grafana/docker-compose.yml +++ b/compose/grafana/docker-compose.yml @@ -19,24 +19,14 @@ volumes: o: addr=dockerstorage,nfsvers=4 device: :/dockerstorage/grafana/loki - influxdb_data: - driver_opts: - type: nfs - o: addr=dockerstorage,nfsvers=4 - device: :/dockerstorage/grafana/influxdb - configs: prometheus_config: external: true grafana_config: external: true - alertmanager_config: - external: true - + services: -# redis: -# loki: image: grafana/loki:2.6.1 @@ -54,26 +44,6 @@ services: - /var/log:/var/log command: -config.file=/etc/promtail/config.yml - influx: - user: "0:0" - image: influxdb - volumes: - - influxdb_data:/var/lib/influxdb - - alertmanager: - user: "0:0" - hostname: alertmanager - image: prom/alertmanager - environment: - - TZ=Europe/Berlin #change Time Zone if needed - configs: - - source: alertmanager_config - target: /etc/alertmanager/alertmanager.conf - command: - - '--config.file=/etc/alertmanager/alertmanager.conf' - ports: - - 9093:9093 - prometheus: user: "0:0" hostname: prometheus @@ -87,8 +57,6 @@ services: - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - links: - - alertmanager:alertmanager ports: - 9090:9090 diff --git a/compose/nextcloud/docker-compose.yml b/compose/nextcloud/docker-compose.yml index 0352f59..b1c624a 100644 --- a/compose/nextcloud/docker-compose.yml +++ b/compose/nextcloud/docker-compose.yml @@ -9,8 +9,8 @@ volumes: ncdata: driver_opts: type: nfs - o: addr=maurice,nfsvers=4 - device: :/nextcloud_data + o: addr=nextcloudstorage,nfsvers=4 + device: :/nextcloud_storage ncredis: driver_opts: @@ -18,19 +18,6 @@ volumes: o: addr=dockerstorage,nfsvers=4 device: :/dockerstorage/nextcloud/redis - ncdatabase: - driver_opts: - type: nfs - o: addr=dockerstorage,nfsvers=4 - device: :/dockerstorage/nextcloud/ncdatabase - - pictures: - driver_opts: - type: nfs - o: addr=maurice,nfsvers=4 - device: :/pictures - - services: nextcloud: image: nextcloud @@ -44,7 +31,7 @@ services: - ncdata:/var/www/html/data #/srv/dev-disk-by-label-disk1 needs to be adjusted - nchome:/var/www/html #/srv/dev-disk-by-label-disk1 needs to be adjusted # NAS shares - - pictures:/pictures +# - pictures:/pictures #- /srv/dev-disk-by-uuid-f3ca381b-e85a-4348-8086-833317c5d96e/video:/video depends_on: - mariadb @@ -59,17 +46,3 @@ services: volumes: - ncredis:/var/lib/redis - mariadb: - user: "1000:100" - image: ghcr.io/linuxserver/mariadb - container_name: nextclouddb - environment: -# - PUID=1000 #change PUID if needed -# - PGID=100 #change PGID if needed - - MARIADB_ROOT_PASSWORD="dbpassword" - - MYSQL_ROOT_PASSWORD=mariadbpassword #change password - - TZ=Europe/Berlin #Change Time Zone if needed - volumes: - - ncdatabase:/config #/srv/dev-disk-by-label-disk1 needs to be adjusted - restart: unless-stopped - diff --git a/compose/photoprism/docker-compose.yml b/compose/photoprism/docker-compose.yml new file mode 100644 index 0000000..af226b6 --- /dev/null +++ b/compose/photoprism/docker-compose.yml @@ -0,0 +1,133 @@ +version: '3.5' + +# Example Docker Compose config file for PhotoPrism (Linux / AMD64) +# +# Note: +# - Hardware transcoding is only available for sponsors 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://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 srtcut ~ to /root in volume mounts. + +volumes: + photoprismdatabase: + driver: local + driver_opts: + o: bind + type: none + device: /srv/dev-disk-by-uuid-f3ca381b-e85a-4348-8086-833317c5d96e/dockerstorage/photoprism/database + + +services: + photoprism: + ## Use photoprism/photoprism:preview for testing preview builds: + image: photoprism/photoprism:latest + depends_on: + - mariadb + ## 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 + security_opt: + - seccomp:unconfined + - apparmor:unconfined + ports: + - "2342:2342" # HTTP port (host:container) + environment: + PHOTOPRISM_ADMIN_USER: "admin" # superadmin username + PHOTOPRISM_ADMIN_PASSWORD: "insecure" # initial superadmin password (minimum 8 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_RAW: "false" # disables indexing and conversion of RAW files + PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW files (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: + ## 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.10 + 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: + - photoprismdatabase:/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" diff --git a/compose/photoprism/storage/backup/serial b/compose/photoprism/storage/backup/serial new file mode 100644 index 0000000..2dafad8 --- /dev/null +++ b/compose/photoprism/storage/backup/serial @@ -0,0 +1 @@ +zrsyd9l35vf8qz3s \ No newline at end of file diff --git a/compose/photoprism/storage/config/hub.yml b/compose/photoprism/storage/config/hub.yml new file mode 100644 index 0000000..f45a62f --- /dev/null +++ b/compose/photoprism/storage/config/hub.yml @@ -0,0 +1,6 @@ +Version: 221118-e58fee0fb-Linux-ARM64 +Key: 7b51906306b5aba668e0beda443a2c57cbe239f5 +Secret: 13bb44da3f919c04a89439bf157d8631 +Session: 6a58a5ba0432511981b0ddb0bbe44e5cd636a0b4ceeae537f17379cb2b7d86a33e6471c87b587c26008b9500995e153ffca4e9e2a9fd077484bd5ee63b1a032d6e71d8bec4764591f117230732ebf49f6ad801d58b0b84250c22dbd7460e4829ff +Status: ce +Serial: zrsyd9l35vf8qz3s diff --git a/compose/photoprism/storage/config/settings.yml b/compose/photoprism/storage/config/settings.yml new file mode 100644 index 0000000..2af62ff --- /dev/null +++ b/compose/photoprism/storage/config/settings.yml @@ -0,0 +1,62 @@ +UI: + Scrollbar: true + Zoom: false + Theme: default + Language: en + TimeZone: "" +Search: + BatchSize: 0 +Maps: + Animate: 0 + Style: "" +Features: + Account: true + Advanced: false + Albums: true + Archive: true + Delete: false + Download: true + Edit: true + Estimates: true + Favorites: true + Files: true + Folders: true + Import: true + Labels: true + Library: true + Logs: true + Moments: true + People: true + Places: true + Private: true + Ratings: true + Reactions: true + Review: true + Search: true + Services: true + Settings: true + Share: true + Upload: true + Videos: true +Import: + Path: / + Move: false +Index: + Path: / + Convert: true + Rescan: false + SkipArchived: false +Stack: + UUID: true + Meta: true + Name: false +Share: + Title: "" +Download: + Name: file + Disabled: false + Originals: true + MediaRaw: false + MediaSidecar: false +Templates: + Default: index.gohtml diff --git a/compose/photoprism/storage/serial b/compose/photoprism/storage/serial new file mode 100644 index 0000000..2dafad8 --- /dev/null +++ b/compose/photoprism/storage/serial @@ -0,0 +1 @@ +zrsyd9l35vf8qz3s \ No newline at end of file