Creare un archivio foto con l'opensource PhotoPrism

Guida all'installazione di PhotoPrism, una piattaforma opensource che permette di allestire un archivio fotografico in locale, magari rendendolo poi accessibile da remoto via VPN, oppure su un server cloud.

Google Foto, Amazon Photos, Dropbox, Apple iCloud e altri servizi simili consentono agli utenti di gestire, organizzare e cercare le proprie foto creando album fotografici facili da condividere con gli altri utenti.

PhotoPrism è un prodotto più articolato, capace di venire incontro non soltanto alle esigenze degli utenti normali ma anche dei professionisti.
Si tratta infatti di una soluzione opensource che permette la creazione di un archivio foto all’interno della propria rete locale (magari rendendolo poi accessibile mediante una connessione VPN) oppure sul cloud.

Con PhotoPrism non si condivideranno più i propri dati con aziende come Google, Amazon, Dropbox, Apple e così via e si potrà contare su uno strumento completo, flessibile e versatile accessibile da browser web per creare archivi fotografici, catalogare le immagini e condividerle.
La piattaforma PhotoPrism consente anche di indicizzare le foto e gestire i duplicati occupandosi anche delle conversioni da RAW a JPEG.
Grazie all’utilizzo di algoritmi basati sull’intelligenza artificiale (Google TensorFlow) PhotoPrism consente di riconoscere il contenuto delle foto e applicare tag.
Supporta anche il cosiddetto reverse geocoding ovvero la conversione delle coordinate geografiche della posizione in cui la foto è stata acquisita in un indirizzo immediatamente leggibile e riconoscibile.

Un altro vantaggio di PhotoPrism è che esso si basa su Docker: basta quindi scaricare il relativo container in Linux, macOS o Windows per disporre di uno strumento già preconfigurato, almeno per ciò che riguarda i requisiti d’ambiente, e pronto per essere utilizzato.

Nel nostro caso installiamo PhotoPrism su Ubuntu 20.04 ma l’installazione è sostanzialmente identica a parte i passaggi relativi al caricamento di Docker e Docker Compose. Tutti i comandi presentati di seguito presuppongono l’utilizzo del comando sudo che può essere omesso nel caso in cui si fossero già acquisiti i diritti di root.

Ciò che si otterrà è qualcosa di simile a quanto visibile in questa pagina.

Configurare Docker CE e Docker Compose su Ubuntu

Prima di tutto è importante digitare un comando che permette di specificare l’indirizzo mnemonico per l’host Ubuntu che ospiterà PhotoPrism. Si può ad esempio usare un dominio di terzo o quarto livello: hostnamectl set-hostname terzolivello.nomedominio-azienda.org
Contemporaneamente bisognerà creare anche il record DNS corretto.

Impartendo i seguenti comandi nella finestra del terminale di Ubuntu o via shell SSH si può installare molto velocemente il software di containerizzazione Docker CE:

apt update && apt -y upgrade

apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common certbot python3-certbot-nginx nginx apache2-utils

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker-ce.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io

A questo punto bisogna controllare qual è la versione più aggiornata di Docker Compose in questa pagina GitHub.

Il comando successivo consente di sostituire a VERSIONE il numero di versione rilevato su GitHub (ad esempio 1.28.5):

curl -L "https://github.com/docker/compose/releases/download/VERSIONE/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Per rendere avviabile Docker Compose si può quindi usare il comando chmod +x /usr/local/bin/docker-compose

Per verificare che sia tutto a posto si può scrivere docker-compose version in modo da ottenere conferma del numero di versione installata.

Generare il certificato digitale per usare PhotoPrism mediante una connessione HTTPS

Dopo aver correttamente configurato il nome host della macchina e creato il corretto record DNS si può scrivere quanto segue per accedere alla procedura di generazione automatica di un certificato Let’s Encrypt:

certbot -d terzolivello.nomedominio-azienda.org

Sostituire ovviamente terzolivello.nomedominio-azienda.org con il terzo livello impostato in precedenza a livello di DNS.

Installare PhotoPrism in Docker

Prima di aggiungere il container di PhotoPrism a Docker suggeriamo di portarsi in una cartella di propria scelta quindi digitare:

wget https://dl.photoprism.org/docker/docker-compose.yml
nano docker-compose.yml

Al posto di insecure impostare una password di accesso sufficientemente lunga e complessa in corrispondenza di PHOTOPRISM_ADMIN_PASSWORD e di PHOTOPRISM_DATABASE_PASSWORD.
Più sotto, in corrispondenza di MYSQL_ROOT_PASSWORD bisognerà specificare la password root di MariaDB quindi specificare la password dell’utente photoprism a destra di MYSQL_PASSWORD.

Premendo CTRL+O quindi CTRL+X si potranno salvare le modifiche e chiudere l’editor di testo.

Eseguendo il comando seguente il container di PhotoPrism sarà automaticamente configurato insieme con quello di MariaDB, necessario per gestire il database:

docker-compose up -d

Purtroppo al momento PhotoPrism non supporta direttamente il protocollo HTTPS a livello di file di configurazione docker-compose.yml.

Digitare nano /etc/nginx/sites-enabled/terzolivello.nomedominio-azienda.org quindi incollare nel file la configurazione del server web NGINX che si trova in questa pagina al paragrafo Setup NGINX.
Al posto di tutte le occorrenze photoprism.example.com bisognerà sostituire terzolivello.nomedominio-azienda.org ovvero il terzo livello scelto in precedenza e impostato a livello di DNS.

In chiusura del file di configurazione bisognerà sostituire http://docker.homenet con http://localhost.

Digitando service nginx restart quindi aprendo il browser web e collegandosi all’indirizzo https://terzolivello.nomedominio-azienda.org dovrebbe apparire la schermata di login di PhotoPrism.

In caso di difficoltà digitare mv /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/backup-def e usare il comando service nginx restart per riavviare il web server.

Utilizzando il comando nano docker-compose.yml si può togliere il commento iniziale da restart: unless-stopped per fare in modo che il container di PhotoPrism si riavvii automaticamente quando necessario.
Per applicare la modifica digitare:

docker-compose stop
docker-compose up -d

A questo punto si avrà a disposizione un archivio foto completo simile a quello visibile a questo indirizzo.

Ovviamente ci sono una serie di operazioni di fine tuning che è possibile condurre ma quella presentata è grosso modo la procedura di base da seguire per creare un archivio fotografico personale utilizzando un software opensource come PhotoPrism.

Ti consigliamo anche

Link copiato negli appunti