> ## Content Index
> Fetch the complete content index at: https://blog.firenetwork.it/llms.txt
> Use this file to discover other available public pages before exploring further.

# Come installare Self-Hosted LiveSync per Obsidian
- URL: https://blog.firenetwork.it/come-installare-self-hosted-livesync-per-obsidian/
- Published: 2025-07-03T19:47:39.000Z
- Updated: 2025-07-03T19:47:39.000Z
- Description: Una guida completa per configurare la sincronizzazione self-hosted su Obsidian. Impara a usare il plugin LiveSync e CouchDB per avere le tue note sempre aggiornate su tutti i dispositivi, senza costi e con il pieno controllo dei tuoi dati.
- Author: Samuele Gabbrielli
- Tags: #Import 2026-03-12 20:23

Come ho scritto nel [primo post di questo blog](https://blog.firenetwork.it/perche-un-blog/), ho sempre avuto l'abitudine di prendere appunti, ma l'ho trasformata in una vera e propria necessità **spinto dalla frustrazione**: troppe volte mi sono scontrato con **documentazione tecnica carente** o guide **scritte senza pensare alle reali difficoltà** del lettore. Ho quindi iniziato a scrivere manuali per me stesso, per poter ripercorrere i miei passi quando necessario.

Nel mio percorso ho utilizzato per un periodo [Joplin](https://joplinapp.org/?ref=blog.firenetwork.it), nella sua variante **self-hosted**, ma sono sempre stato intrigato da [Obsidian](https://obsidian.md/?ref=blog.firenetwork.it) per la sua flessibilità, la cura nei dettagli e il suo vasto ecosistema di **plugin**. L'ostacolo principale al passaggio è sempre stato uno: a differenza di Joplin, che offre la sincronizzazione self-hosted gratuita, **il servizio di sincronizzazione ufficiale di Obsidian è a pagamento**.

La svolta è arrivata con la scoperta del plugin [**Self-Hosted LiveSync**](https://github.com/vrtmrz/obsidian-livesync?ref=blog.firenetwork.it). Ho capito subito che era l'occasione perfetta per migrare, unendo la potenza di Obsidian alla libertà di una sincronizzazione gestita in autonomia.

Tuttavia, come spesso accade con progetti di nicchia, la documentazione del plugin può essere difficile da navigare. Per questo, ho deciso di scrivere una guida chiara e passo-passo. Vediamo insieme come configurare Self-Hosted LiveSync e godere finalmente di **uno dei migliori software di note-taking** con la comodità della **sincronizzazione in tempo reale**.

![](https://blog.firenetwork.it/content/images/2025/06/Immagine-WhatsApp-2025-06-26-ore-19.35.25_07626ed9.jpg) 

## Prerequisiti

Per come è strutturato il plugin **Self-Hosted LiveSync**, avremo bisogno di:

- Un host con **Docker** su cui installare **CouchDB**, il Database di appoggio per Obsidian
- Un dispositivo su cui installare il **client** di Obsidian
- (se vogliamo usare Obsidian anche su smartphone) un Reverse Proxy come **NGINX**

Vuoi usare **NGINX** ma non l'hai ancora installato? Non ti preoccupare, puoi seguire le mie guide!

[Introduzione ad NGINXCosa è NGINX? Ve lo lascio presentare direttamente dal sito ufficiale, che dice: NGINX (“engine x”) è un HTTP web server, reverse proxy, content cache, load balancer, TCP/UDP proxy server e mail proxy server NGINX è un software magnifico, ma non certo senza difetti. Uno tra tutti, non ha![](https://blog.firenetwork.it/content/images/icon/FireNetwork2-4.png)Firenetwork - BlogSamuele Gabbrielli![](https://blog.firenetwork.it/content/images/thumbnail/Nginx-Logo.wine-1.png)](https://blog.firenetwork.it/introduzione-ad-nginx/)

[Come creare un Reverse Proxy con NGINXUn Reverse Proxy è un server che si frappone tra i client ed uno o più server. Fa letteralmente da intermediario ed ha un comportamento dettato da regole relative a varie caratteristiche delle richieste che riceve. Vediamo insieme come configurare NGINX come Reverse Proxy.![](https://blog.firenetwork.it/content/images/icon/FireNetwork2-5.png)Firenetwork - BlogSamuele Gabbrielli![](https://blog.firenetwork.it/content/images/thumbnail/reverse-proxy.png)](https://blog.firenetwork.it/come-creare-un-reverse-proxy-con-nginx/)

![](https://blog.firenetwork.it/content/images/2025/06/luca-bravo-XJXWbfSo2f0-unsplash-1-.jpg) 

## Installazione

## 1\. Installazione di CouchDB

**Self-Hosted LiveSync** necessita di un DB di appoggio su cui fare le sincronizzazioni, e nello specifico è integrato con **CouchDB**.

💡

****CouchDB** è un database open-source ****NoSQL** orientato ai ****documenti**, cioè invece di essere strutturato con le classiche tabelle, composte da righe e colonne, struttura il proprio contenuto in documenti flessibili, ****simili a file JSON**.  
Questa caratteristica lo rende il motore DB ideale per una applicazione come Obsidian.

Per installare CouchDB, invece di predisporre un intero host, possiamo creare un container di **Docker**. Procediamo!

- Create una cartella **couchdb** contenente una cartella **couchdb-data** ed una **couchdb-etc**.

```
sudo mkdir couchdb
sudo mkdir couchdb/couchdb-data
sudo mkdir couchdb/couchdb-etc

```

- Impostate le seguenti variabili di ambiente per riutilizzarle nei prossimi comandi.

```
export hostname=localhost:5984
export username=%username%
export password=%password%

```

❗

Valorizzate i campi ****username** e ****password** con le credenziali da impostare per l'accesso a couchdb!

- Eseguite in shell il container di CouchDB.

```
sudo docker run --name couchdb --rm -it -e COUCHDB_USER=${username} -e COUCHDB_PASSWORD=${password} -v ${PWD}/couchdb/couchdb-data:/opt/couchdb/data -v ${PWD}/couchdb/couchdb-etc:/opt/couchdb/etc/local.d -p 5984:5984 couchdb

```

Attendete che le operazioni di inizializzazione si concludano, poi stoppate il container con la combinazione di tasti `CTRL + C`

- Una volta appurato che CouchDB non dia alcun errore, per ricreare il container e lasciarlo girare in automatico, eseguire il seguente comando **docker run**:

```
sudo docker run --name couchdb -d --restart unless-stopped -e COUCHDB_USER=${username} -e COUCHDB_PASSWORD=${password} -v ${PWD}/couchdb/couchdb-data:/opt/couchdb/data -v ${PWD}/couchdb/couchdb-etc:/opt/couchdb/etc/local.d -p 5984:5984 couchdb

```

- Eseguite ora il seguente comando per **inizializzare** CouchDB per l'utilizzo con il nostro plugin

```
curl -s https://raw.githubusercontent.com/vrtmrz/obsidian-livesync/main/utils/couchdb/couchdb-init.sh | bash

```

L'output del comando dovrebbe essere come questo

```
-- Configuring CouchDB by REST APIs... -->
{"ok":true}
""
""
""
""
""
""
""
""
""
<-- Configuring CouchDB by REST APIs Done!

```

- Modificate i diritti sulle cartelle **couchdb-data** e **couchdb-etc** assegnando la proprietà delle cartelle a root, ed assegnando i diritti di lettura/scrittura solamente a root (l'utente con cui docker esegue il container)

```
sudo chown 0:0 couchdb/couchdb-data couchdb/couchdb-etc
sudo chmod 700 couchdb/couchdb-data couchdb/couchdb-etc

```

## 2\. Configurare HTTPS per l'utilizzo da Smartphone

💡

Questo passaggio **non è obbligatorio** a meno che non si abbia intenzione di sincronizzare Obsidian su **smartphone**.

- Create il seguente site su NGINX

Scegliete un FQDN da associare a couchdb. Ovviamente, avrete bisogno di un certificato SSL valido.  
Nell'esempio di seguito, utilizzerò **obsidiansync.firenetwork.it**

```
server {
    listen 443 ssl;
    listen [::]:443 ssl http2;
    server_name obsidiansync.firenetwork.it;
    client_max_body_size 525M;
    ssl_certificate /etc/nginx/certs/dash.firenetwork.it/fullchain.pem;
    ssl_certificate_key /etc/nginx/certs/dash.firenetwork.it/privkey.pem;
    location / {
        proxy_pass http://indirizzo.IP.macchina.Docker:5984;
        proxy_redirect off;
        proxy_buffering off;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

```

‼️

Ovviamente, per poter utilizzare la regola di Reverse Proxy appena creata, è necessario creare un record A sul vostro server DNS in modo che **obsidiansync.firenetwork.it* punti all'indirizzo IP di NGINX.

## 3\. Installare il plugin su Obsidian

### Installazione del Plugin

Aprite Obsidian e premete sul pulsante **Settings**

![](https://blog.firenetwork.it/content/images/2025/07/Pasted-image-20250702155315-1.png)

Navigate in **Plugin di terze parti** e premete su **Plugin della comunità** → **Sfoglia**

![](https://blog.firenetwork.it/content/images/2025/07/Pasted-image-20250702155447.png)

Cercate ed installate il plugin **Self-hosted LiveSync**

![](https://blog.firenetwork.it/content/images/2025/07/Pasted-image-20250702155544.png)

Abilitare il plugin, comparirà un messaggio dove viene chiesto se si ha un **Setup URI**. Noi procederemo a configurare LiveSync manualmente, quindi selezionate **No, I do not have**

![](https://blog.firenetwork.it/content/images/2025/07/Pasted-image-20250702195503-1.png)

Alla prossima schermata, selezionare **Set it up all manually**

![](https://blog.firenetwork.it/content/images/2025/07/Pasted-image-20250702195529-1.png)

![](https://blog.firenetwork.it/content/images/2025/06/thisisengineering-zBLtU0zbJcU-unsplash.jpg) 

## Configurazione

## Configurazione della connessione a CouchDB

Selezionate dalla barra laterale il plugin **Self-hosted LiveSync** e premete in alto sull'icona del wizard 🧙🏻‍♂️.  
Premete **Start** alla voce **Manual Setup**

![](https://blog.firenetwork.it/content/images/2025/07/Pasted-image-20250702155716.png)

Configurare la schermata coi seguenti parametri:

- **Remote Type** → CouchDB
- **Server URI** → https://FQDN.impostato.sul.reverse.proxy
- **Username** → l'username di CouchDB impostato nel docker compose
- **Password** → la password di CouchDB impostata nel docker compose
- **Database Name** → il nome da dare al Database di CouchDB, rigorosamente con **lettere minuscole**

Premere **Test** alla voce **Test Database Connection**  
Se il test va a buon fine, premere **Check** alla voce **Validate Database Configuration**  
Se anche questo test va a buon fine, premere su **Apply** per salvare la configurazione

Seguendo quanto indicato sulla pagina del progetto github del plugin, vi consiglio fortemente di abilitare anche le seguenti impostazioni, che non sono comunque obbligatorie:

- **End-to-End Encryption** → attiva
- **Passphrase** → impostare una password per criptare i dati storicizzati in CouchDB
- **Path Obfuscation** → attiva

![](https://blog.firenetwork.it/content/images/2025/07/Pasted-image-20250702160005.png)

Premete ora su **Check** alla voce **Validate Database Configuration** per controllare che CouchDB sia configurato correttamente.

![](https://blog.firenetwork.it/content/images/2025/07/Pasted-image-20250702200229-1.png)

❗

ATTENZIONE  
Se necessario, premete ****Fix** sulle righe relative ad errori di configurazione per tentare di correggerli automaticamente.

Premete infine su **Fetch** per leggere le impostazioni necessarie da CouchDB (se si tratta del primo dispositivo che si configura, non dovrebbe risultare niente)

## Configurazione della Sincronizzazione

Andare nuovamente nelle **Impostazioni**, selezionare il plugin e spostarsi sulla scheda dedicata alla sincronizzazione 🔄️

Selezionare **LiveSync** se si vuole avere una sincronizzazione in tempo reale, oppure selezionare e configurare **Periodic w/ Batch** per una sincronizzazione programmata su base temporale.

![](https://blog.firenetwork.it/content/images/2025/07/Pasted-image-20250702164851.png)

## Test di funzionamento

Per effettuare un test di funzionamento abbastanza banale, in assenza di un secondo dispositivo, basta:

1. Creare una nota ed attendere qualche secondo.
2. Chiudere **Obsidian**
3. Accedere tramite **Esplora Risorse** alla cartella dove risiede localmente il Vault di Obsidian
4. Eliminare la nota appena creata
5. Aprire nuovamente **Obsidian**

Se dopo qualche secondo la nota compare nuovamente, allora la sincronizzazione funziona!

![](https://blog.firenetwork.it/content/images/2025/07/benjamin-davies-FiZTaNTj2Ak-unsplash.jpg) 

## Conclusioni

Ecco fatto! Con una configurazione basata su **Docker** e **CouchDB**, abbiamo replicato la funzionalità **premium** di **Obsidian Sync** in modo **gratuito** e **autogestito**.

Ora potete sfruttare al massimo la **potenza di Obsidian**, combinando la sua incredibile **flessibilità** con la comodità di una **sincronizzazione in tempo reale**.

---

![](https://blog.firenetwork.it/content/images/2025/06/Written-By-Human-Not-By-AI-Badge-white@2x-4.png)