Indice del diarioDockup / nota dal campo
Note / self-host-filebrowser

Come eseguire il self-hosting di File Browser nel 2026: volumi, account e condivisione sicura

Una guida pratica al self-hosting di File Browser che illustra Docker, porte, dati persistenti, TLS, sicurezza, backup e i problemi che impediscono l'uso in produzione.

Considera File Browser come un piccolo sistema, non come una semplice immagine Docker. L'obiettivo lato utente è chiaro: un file manager web per un volume collegato; il deployment è accettabile solo quando puoi creare un utente con accesso limitato, caricare e rinominare un file, modificare del testo, generare una condivisione e verificare che l'utente non possa uscire dalla root assegnata.

Questa distinzione permette di individuare il problema che gli operatori incontrano dopo i test locali: i file montati usano permessi dell'host che il container non può leggere. Inoltre, rende il piano di backup e aggiornamento abbastanza specifico da poter essere testato.

Individua ogni byte persistente in File Browser

Un'immagine container può essere scaricata di nuovo; i file pubblicati, insieme al database e alle impostazioni di File Browser, no. Monta /srv prima del bootstrap, scrivi alcuni dati di esempio innocui e sostituisci il container per dimostrare che quel percorso è effettivamente persistente. Ispeziona il mount effettivo invece di fidarti del nome di un file Compose e verifica che l'utente di runtime possa scrivere dove File Browser lo prevede.

Scegli la retention e una destinazione esterna all'host, poi prova il ripristino senza toccare la produzione. Il test è superato solo quando tornano disponibili i file pubblicati, gli utenti, gli ambiti, le condivisioni e le impostazioni, e un account con accesso limitato rimane confinato. Per lo stato basato su database, combina gli snapshot dello storage con esportazioni coerenti a livello applicativo, come descritto nella guida al point-in-time recovery rispetto agli snapshot.

Avvia la prima istanza simile a quella di produzione

Mantieni l'invocazione iniziale di File Browser sufficientemente riproducibile da poterla sottoporre a revisione in una pull request.

docker run -d \
  --name file-browser \
  --restart unless-stopped \
  -p 127.0.0.1:80:80 \
  -v file-browser-data:/srv \
  -v file-browser-db:/database \
  -v file-browser-config:/config \
  filebrowser/filebrowser:latest

Non affidarti a latest dopo che sono presenti dati reali. Registra il digest utilizzato, l'utente del container e la proprietà dei mount. Segui il log dell'applicazione per tutta una prova completa — crea un utente con accesso limitato, carica e rinomina un file, modifica del testo, genera una condivisione e verifica che l'utente non possa uscire dalla root assegnata — e annota eventuali migration prima di instradare il traffico di produzione.

Definisci il perimetro di runtime di File Browser

La salute del processo e quella del prodotto sono due aspetti distinti per File Browser. La porta 80 può rispondere mentre la transazione lato utente continua a fallire. Il requisito di runtime locale è un percorso persistente separato per il database e le impostazioni. Convalidalo durante il carico di accettazione: un health check in assenza di attività non può dimostrare che la risorsa sia sufficiente.

Usa questa verifica di readiness dopo modifiche significative alla configurazione: crea un utente con accesso limitato, carica e rinomina un file, modifica del testo, genera una condivisione e verifica che l'utente non possa uscire dalla root assegnata. Tieni i controlli esterni costosi fuori dai probe di liveness, così un'interruzione del provider non causa un restart loop. Il capacity planning dovrebbe tenere traccia del throughput del disco sottostante, della dimensione degli upload, dei download simultanei e del numero di directory: questi indicatori riflettono la reale pressione su File Browser più delle richieste alle pagine.

Rendi univoca l'origine pubblica

Esponi un unico hostname HTTPS per File Browser e mantieni privata la porta 80 non cifrata. Pubblica l'interfaccia su HTTPS, ma limita con attenzione la root pubblicata. In questo modo impedisci a browser e client API di apprendere due indirizzi alternativi in competizione.

Da un client pulito, esegui la transazione verificata e ispeziona la prima richiesta che fallisce. Usa la guida ai custom domain quando il problema riguarda DNS o TLS. Considera “i file montati usano permessi dell'host che il container non può leggere” come una diagnosi applicativa separata, dopo aver verificato che il percorso sia corretto.

Il release gate di File Browser

Crea un fixture File Browser piccolo e usa-e-getta, conservandolo per ogni release. Il fixture dovrebbe eseguire il workflow reale: creare un utente con accesso limitato, caricare e rinominare un file, modificare del testo, generare una condivisione e verificare che l'utente non possa uscire dalla root assegnata. Registra il digest dell'immagine, l'hostname esterno, l'indirizzo della dipendenza e il risultato previsto, così un operatore potrà ripetere il test in seguito senza dover interpretare questa guida.

Esegui il fixture tre volte. Per prima cosa, usa il deployment appena creato. Poi sostituisci il container senza modificare lo stato persistente. Infine, ripristina il backup in un ambiente vuoto. La terza esecuzione è superata solo quando tornano disponibili i file pubblicati, gli utenti, gli ambiti, le condivisioni e le impostazioni, e un account con accesso limitato rimane confinato. Durante ogni esecuzione, misura latenza e utilizzo delle risorse rispetto al throughput del disco sottostante, alla dimensione degli upload, ai download simultanei e al numero di directory; questo diventa la baseline per gli alert, invece di una percentuale di CPU arbitraria.

Infine, testa deliberatamente il percorso negativo: invia un input innocuo vicino al limite di risorsa o di formato associato a questo confine: i file montati usano permessi dell'host che il container non può leggere. Verifica che File Browser fallisca in modo visibile senza corrompere lo stato, ripristina la condizione corretta e ripeti la transazione riuscita. Un record della release contenente questi quattro risultati è una prova più solida degli screenshot di una dashboard o di una risposta curl eseguita una sola volta.

Verifiche di capacità e aggiornamento

Un health check in assenza di attività dice poco su File Browser. Monitora il throughput del disco sottostante, la dimensione degli upload, i download simultanei e il numero di directory, poi genera alert sul sintomo percepito dagli utenti: il fallimento dell'azione “crea un utente con accesso limitato, carica e rinomina un file, modifica del testo, genera una condivisione e verifica che l'utente non possa uscire dalla root assegnata”. Mantieni la liveness locale ed economica; lascia che la readiness segnali migration o inizializzazione senza causare un restart storm.

L'area più rischiosa dell'aggiornamento riguarda le migration del database e delle impostazioni di File Browser, importanti anche se i file pubblicati risiedono su un mount separato. Leggi le release note, crea uno snapshot dello stato, esegui la versione target su una copia ripristinata e ripeti l'azione di accettazione. Se i file montati usano permessi dell'host che il container non può leggere, correla la richiesta del client con il primo log applicativo pertinente invece di eliminare lo stato o aggiungere redirect alla cieca.

Riduci le autorizzazioni concesse a File Browser

Le credenziali di bootstrap sono temporanee; il modello di trust è permanente. Con File Browser, fai attenzione a non pubblicare / o una directory di secret invece di una condivisione dedicata; pubblica una directory dedicata anziché la root dell'host e assegna a ogni account l'ambito di file più ristretto possibile.

In questa configurazione di base, File Browser non impone un secret di bootstrap; proteggi invece l'account amministratore effettivo o l'autenticazione upstream. Esegui l'immagine senza capability Linux non necessarie ed esponi soltanto la route pubblica dell'applicazione. Mantieni visibili le attività amministrative senza registrare i valori dei secret.

Usa Dockup per il platform layer

Per File Browser, Dockup è particolarmente utile al confine tra un'immagine e un servizio persistente. Mantiene la route verso la porta 80, TLS, i valori dei secret e lo storage collegati anche durante la sostituzione dei container, indipendentemente dal fatto che il calcolo appartenga a Dockup o al tuo server collegato.

Concludi con le verifiche applicative: pubblica l'interfaccia su HTTPS, ma limita con attenzione la root pubblicata; conferma il requisito locale — un percorso persistente separato per il database e le impostazioni — ed esegui questa verifica: crea un utente con accesso limitato, carica e rinomina un file, modifica del testo, genera una condivisione e verifica che l'utente non possa uscire dalla root assegnata. Conserva il risultato come controllo del deployment, così il prossimo aggiornamento dell'immagine verrà valutato in base al comportamento e non allo stato del container.

Domande frequenti

Di cosa ha bisogno File Browser per un deployment in produzione?

Instrada il container File Browser sulla porta 80 attraverso un'unica origine HTTPS. Il requisito di runtime locale è un percorso persistente separato per il database e le impostazioni. Non considerare File Browser pronto finché non puoi creare un utente con accesso limitato, caricare e rinominare un file, modificare del testo, generare una condivisione e verificare che l'utente non possa uscire dalla root assegnata.

Quali dati di File Browser devono essere inclusi in un backup?

Rendi persistente /srv e includi nello stesso manifest di ripristino i file pubblicati, insieme al database e alle impostazioni di File Browser. Un ripristino pulito di File Browser è superato solo quando tornano disponibili i file pubblicati, gli utenti, gli ambiti, le condivisioni e le impostazioni, e un account con accesso limitato rimane confinato.

File Browser richiede HTTPS dietro un reverse proxy?

Usa HTTPS per l'origine pubblica di File Browser e mantieni la porta 80 nella route interna. Applica correttamente l'impostazione di File Browser: pubblica l'interfaccia su HTTPS, ma limita con attenzione la root pubblicata. Per File Browser, HTTPS protegge le credenziali o i contenuti degli utenti durante il transito e mantiene coerente il comportamento del client sensibile all'origine.

Come si deve testare un aggiornamento di File Browser?

Ripristina lo stato corrente di File Browser in un deployment isolato, applica la versione candidata e ripeti la transazione di accettazione. Presta particolare attenzione perché le migration del database e delle impostazioni di File Browser sono importanti anche se i file pubblicati risiedono su un mount separato. Conserva l'immagine precedente di File Browser finché non avrai compreso i confini della migrazione dei dati e del rollback.