Tenere un diario personale può aiutare a raccogliere pensieri, ricordi, obiettivi e momenti importanti. Molte applicazioni di journaling, però, archiviano queste informazioni su servizi cloud esterni. Journiv è un’alternativa open source e self-hosted che permette di creare un diario personale privato sul proprio server.

In questa guida vediamo come installare Journiv con Docker Compose, configurare i parametri principali e creare il primo account. L’obiettivo è avere uno spazio personale per scrivere, tracciare l’umore e conservare ricordi senza affidare i dati più personali a una piattaforma di terze parti.

Cos’è Journiv

Journiv è una piattaforma di journaling self-hosted progettata per chi vuole tenere sotto controllo i propri dati. L’applicazione consente di creare diari, scrivere note quotidiane, usare prompt di riflessione, associare un umore alle attività e allegare immagini o altri file ai propri ricordi.

Journiv - Screenshot
Journiv – Screenshot

Tra le funzioni disponibili ci sono ricerca avanzata, analisi dell’umore, statistiche, tracciamento di attività e obiettivi, caricamento di contenuti multimediali, esportazione dei dati e supporto a OpenID Connect per chi desidera integrare un sistema di accesso centralizzato.

Prerequisiti

Per installare Journiv servono pochi elementi:

  • un server Linux, un VPS, un NAS compatibile oppure un mini PC;
  • Docker e Docker Compose installati;
  • almeno 512 MB di RAM, anche se 1 GB o più è consigliato;
  • almeno 2 GB di spazio libero, con ulteriore spazio se prevedi di caricare immagini e allegati;
  • facoltativamente, un dominio e un reverse proxy se vuoi usare Journiv con HTTPS da Internet.

Journiv supporta sia SQLite sia PostgreSQL. SQLite è la soluzione più semplice per un diario personale o per un’installazione con pochi utenti; PostgreSQL è invece preferibile per ambienti più strutturati.

1. Crea la cartella di lavoro

Collegati al server tramite terminale e crea una cartella dedicata al progetto:

mkdir -p ~/journiv
cd ~/journiv

All’interno di questa directory verranno salvati i file Docker Compose, il database, i file multimediali e le esportazioni del diario.

2. Genera una chiave segreta

Journiv richiede una chiave segreta per firmare i token di autenticazione. La chiave deve essere lunga almeno 32 caratteri.

Puoi generarne una sicura con:

openssl rand -base64 32

Copia il valore restituito dal comando: verrà usato nel file .env.

3. Scarica i file Docker Compose ufficiali

La documentazione di Journiv mette a disposizione una configurazione Docker Compose con PostgreSQL, adatta a installazioni complete. Scarica il file ufficiale e il template delle variabili ambiente:

wget -O docker-compose.yml https://raw.githubusercontent.com/journiv/journiv-app/main/docker-compose.yml

wget -O .env.example https://raw.githubusercontent.com/journiv/journiv-app/main/.env.example

Ora crea il file di configurazione reale copiando il template:

cp .env.example .env

4. Configura il file .env

Apri il file:

nano .env

Le variabili più importanti da modificare sono queste:

# Chiave segreta generata in precedenza
SECRET_KEY=INCOLLA_QUI_LA_TUA_CHIAVE_LUNGA_E_CASUALE

# Indirizzo IP locale oppure dominio dell'istanza
DOMAIN_NAME=journiv.example.com

# Usa http in locale oppure https dietro reverse proxy
DOMAIN_SCHEME=https

# Password del database PostgreSQL
POSTGRES_PASSWORD=SOSTITUISCI_CON_UNA_PASSWORD_FORTE

# Versione dell'applicazione
APP_VERSION=latest

Se intendi usare Journiv solo nella rete locale, puoi inserire l’indirizzo IP del server come valore di DOMAIN_NAME, ad esempio:

DOMAIN_NAME=192.168.1.50
DOMAIN_SCHEME=http

Se invece usi un dominio e un reverse proxy con certificato SSL, inserisci il dominio senza https:// e imposta:

DOMAIN_NAME=diario.example.com
DOMAIN_SCHEME=https

5. Avvia Journiv con Docker Compose

Dopo aver salvato il file .env, avvia lo stack:

docker compose up -d

Journiv può avviare più container: applicazione, database PostgreSQL, cache e processi in background. È quindi normale vedere diversi servizi attivi.

Per verificare lo stato dei container:

docker compose ps

Per controllare eventuali messaggi di avvio o errori:

docker compose logs -f

6. Crea il primo account

Una volta completato l’avvio, apri il browser e visita:

http://IP-DEL-SERVER:8000

Se hai configurato un dominio e HTTPS tramite reverse proxy, usa invece l’indirizzo pubblico, ad esempio:

https://diario.example.com

Durante il primo accesso, crea il tuo account inserendo email e password. Il primo utente può poi iniziare a creare diari, registrare pensieri, impostare obiettivi e personalizzare le preferenze dell’istanza.

7. Usa Journiv come diario personale

Una volta entrato, puoi creare una prima voce del diario e aggiungere testo, data, umore, attività, tag e allegati. Puoi usare Journiv in molti modi:

  • diario quotidiano per pensieri e riflessioni;
  • tracciamento dell’umore nel tempo;
  • registro di obiettivi personali e abitudini;
  • diario di viaggio con fotografie e note;
  • raccolta privata di ricordi, idee e appunti personali;
  • scrittura guidata con prompt giornalieri.

La ricerca avanzata permette di ritrovare nel tempo testi, parole chiave, date e informazioni associate alle voci del diario.

8. Limita le nuove registrazioni

Se Journiv viene usato solo da te o da un numero limitato di persone, conviene disabilitare le registrazioni dopo aver creato gli account necessari.

Nel file .env aggiungi oppure modifica questa variabile:

DISABLE_SIGNUP=true

Dopo aver salvato il file, riavvia i container:

docker compose up -d

In questo modo l’istanza non accetterà nuove registrazioni pubbliche.

9. Esporre Journiv con HTTPS

Se vuoi raggiungere Journiv anche fuori dalla rete domestica, evita di esporre direttamente la porta 8000 su Internet. È preferibile usare un reverse proxy come Nginx Proxy Manager, Caddy o Traefik.

Con Nginx Proxy Manager, crea un Proxy Host con questi valori:

  • Domain Names: diario.example.com;
  • Scheme: http;
  • Forward Hostname / IP: IP locale del server Journiv oppure nome del container;
  • Forward Port: 8000;
  • Websockets Support: attivo, se richiesto dalla configurazione.

Dalla sezione SSL puoi richiedere un certificato Let’s Encrypt e attivare Force SSL. Ricorda poi di impostare DOMAIN_SCHEME=https e il dominio corretto nel file .env.

10. Backup dei dati

Un diario personale contiene informazioni importanti: backup e protezione dei dati non dovrebbero essere trascurati. Per un ripristino completo devi conservare sia i dati PostgreSQL sia la directory utilizzata per allegati, media ed esportazioni.

Journiv usa normalmente questi percorsi:

  • MEDIA_ROOT: /data/media, per immagini e allegati caricati;
  • EXPORT_DIR: /data/exports, per i file esportati;
  • PostgreSQL: volume o directory dedicata al database.

Prima di aggiornamenti importanti, crea sempre un backup del database e dei dati multimediali. Mantieni almeno una copia aggiuntiva su un disco differente o in una posizione esterna al server.

11. Aggiornare Journiv

Per aggiornare i container alla versione più recente:

docker compose pull
docker compose up -d

Prima dell’aggiornamento controlla la documentazione ufficiale e crea un backup. Se preferisci evitare aggiornamenti automatici potenzialmente incompatibili, puoi sostituire APP_VERSION=latest con una versione specifica disponibile nelle release del progetto.

Considerazioni finali

Journiv è una soluzione interessante per chi desidera scrivere e conservare pensieri, ricordi e dati personali senza dipendere da un’app cloud proprietaria. Con Docker Compose puoi creare una piattaforma di journaling privata sul tuo server, accessibile in rete locale oppure tramite dominio e HTTPS.

Il punto più importante è proteggere l’accesso, scegliere una chiave segreta sicura e mantenere backup regolari. Un diario digitale può contenere informazioni molto personali: il self-hosting ti offre più controllo, ma richiede anche attenzione a sicurezza e conservazione dei dati.

FAQ

Cos’è Journiv?

Journiv è un’applicazione open source e self-hosted per creare un diario personale privato. Include scrittura libera, mood tracking, prompt, allegati, statistiche e ricerca avanzata.

Journiv è gratuito?

Sì. Journiv è un progetto open source che puoi installare sul tuo server. Restano a tuo carico eventuali costi di hardware, VPS, dominio e backup.

Journiv supporta Docker Compose?

Sì. Docker Compose è il metodo consigliato dal progetto per installazioni affidabili e complete, con database PostgreSQL e servizi ausiliari.

È possibile usare Journiv solo nella rete locale?

Sì. Puoi impostare come DOMAIN_NAME l’indirizzo IP privato del server e usare HTTP per un’installazione limitata alla rete domestica o aziendale.

Come posso usare Journiv da Internet?

È consigliato usare un dominio, un reverse proxy e HTTPS. In questo modo puoi accedere con un indirizzo sicuro senza esporre direttamente la porta dell’applicazione.

Come si disabilita la registrazione di nuovi utenti?

Nel file .env imposta la variabile DISABLE_SIGNUP=true e riavvia lo stack con Docker Compose.

Quali dati devo salvare nel backup?

Per un backup completo devi salvare il database PostgreSQL e le directory che contengono allegati, media ed esportazioni. Il database conserva account, voci, impostazioni e metadati, mentre la directory media contiene i file caricati.

Rispondi