PhotoPrism reverse Proxy from Docker

Currently reading
PhotoPrism reverse Proxy from Docker

NAS Newbie

Subscriber
435
91
NAS
DS220+, DS918+, RS1219+
Operating system
  1. Windows
Mobile operating system
  1. Android
I'm slowly working through getting PhotoPrism set up with the help of my brother in law. Has anyone successfully set up a reverse proxy for this app, and if so, how did you do it? I see that there is some info here about setting up via NGINX, but didn't know if that was the only way. PhotoPrism - NGINX
 
1,755
742
NAS
DS220+ : DS1019+ : DS216+II : DS118 : DS120j : APC Back UPS ES 700 — Mac/iOS user
I don’t think you need the linked Nginx RP instructions. DSM has a proxy service as you know.
Does it have a web interface that you can access locally and configure on an RP?

On the other hand, this PhotoPrisim looks interesting.
I’ve also heard about Pixelfed and I was thinking about it.
Please keep us updated on how it goes and your impressions.
 

jeyare

Subscriber
1,800
592
everything what you need for proper container setup is here:

then you need just adjust RP:

Synology allows you to configure a nginx reverse proxy to serve your applications over HTTPS. Configurations can be made in Diskstation manager Control Panel, Application Portal, Reverse proxy.: Click create. [Description] give it a meaningful name (for eg. Photoprism) [Protocol]=HTTPS [Hostname]=[YOUR-HOSTNAME] [Port]=[YOUR-PORT] (for eg. 2343) check Enable HSTS and HTTP/2 . under Destination [Protocol]=HTTP [Hostname]=[YOUR-LOCAL-IP][PORT]=[YOUR-PORT] (default is 2342) Last step under Custom Header.: Click create [Websocket] and hit OK (this step makes that your browser receive photo counts, log messages, or metadata updates).
 

NAS Newbie

Subscriber
435
91
NAS
DS220+, DS918+, RS1219+
Operating system
  1. Windows
Mobile operating system
  1. Android
Last edited:
I set up the RP easily enough. The share link is a little wonky, but if I replace the "localhose:2342" with my RP domain for photoprism, it does direct to the shared album. I believe there is a custom setting within the compose files that changes the sharelink url to use a custom domain, I'll have to look into that.
-- post merged: --

I don’t think you need the linked Nginx RP instructions. DSM has a proxy service as you know.
Does it have a web interface that you can access locally and configure on an RP?

On the other hand, this PhotoPrisim looks interesting.
I’ve also heard about Pixelfed and I was thinking about it.
Please keep us updated on how it goes and your impressions.
I've only had it up for a couple days. The basic functionality is better than Moments, and the thumbnail quality is far superior to what Moments would generate for the grid view. It also seems to load the grid much faster. It is much better at displaying exif info than Moments. Moments does seem better at auto-classifying things by subject (beach, snow, tree, facial recognition etc).

PhotoPrism is missing several key features that are still in development. They purposely did not include an option to delete photos via the app because they were afraid people would blame the app for any photos that got lost. This option is coming. Other features that are in development that I want to see soon are multiple user accounts and face recognition. Other than that, it seems like a very slick program. I'll definitely be using it over Moments, although I want to investigate piwigo and possibly Pixelfed.

1611504636673.png
 
37
13
NAS
DS1618+, DS918+
Router
  1. RT1900ac
  2. RT2600ac
  3. MR2200ac
Operating system
  1. Windows
Mobile operating system
  1. Android
Hi! I would like to run that Photoprism on my machine aswell as it would perfectly fit my needs with my photo archive. Portainer is no problem, already running it for a couple of months or years already. But I have troubles to get the Photoprism to run as expected. (Container created and running, but I cannot open the page - it always open at 0.0.0.0:2342 addresswith connection error). I am trying to do it step by step as described but I probably do something bad with the host addresses, IP, ports etc. Would someone be so kind and post here the correct stack for it? Thanks a lot.
 

NAS Newbie

Subscriber
435
91
NAS
DS220+, DS918+, RS1219+
Operating system
  1. Windows
Mobile operating system
  1. Android
Hi! I would like to run that Photoprism on my machine aswell as it would perfectly fit my needs with my photo archive. Portainer is no problem, already running it for a couple of months or years already. But I have troubles to get the Photoprism to run as expected. (Container created and running, but I cannot open the page - it always open at 0.0.0.0:2342 addresswith connection error). I am trying to do it step by step as described but I probably do something bad with the host addresses, IP, ports etc. Would someone be so kind and post here the correct stack for it? Thanks a lot.
I'm afraid I won't be much help. My brother-in-law set up most of my .yml file for me and he spent a while tweaking it to work right.
 
37
13
NAS
DS1618+, DS918+
Router
  1. RT1900ac
  2. RT2600ac
  3. MR2200ac
Operating system
  1. Windows
Mobile operating system
  1. Android
I'm afraid I won't be much help. My brother-in-law set up most of my .yml file for me and he spent a while tweaking it to work right.
Would you mind to provide your .yml file for me (after you delete your sensitive credentials like passwords etc)? I may try to use it in my environment as well, just will correct those few values lije host IP, passwords, usernames or so. Thanks.
 

jeyare

Subscriber
1,800
592
better approach is a screenshot from your console in Portainer because there are possible reasons:
- you miss some point in proposed guide
- DB is not properly configured (db, root, user, psw,...)
- ...
because @NAS Newbie may have used also welding machine to tune the original PhotoPrism docker compose found. What is sometime right approach also for me and my friend MacGyver, when the compose is just generally described and you need more improvise. :)
Proposed Synology/Portainer compose and guide is well described, then try to check all the variables.
 

NAS Newbie

Subscriber
435
91
NAS
DS220+, DS918+, RS1219+
Operating system
  1. Windows
Mobile operating system
  1. Android
I'm not versed enough in coding to know whether or not my brother-in-law used @jeyare 's welder or not, but below is my file that's been redacted. My BIL is a smart dude and works with this stuff for a living, but he spent hours trying to get this to work. We are also struggling to get Paperless-ng up. For whatever reason we are having problems getting the database containers to communicate with the main app container.

I will also warn you that when I restarted this container as currently composed, I lost all my indexing. My photos still existed, but I had to re-index them all. We have not finished setting it up yet, but it was far enough for me to test it on a small sample set of photos to see if I wanted to go further with it or not. Long story short, use at your own risk.

version: '3.5'

# Example Docker Compose config file for PhotoPrism (Linux / AMD64)
#
# Documentation : PhotoPrism - Docker Compose
# Docker Hub URL: Docker Hub
#
# 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 -a
# Import | docker-compose exec photoprism photoprism import
# -------------------------------------------------------------------
# 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
# Only enable automatic restarts once your installation is properly
# configured as it otherwise may get stuck in a restart loop:
# PhotoPrism - FAQ
# restart: unless-stopped
security_opt:
- seccomp:unconfined
- apparmor:unconfined
ports:
- xxxx:2342 # [local port]:[container port]
environment:
PHOTOPRISM_ADMIN_PASSWORD: "xxxx" # PLEASE CHANGE: Your initial admin password (min 4 characters)
PHOTOPRISM_HTTP_PORT: 2342 # Built-in Web server port
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_WEBDAV: "false" # Disables built-in WebDAV server
PHOTOPRISM_DISABLE_SETTINGS: "false" # Disables Settings in Web UI
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # Disables using TensorFlow for 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: "xxxx" # 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: ""
# You may optionally set a user / group id using environment variables if your Docker version or NAS does not
# support this natively (see next example):
# UID: xxxx
# GID: xxxx
# UMASK: 0000
# Uncomment and edit the following line to set a specific user / group id (native):
# user: "xxx:xxx"
volumes:
# Yur photo and video files ([local path]:[container path]):
- "./Pictures:/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:
image: mariadb:10.5
restart: unless-stopped
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=50
volumes: # Don't remove permanent storage for index database files!
- "./database:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: xxxx
MYSQL_DATABASE: photoprism
MYSQL_USER: photoprism
MYSQL_PASSWORD: xxxx

# Uncomment the following lines to upgrade automatically, whenever there is a new Docker image available:
#
# watchtower:
# image: containrrr/watchtower
# restart: unless-stopped
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"
 

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account on our community. It's easy!

Log in

Already have an account? Log in here.

Welcome to SynoForum.com!

SynoForum.com is an unofficial Synology forum for NAS owners and enthusiasts.

Registration is free, easy and fast!

Similar threads

Similar threads

Trending threads

Top