Gestire documenti, ricevute, contratti e PDF può diventare complicato, soprattutto quando i file sono sparsi tra cartelle, cloud e dispositivi diversi. Teedy è una soluzione open source e self-hosted che permette di archiviare, organizzare e cercare documenti da un’interfaccia web.
Uno dei suoi punti di forza è l’OCR: dopo il caricamento, Teedy può estrarre il testo dai documenti supportati e renderlo ricercabile. In questa guida vediamo come installare Teedy con Docker Compose, configurare PostgreSQL e iniziare a gestire documenti in locale o su un server.
Cos’è Teedy
Teedy è un sistema di gestione documentale open source pensato per privati, professionisti e piccoli team. Permette di caricare documenti, aggiungere tag e metadati, organizzare file in modo ordinato e cercare testo all’interno dei documenti indicizzati.
Tra le funzioni disponibili ci sono OCR, ricerca full-text, gestione di PDF, immagini, file ODT, DOCX e PPTX, tag gerarchici, versioning, condivisione tramite URL, permessi per utenti e gruppi e autenticazione a due fattori.
Prerequisiti
Per seguire questa guida ti servono:
- Un server Linux, un VPS, un NAS compatibile o un mini PC, magari con Debian 13 o Ubuntu 26.04.
- Docker e Docker Compose installati.
- Un dominio e un reverse proxy, facoltativi ma consigliati se vuoi esporre Teedy su Internet.
- Una password robusta per PostgreSQL e una password iniziale per l’account amministratore.
1. Crea la cartella di lavoro
Inizia creando una cartella dedicata al progetto e spostati al suo interno:
mkdir -p ~/teedy
cd ~/teedy
2. Crea il file .env
Per evitare di inserire password direttamente nel file Compose, crea un file chiamato .env:
nano .env
Inserisci valori casuali e robusti, sostituendo l’esempio seguente:
POSTGRES_USER=teedy
POSTGRES_PASSWORD=SOSTITUISCI_CON_UNA_PASSWORD_LUNGA_E_CASUALE
POSTGRES_DB=teedy
TEEDY_ADMIN_EMAIL=admin@example.com
TEEDY_BASE_URL=http://127.0.0.1:8080
Se stai eseguendo Teedy solo nella rete locale e non hai ancora un dominio, puoi usare per il momento un indirizzo come http://192.168.1.10:8080 come valore di TEEDY_BASE_URL.
3. Crea il file docker-compose.yml
Nella stessa cartella crea un file chiamato docker-compose.yml:
nano docker-compose.yml
Incolla questa configurazione:
services:
teedy:
image: sismics/docs:v1.11
container_name: teedy
restart: unless-stopped
ports:
- "8080:8080"
environment:
DOCS_BASE_URL: ${TEEDY_BASE_URL}
DOCS_ADMIN_EMAIL_INIT: ${TEEDY_ADMIN_EMAIL}
DOCS_DEFAULT_LANGUAGE: ita
DATABASE_URL: jdbc:postgresql://postgres:5432/${POSTGRES_DB}
DATABASE_USER: ${POSTGRES_USER}
DATABASE_PASSWORD: ${POSTGRES_PASSWORD}
DATABASE_POOL_SIZE: 10
volumes:
- ./data:/data
depends_on:
- postgres
networks:
- teedy-internal
- teedy-public
postgres:
image: postgres:13.1-alpine
container_name: teedy-postgres
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- ./postgres:/var/lib/postgresql/data
networks:
- teedy-internal
networks:
teedy-internal:
internal: true
teedy-public:
La configurazione usa PostgreSQL invece del database H2 integrato. Il progetto raccomanda PostgreSQL per l’uso in produzione e indica il database integrato solo per test e prove iniziali.
4. Avvia Teedy con Docker Compose
Salva il file e avvia i container:
docker compose up -d
Puoi verificare che entrambi i container siano attivi con:
docker ps
Per leggere i log dell’applicazione, utile soprattutto al primo avvio, usa:
docker compose logs -f teedy
5. Accedi a Teedy
Quando il container è pronto, apri il browser e visita:
http://IP-DEL-SERVER:8080
Accedi usando l’username admin e la password admin. Al primo accesso conviene verificare le impostazioni dell’account e modificare subito le credenziali amministrative.

6. Come funziona l’OCR in Teedy
Teedy include OCR e strumenti di conversione direttamente nella sua immagine Docker. Quando carichi un documento supportato, l’applicazione può estrarre il testo e aggiungerlo all’indice di ricerca.
Questo significa che puoi cercare parole presenti all’interno di PDF acquisiti con scanner, immagini e altri documenti compatibili, senza dover rinominare manualmente ogni file. Per ottenere risultati migliori, è consigliato caricare scansioni leggibili e con testo ben contrastato.

7. Organizzare documenti e tag
Dopo aver caricato un documento, puoi aggiungere titolo, descrizione, tag, data, autore e altri metadati. I tag possono essere organizzati in modo gerarchico, una funzione utile per separare ad esempio documenti personali, bollette, ricevute, contratti, lavoro e materiale amministrativo.
Un’organizzazione iniziale semplice può essere questa:
- Personale: documenti, certificati, ricevute e assicurazioni.
- Casa: utenze, manutenzione, contratti e garanzie.
- Lavoro: fatture, progetti, documentazione e note spese.
- Archivio: documenti meno recenti ma da mantenere consultabili.
8. Reverse proxy e HTTPS
Se vuoi esporre Teedy su Internet, è consigliato usare un reverse proxy con HTTPS. In questo caso devi impostare TEEDY_BASE_URL con l’URL pubblico completo, ad esempio https://teedy.example.com.
Puoi usare Nginx Proxy Manager, Traefik, Caddy oppure la configurazione Nginx che preferisci. Il reverse proxy deve inoltrare le richieste verso la porta 8080 del container Teedy.
Se Teedy resta accessibile solo nella rete locale, puoi anche evitare di pubblicarlo su Internet e limitare l’esposizione della porta con questa sintassi nel file Compose:
ports:
- "127.0.0.1:8080:8080"
In questo modo l’applicazione sarà raggiungibile direttamente solo dal server e potrà essere esposta all’esterno esclusivamente tramite reverse proxy.
9. Backup di Teedy
Per eseguire un backup corretto devi salvare sia la cartella data, che contiene i file e i dati dell’applicazione, sia la cartella postgres, che contiene il database PostgreSQL.
Prima di copiare i dati, per un backup consistente è preferibile fermare temporaneamente lo stack:
docker compose down
Dopo aver copiato le cartelle data e postgres in una posizione sicura, puoi riavviare i servizi:
docker compose up -d
Considerazioni finali
Teedy è una soluzione molto valida per chi vuole creare un archivio documentale personale o professionale, con ricerca OCR e pieno controllo sui propri dati. Con Docker Compose e PostgreSQL l’installazione è relativamente semplice, ma offre già funzioni avanzate come tag, versioning, permessi, condivisione e indicizzazione del testo.
Se cerchi un’alternativa self-hosted per archiviare PDF, scansioni, documenti e ricevute senza dipendere da servizi cloud esterni, Teedy merita sicuramente di essere provato.
FAQ
Cos’è Teedy?
Teedy è un software open source per la gestione documentale. Permette di caricare, classificare, cercare e condividere documenti da un’interfaccia web.
Teedy supporta l’OCR?
Sì. Teedy include strumenti OCR nella propria immagine Docker e può estrarre testo dai documenti supportati per renderlo ricercabile, supporta senza problemi l’italiano.
Teedy può gestire PDF e documenti Office?
Sì. Il progetto supporta PDF, immagini, ODT, DOCX, PPTX e altri formati, con ricerca full-text per i file compatibili.
È possibile installare Teedy con Docker Compose?
Sì. Docker Compose è un metodo pratico per avviare Teedy insieme a PostgreSQL e mantenere dati e database in volumi persistenti.
Serve PostgreSQL per usare Teedy?
Teedy può usare un database H2 integrato per prove e test, ma per un utilizzo in produzione il progetto raccomanda PostgreSQL.
Dove vengono salvati i documenti caricati?
Con la configurazione mostrata in questa guida, i documenti e i dati dell’applicazione vengono salvati nella cartella data, mentre il database viene salvato nella cartella postgres.
Teedy può essere usato con HTTPS?
Sì. Puoi esporlo dietro reverse proxy e impostare l’URL pubblico tramite la variabile DOCS_BASE_URL.

