Installer Photoprism avec Podman
Introduction
PhotoPrism est un logiciel web pour gérer des photos qui peut être exécuté sur un serveur personnel. Les développeurs recommandent d’exécuter le logiciel dans un conteneur et fournissent un fichier docker-compose. De plus, un serveur web nginx est utilisé pour gérer le TLS et rediriger les demandes vers le conteneur Photoprism.
Prérequis
- Vous disposez d’un serveur cloud hosting.fr avec un enregistrement DNS valide, par exemple
demo.mustermann-domain.de. - Un accès shell privilégié sur le système.
Installer les paquets
apt update
apt install podman podman-compose
Installer Photoprism
Créer un répertoire pour le conteneur
mkdir /opt/photoprism
Télécharger le fichier compose de Photoprism
cd /opt/photoprism
wget https://dl.photoprism.app/podman/docker-compose.yml
Modifier le fichier docker-compose.yml et ajuster les valeurs suivantes :
- restart: always
Les conteneurs avecrestart: alwaysdémarreront automatiquement au démarrage de Debian - 127.0.0.1:2342:2342
Lier Photoprism à localhost car nginx doit ici agir en tant que frontend - PHOTOPRISM_DISABLE_PLACES: true
Désactive la requête de géolocalisation par les développeurs. Doit être mis àfalsesi des cartes doivent être affichées. - PHOTOPRISM_ADMIN_PASSWORD
Le mot de passe admin pour la connexion web - MARIADB_PASSWORD ou MARIADB_ROOT_PASSWORD
Définir les mots de passe de la base de données.
. . .
image: photoprism/photoprism:latest
container_name: photoprism
## Ne pas activer les redémarrages automatiques tant que Photoprism n'a pas été correctement configuré et testé !
## Si le service se retrouve coincé dans une boucle de redémarrage, cela indique un problème de mémoire, de système de fichiers, de réseau ou de base de données :
## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors
# restart: unless-stopped
restart: always
. . .
ports:
## Mappage des ports du serveur web au format "Hôte:Conteneur". Pour utiliser un port différent, changez le port hôte
## à gauche et conservez le port du conteneur, par exemple "80:2342" (pour HTTP) ou "443:2342" (pour HTTPS) :
- "127.0.0.1:2342:2342"
. . .
PHOTOPRISM_ADMIN_PASSWORD: "<nouveau mot de passe admin>"
. . .
PHOTOPRISM_DISABLE_PLACES: "true"
. . .
PHOTOPRISM_DATABASE_PASSWORD: "<mot de passe de la base de données photoprism>"
. . .
## Serveur de base de données MariaDB (recommandé)
## voir https://docs.photoprism.app/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql
mariadb:
## Si MariaDB se retrouve coincé dans une boucle de redémarrage, cela indique un problème de mémoire ou de système de fichiers :
## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors
# restart: unless-stopped
restart: always
. . .
MARIADB_DATABASE: "photoprism"
MARIADB_USER: "photoprism"
MARIADB_PASSWORD: "<mot de passe de la base de données photoprism>"
MARIADB_ROOT_PASSWORD: "<mot de passe root de la base de données>"
. . .
Démarrer le conteneur
podman-compose up -d
Les différents conteneurs seront téléchargés et démarrés. Une fois terminé, vous devriez voir deux conteneurs en cours d’exécution avec
podman ps
Tester Photoprism
Pour tester Photoprism, une connexion ssh avec redirection de port doit être utilisée :
ssh -L 127.0.0.1:2342:127.0.0.1:2342 root@demo.mustermann-domain.de
Vous pouvez maintenant accéder à la page Photoprism dans le navigateur à http://127.0.0.1:2342 pour vérifier si tout fonctionne.
Installer Nginx
Installer Nginx avec des certificats Let’s Encrypt installer.
Après que le domaine a été configuré dans Nginx pour Let’s Encrypt TLS, vous devez étendre la configuration pour Photoprism. Pour cela, le fichier /etc/nginx/sites-enabled/demo.mustermann-domain.de doit être modifié
server {
server_name demo.mustermann-domain.de;
include snippets/mozilla-modern.conf;
. . .
# permettre de télécharger de gros fichiers
client_max_body_size 50000M;
# Définir les en-têtes
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;
# activer les 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;
# définir le délai d'attente
proxy_read_timeout 600s;
proxy_send_timeout 600s;
send_timeout 600s;
location / {
proxy_pass http://127.0.0.1:2342;
}
}
Ensuite, vérifiez la configuration Nginx avec nginx-t pour la validité et redémarrez le serveur web (systemctl restart nginx.service). Enfin, vérifiez si Photoprism est désormais accessible via https://demo.mustermann-domain.de.
Créer un nouvel utilisateur dans l’édition Community
Dans l’édition Community, il y a plusieurs limitations en matière de fonctionnement multi-utilisateur :
- Seuls les utilisateurs ayant le rôle d’administrateur peuvent être créés
- La gestion des utilisateurs ne fonctionne que via la CLI
Vous pouvez configurer un nouvel utilisateur avec la commande suivante :
podman-compose exec photoprism photoprism users add --password <mot de passe> <nom d'utilisateur>