Configurare la sincronizzazione di Joplin per utilizzare WebDAV

Pubblicato il 15/11/2023

Alcune note per gestire la sincronizzazione di Joplin mediante WebDAV utilizzando Nginx. La configurazione presentata in questo articolo permette di gestire le note di utenti diversi, dedicando ad ognuno uno spazio proprio.

Joplin

Joplin è un’applicazione per prendere note, disponibile su tutte le piattaforme PC e mobili. Permette la sincronizzazione fra dispositivi secondo varie modalità.

L’applicazione è rilasciata con licenza Open Source AGPL v3 e offre un servizio a pagamento pronto all’uso, Joplin Cloud, i cui server, localizzati in Francia, operano nel rispetto della normativa GDPR.

E' inoltre possibile utilizzare sistemi terzi per la sincronizzazione delle note fra dispositivi, tra i quali WebDAV.

Il mio scenario

  • Ubuntu 20.04 server
  • Nginx con il modulo WebDAV
  • Pacchetto openssl installato

Passi di installazione

Installare il modulo WebDAV per Nginx.

Sui sistemi Ubuntu si trova nel pacchettonginx-extras

sudo apt install nginx-extras

Generare un utente per utilizzare lo spazio.

Verrà creato un file per ogni utente per maggior isolazione. Questo eviterà agli utenti registrati di autenticarsi ad uno spazio non proprio.

La password verrà generata utilizzando openssl.

	USER=myuser
	PASSWORD=mypassword
	sudo echo "$USER:$(openssl passwd -apr1 $PASSWORD)\n" >> /etc/nginx/.joplinauth-$USER

Approfondimento: Il file appena creato verrà utilizzato per proteggere l’accesso allo spazio note dell’utente tramite autenticazione BASIC. In particolare generiamo un file con lo stesso formato utilizzato dall’utility httpwd del Web Server Apache. Generiamo la password secondo uno dei modi supportati da Nginx ovvero MD5 (nella variante APR1, la stessa usata anche dal Web Server Apache). Per farlo utililizziamo openssl.

Creare una directory principale per le note

sudo mkdir /var/www/joplin-data
# assicurarsi che directory sia di proprieta' di www-data
sudo chown www-data:www-data /var/www/joplin-data

Configurare lo spazio dati di un utente

Aggiungere il seguente blocco al file di configurazione di Nginx.

 location /notes/myuser {
                root /var/www/joplin-data;
                dav_methods PUT DELETE MKCOL COPY MOVE;
                dav_ext_methods PROPFIND OPTIONS;
                dav_access user:rw group:rw all:r;

                client_max_body_size 0;
                create_full_put_path on;
                client_body_temp_path /tmp;

                auth_basic "Protected Zone";
                auth_basic_user_file /etc/nginx/.joplinauth-myuser;
        }

Il campo auth_basic_user_file configura l’accesso protetto da autenticazione BASIC utilizzando l’utente presente nel file /etc/nginx/.joplinauth-myuser.

Le note di un utente saranno salvate nel formato utilizzato da Joplin all’interno della cartella /var/www/joplin-data/notes/myuser.

Configurare Joplin per utilizzare lo spazio di sincronizzazione

  1. Accedere al menu configurazione dell’applicazione.
  2. Nella sezione sincronizzazione selezionare WebDAV come destinazione di sincronizzazione.
  3. Inserire nel campo URL WebDAV l’indirizzo dello spazio per l’utente: https://www.mysite.net/notes/myuser.
  4. Inserire i dati dell’utente creato per lo spazio nei campi Nome Utente WebDAV e Password WebDAV.
  5. Utilizzare il tasto “Controlla la configurazione della sincronizzazione” per accertarsi che tutto funzioni correttamente.
  • I contenuti di questo articolo sono rilasciati con licenza CC-BY 4.0
  • Eventuali spezzoni di codice presentati seguono, dove non dichiarato, licenza MIT