Photoprism mit Podman installieren
Einleitung
PhotoPrism ist eine Web-Software zum verwalten von Fotos die auf einem eigenen Server betrieben werden kann. Die Entwickler empfehlen die Software in einem Container zu betreiben und stellen eine docker-compose Datei bereit. Nach aussen wird hier zusätzlich ein nginx Webserver genutzt um TLS zu terminieren und die Anfragen zum Photoprism Container weiterzuleiten.
Voraussetzungen
- Sie verfügen über einen hosting.de Cloud Server, welcher einen gültigen DNS-Eintrag, z.B.
demo.mustermann-domain.de
besitzt. - Eine privilegierte Shell auf dem System.
Pakete installieren
apt update
apt install podman podman-compose
Photoprism installieren
Speicherort für Container erstellen
mkdir /opt/photoprism
Photoprism compose Datei runterladen
cd /opt/photoprism
wget https://dl.photoprism.app/podman/docker-compose.yml
Die docker-compose.yml anpassen und folgennde Werte bearbeiten:
- restart: always
Container mitrestart: always
werden in Debian beim booten automatisch gestartet - 127.0.0.1:2342:2342
Photoprism auf localhost binden da nginx hier als frontend agieren soll - PHOTOPRISM_DISABLE_PLACES: true
Deaktiviert die Kartenabfrage der geo Koordinaten bei den Entwicklern. Muss auffalse
gesetzt werden falls Karten angezeigt werden sollen - PHOTOPRISM_ADMIN_PASSWORD
Das Admin Passwort für den Weblogin - MARIADB_PASSWORD bzw. MARIADB_ROOT_PASSWORD
Datenbank Passwörten setzen.
. . .
image: photoprism/photoprism:latest
container_name: photoprism
## 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
restart: always
. . .
ports:
## Web server port mapping in the format "Host:Container". To use a different port, change the host port
## on the left-hand side and keep the container port, e.g. "80:2342" (for HTTP) or "443:2342 (for HTTPS):
- "127.0.0.1:2342:2342"
. . .
PHOTOPRISM_ADMIN_PASSWORD: "<neues Admin Passwort>"
. . .
PHOTOPRISM_DISABLE_PLACES: "true"
. . .
PHOTOPRISM_DATABASE_PASSWORD: "<phtoprism DB Passwort>"
. . .
## MariaDB 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
restart: always
. . .
MARIADB_DATABASE: "photoprism"
MARIADB_USER: "photoprism"
MARIADB_PASSWORD: "<phtoprism DB Passwort>"
MARIADB_ROOT_PASSWORD: "<DB root Passwort>"
. . .
Container starten
podman-compose up -d
Jetzt werden die verschiedenen Container runtergeladen und gestartet. Nachdem das abgeschlossen ist sollten mit
podman ps
zwei laufende Container angezeigt werden.
Photoprism testen
Um Photoprism zu testen muss eine ssh Verbindung mit Portweiterleitung genutzt werden:
ssh -L 127.0.0.1:2342:127.0.0.1:2342 root@demo.mustermann-domain.de
Jetzt lässt sich die Photoprism Website im Browser mit http://127.0.0.1:2342
aufrufen um zu testen ob alles funktioniert.
Ningx installieren
Nginx mit Let’s Encrypt Zertifikaten installieren.
Nach dem die Domain in Nginx für Let’s Encrypt TLS konfiguriert ist muss die Konfiguration für Photoprism erweitert werden.
Dafür die Datei /etc/nginx/sites-enabled/demo.mustermann-domain.de
angepasst werden
server {
server_name demo.mustermann-domain.de;
include snippets/mozilla-modern.conf;
. . .
# allow large file uploads
client_max_body_size 50000M;
# Set headers
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# enable websockets: http://nginx.org/en/docs/http/websocket.html
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
# set timeout
proxy_read_timeout 600s;
proxy_send_timeout 600s;
send_timeout 600s;
location / {
proxy_pass http://127.0.0.1:2342;
}
}
Danach die Nginx Konfiguration mit nginx-t
auf Korrektheit prüfen und den Websever neustarten (systemctl restart nginx.service
)
Zum Schluss noch kontrollieren ob Photoprism nun über https://demo.mustermann-domain.de
erreichbar ist.
Neuen Nutzer in der Community Edition anlegen
In der Community Edition gibt es mehrere Einschränkungen beim Mehrbenutzerbetrieb:
- Es lassen sich nur Nutzer mit der Adminrolle anlegen
- Die Nutzerverwaltung funktioniert nur über die cli
Einen neuen Nutzer kann man Beispielsweise mit folgendem Kommando einrichten:
podman-compose exec photoprism photoprism users add --password <Passwort> <Loginname>