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.

