Gestire database da un browser può essere molto comodo, soprattutto se lavori con server remoti, container Docker, VPS o ambienti di sviluppo distribuiti. LibreDB Studio è un IDE SQL open source e self-hosted che permette di collegarsi a PostgreSQL, MySQL, MariaDB, MongoDB, Redis, SQLite e molti altri database da un’unica interfaccia web.

In questa guida vediamo come installare LibreDB Studio con Docker Compose, configurare l’accesso amministrativo, rendere persistenti i dati dell’applicazione e collegare database in esecuzione su Docker, sull’host o su servizi gestiti esterni.

Cos’è LibreDB Studio

LibreDB Studio è un database IDE accessibile dal browser. Può essere installato sul proprio server e usato per eseguire query, esplorare tabelle e collezioni, gestire connessioni, consultare dati e lavorare su più motori database da un singolo pannello.

Il progetto supporta, tra gli altri, PostgreSQL, MySQL, MariaDB, Microsoft SQL Server, Oracle, MongoDB, Redis, SQLite, DuckDB, Couchbase, ClickHouse e Turso. È quindi una soluzione interessante per sviluppatori, amministratori di sistema e chi gestisce servizi self-hosted con Docker.

LibreDB Studio non sostituisce il database: si collega a database esistenti. Puoi usarlo con container Docker, installazioni locali, database remoti, VPS e servizi gestiti come Amazon RDS, Neon o MongoDB Atlas.

Prerequisiti

Prima di iniziare servono:

  • un server Linux, un VPS, un NAS compatibile oppure un PC con Docker;
  • Docker Engine e Docker Compose installati;
  • una porta libera, nell’esempio la 3000;
  • credenziali valide per i database che vuoi collegare;
  • facoltativamente, un dominio e un reverse proxy per accedere tramite HTTPS.

LibreDB Studio include un sistema di storage interno per utenti, connessioni salvate e impostazioni. In questa guida viene usato SQLite in un volume Docker persistente: è una scelta semplice e pratica per un’istanza personale, un homelab o un piccolo team.

1. Crea la cartella del progetto

Collegati al server tramite terminale e crea una directory dedicata:

mkdir -p ~/libredb-studio
cd ~/libredb-studio

All’interno della cartella salverai il file Compose e il file .env con le variabili riservate.

2. Genera una chiave JWT sicura

LibreDB Studio utilizza una chiave segreta per firmare i token di autenticazione. Genera una stringa casuale lunga almeno 32 caratteri:

openssl rand -base64 48

Copia il valore prodotto dal comando. Ti servirà nel file .env.

3. Crea il file .env

Crea il file delle variabili ambiente:

nano .env

Incolla il contenuto seguente e sostituisci tutti i valori di esempio con credenziali robuste e reali:

ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=CAMBIA_CON_UNA_PASSWORD_LUNGA_E_UNICA

USER_EMAIL=utente@example.com
USER_PASSWORD=CAMBIA_CON_UN_UNA_SECONDA_PASSWORD_LUNGA_E_UNICA

JWT_SECRET=INCOLLA_QUI_LA_CHIAVE_GENERATA_CON_OPENSSL

L’account amministratore serve per la gestione iniziale dell’istanza. L’account utente può essere utile per separare l’uso quotidiano dalle attività amministrative. Se l’installazione è personale puoi usare lo stesso indirizzo email, ma imposta password differenti e robuste.

Proteggi il file .env, perché contiene credenziali in chiaro. Puoi limitarne i permessi con:

chmod 600 .env

4. Crea il file docker-compose.yml

Crea il file Compose:

nano docker-compose.yml

Incolla questa configurazione:

services:
  libredb-studio:
    image: ghcr.io/libredb/libredb-studio:latest
    container_name: libredb-studio
    restart: unless-stopped
    env_file:
      - .env
    environment:
      STORAGE_PROVIDER: sqlite
      STORAGE_SQLITE_PATH: /app/data/libredb-storage.db
    ports:
      - "3000:3000"
    volumes:
      - libredb-data:/app/data

volumes:
  libredb-data:

Questa configurazione avvia LibreDB Studio sulla porta 3000 e crea un volume Docker chiamato libredb-data.

Il volume contiene il database interno dell’applicazione, comprese impostazioni, utenti e connessioni salvate. Non eliminarlo se vuoi mantenere la configurazione dopo un riavvio o un aggiornamento del container.

5. Avvia LibreDB Studio

Avvia il container in background:

docker compose up -d

Per verificare che il container sia attivo:

docker compose ps

Per leggere i log di avvio:

docker compose logs -f libredb-studio

Quando il servizio è pronto, apri il browser e visita:

http://IP-DEL-SERVER:3000

Se LibreDB Studio è installato sul PC locale, puoi usare:

http://localhost:3000

6. Accedi al pannello

Accedi con l’email e la password amministrative definite nel file .env. Dopo il login puoi iniziare ad aggiungere connessioni ai database dalla dashboard.

Non usare password deboli o valori di esempio in un’istanza raggiungibile dalla rete. LibreDB Studio può offrire accesso diretto a dati, query e informazioni sensibili: l’interfaccia deve essere trattata come un pannello amministrativo.

7. Collegare PostgreSQL, MySQL e MongoDB

Per creare una nuova connessione, seleziona il provider database desiderato e inserisci i parametri richiesti: host, porta, nome del database, utente, password ed eventuali opzioni TLS/SSL.

La configurazione cambia in base a dove si trova il database. I tre scenari più comuni sono questi.

Database in un altro container Docker

Se LibreDB Studio e il database sono collegati alla stessa rete Docker, usa come host il nome del servizio Compose o il nome del container.

Ad esempio, per un container PostgreSQL chiamato postgres nella stessa rete:

Host: postgres
Porta: 5432
Database: appdb
Utente: appuser
Password: LA_TUA_PASSWORD

Non usare localhost in questo scenario. All’interno del container, localhost indica LibreDB Studio stesso, non il container PostgreSQL.

Database installato sull’host

Se PostgreSQL, MySQL o un altro database è installato direttamente sul server host, aggiungi una mappatura per rendere raggiungibile l’host dal container.

Nel servizio libredb-studio, aggiungi:

extra_hosts:
  - "host.docker.internal:host-gateway"

La parte completa del servizio diventa:

services:
  libredb-studio:
    image: ghcr.io/libredb/libredb-studio:latest
    container_name: libredb-studio
    restart: unless-stopped
    env_file:
      - .env
    environment:
      STORAGE_PROVIDER: sqlite
      STORAGE_SQLITE_PATH: /app/data/libredb-storage.db
    ports:
      - "3000:3000"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - libredb-data:/app/data

Dopo aver aggiornato il file, applica la modifica:

docker compose up -d

Nella nuova connessione usa quindi:

Host: host.docker.internal

Verifica inoltre che il database accetti connessioni dalla rete Docker. PostgreSQL, ad esempio, può richiedere modifiche a listen_addresses e al file pg_hba.conf.

Database remoto o servizio gestito

Se il database è ospitato su un VPS, in un datacenter o su un servizio gestito, usa il suo hostname reale.

Host: database.example.com
Porta: 5432
Database: production
Utente: db_user
Password: LA_TUA_PASSWORD

In questo caso devi verificare firewall, security group e liste di IP autorizzati. Limita il traffico in ingresso all’IP del server che esegue LibreDB Studio, invece di rendere il database pubblicamente accessibile da qualsiasi indirizzo.

8. Collegare LibreDB Studio a una rete Docker esistente

Se utilizzi molti stack Docker, può essere comodo creare una rete condivisa per permettere a LibreDB Studio di raggiungere database presenti in altri file Compose.

Crea una rete Docker esterna:

docker network create servizi-interni

Poi aggiungi questa sezione al file docker-compose.yml di LibreDB Studio:

networks:
  servizi-interni:
    external: true

Infine collega il servizio alla rete:

services:
  libredb-studio:
    image: ghcr.io/libredb/libredb-studio:latest
    networks:
      - servizi-interni

Anche il container del database deve essere collegato alla stessa rete. A quel punto potrai usare il nome del servizio Docker come host della connessione.

Questa soluzione evita di esporre porte database sull’host solo per consentire l’accesso a LibreDB Studio.

9. Esporre LibreDB Studio con HTTPS

Se vuoi accedere al pannello fuori dalla rete locale, non esporre direttamente la porta 3000 su Internet. Esponi il servizio dietro reverse proxy usando Nginx Proxy Manager, Caddy o Traefik.

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

  • Domain Names: db.example.com;
  • Scheme: http;
  • Forward Hostname / IP: IP locale del server oppure nome del container;
  • Forward Port: 3000.

Dalla sezione SSL richiedi un certificato Let’s Encrypt e attiva Force SSL. Se l’istanza deve essere accessibile solo a te o a un piccolo team, valuta anche una protezione aggiuntiva con VPN, access list, autenticazione tramite proxy oppure firewall basato su IP.

10. Backup e aggiornamenti

Per un backup completo devi salvare il volume libredb-data. Puoi prima individuare il nome effettivo del volume:

docker volume ls | grep libredb

Per creare un archivio del volume puoi usare un container temporaneo:

mkdir -p backups

docker run --rm \
  -v libredb-studio_libredb-data:/data \
  -v "$(pwd)/backups":/backup \
  alpine \
  tar czf /backup/libredb-studio-backup.tar.gz -C /data .

Il nome del volume può cambiare in base alla cartella del progetto. Sostituisci libredb-studio_libredb-data con il nome restituito dal comando docker volume ls.

Per aggiornare l’immagine Docker:

docker compose pull
docker compose up -d

Prima di aggiornare, crea sempre un backup del volume. Evita di usare il tag latest in ambienti critici: per una maggiore prevedibilità, puoi bloccare l’immagine a una versione specifica rilasciata dal progetto.

Considerazioni finali

LibreDB Studio è una soluzione utile per amministrare database dal browser in un ambiente self-hosted. Con Docker Compose puoi creare un pannello centralizzato per PostgreSQL, MySQL, MariaDB, MongoDB, Redis e altri motori, mantenendo sotto il tuo controllo dati, credenziali e infrastruttura.

Per usarlo in sicurezza, non esporre direttamente il pannello su Internet, usa HTTPS, password uniche, backup regolari e accessi limitati. Se gestisci database in Docker, collegare i container alla stessa rete interna è spesso più sicuro e ordinato rispetto all’esposizione delle porte database sull’host.

FAQ

Cos’è LibreDB Studio?

LibreDB Studio è un IDE database open source e self-hosted. Permette di collegarsi a diversi database dal browser, eseguire query e gestire connessioni in un’unica interfaccia web.

Quali database supporta LibreDB Studio?

LibreDB Studio supporta PostgreSQL, MySQL, MariaDB, Microsoft SQL Server, Oracle, MongoDB, Redis, SQLite, DuckDB, Couchbase, ClickHouse, Turso e altri provider.

LibreDB Studio richiede PostgreSQL o MySQL per funzionare?

No. In questa guida LibreDB Studio usa SQLite come storage interno persistente. PostgreSQL, MySQL e gli altri motori vengono collegati come database esterni da amministrare.

Come posso collegare LibreDB Studio a un database Docker?

Se i container condividono la stessa rete Docker, usa il nome del servizio o del container del database come host. Per esempio, se il servizio PostgreSQL si chiama postgres, usa postgres come host e la porta interna 5432.

Posso usare LibreDB Studio con un database installato sull’host?

Sì. Su Linux puoi aggiungere la mappatura host.docker.internal:host-gateway al container e usare host.docker.internal come host della connessione.

È sicuro esporre LibreDB Studio su Internet?

Può esserlo solo con precauzioni adeguate: HTTPS, password robuste, aggiornamenti, reverse proxy, firewall e accesso limitato. Per un pannello database è preferibile usare VPN, rete privata o allowlist IP.

Come si aggiorna LibreDB Studio?

Dalla cartella del progetto esegui docker compose pull e poi docker compose up -d. Prima dell’aggiornamento crea un backup del volume persistente.

Rispondi