Indeks dnevnikaDockup / bilješka s terena
Note / self-host-filebrowser

Kako samostalno hostati File Browser u 2026.: volumei, računi i sigurno dijeljenje

Praktični vodič za samostalno hostanje File Browsera koji obuhvaća Docker, portove, trajne podatke, TLS, sigurnost, sigurnosne kopije i probleme koji onemogućuju upotrebu u produkciji.

File Browser tretirajte kao mali sustav, a ne kao Docker image. Korisnički cilj File Browsera je jasan: web file manager za priključeni volume; deployment je prihvatljiv tek kada možete izraditi ograničenog korisnika, prenijeti i preimenovati datoteku, uređivati tekst, generirati share i potvrditi da korisnik ne može izaći iz svog dodijeljenog roota.

Ta razlika otkriva problem s kojim se operatori susreću nakon lokalnog testiranja: montirane datoteke koriste permissions na hostu koje container ne može čitati. Također plan za sigurnosne kopije i nadogradnje postaje dovoljno konkretan za testiranje.

Pronađite svaki trajni byte u File Browseru

Container image može se ponovno preuzeti; poslužene datoteke te File Browser baza podataka i postavke ne mogu. Montirajte /srv prije bootstrapiranja, zapišite bezopasne ogledne podatke i zamijenite container kako biste dokazali da je taj path doista trajan. Provjerite efektivni mount umjesto da vjerujete nazivu Compose datoteke i provjerite može li runtime user pisati tamo gdje File Browser to očekuje.

Odaberite retention i odredište izvan hosta, a zatim uvježbajte oporavak bez diranja produkcije. Vježba je uspješna samo kada se vrate poslužene datoteke, korisnici, scopes, shares i postavke, a ograničeni račun ostane unutar dodijeljenog prostora. Za stanje temeljeno na bazi podataka uparite snapshotove storagea s exportima konzistentnima s aplikacijom, kako je opisano u point-in-time recovery nasuprot snapshotovima.

Pokrenite prvu instancu oblikovanu za produkciju

Početno pokretanje File Browsera učinite dovoljno reproducibilnim za pregled u pull requestu.

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

Nemojte se oslanjati na latest nakon što se pojave stvarni podaci. Zabilježite radni digest, container user i vlasništvo nad mountovima. Pratite application log kroz cijeli test — izradite ograničenog korisnika, prenesite i preimenujte datoteku, uredite tekst, generirajte share i potvrdite da korisnik ne može izaći iz svog dodijeljenog roota — te zabilježite eventualne migracije prije nego što route stavite iza produkcijskog prometa.

Nacrtajte granicu runtimea File Browsera

Health procesa i health proizvoda dvije su odvojene stvari za File Browser. Port 80 može odgovarati dok korisnička transakcija i dalje ne uspijeva. Lokalni runtime zahtijeva zaseban trajni path za svoju bazu podataka i postavke. Validirajte ga pod acceptance workloadom; idle health check ne može dokazati da je resurs dovoljan.

Ovu vježbu spremnosti koristite nakon značajnih promjena konfiguracije: izradite ograničenog korisnika, prenesite i preimenujte datoteku, uredite tekst, generirajte share i potvrdite da korisnik ne može izaći iz svog dodijeljenog roota. Skupe vanjske provjere izostavite iz liveness probeova kako prekid rada providera ne bi uzrokovao restart loop. Pri planiranju kapaciteta pratite throughput diska, veličinu uploada, broj istodobnih downloada i broj direktorija, što je bliže stvarnom opterećenju File Browsera nego zahtjevi za stranicama.

Učinite javni origin nedvosmislenim

Izložite File Browser na jednom HTTPS hostnameu; sirovi port 80 zadržite privatnim. UI objavite preko HTTPS-a, ali pažljivo ograničite posluženi root. Time sprječavate da browseri i API klijenti saznaju za dvije konkurentske adrese.

Iz čistog klijenta pokrenite poznatu uspješnu transakciju i provjerite prvi zahtjev koji ne uspije. Kada su DNS ili TLS neispravni, poslužite se vodičem za prilagođenu domenu. Problem „montirane datoteke koriste permissions na hostu koje container ne može čitati” tretirajte kao zasebnu dijagnozu aplikacije nakon što potvrdite da route radi.

Gate za izdanje File Browsera

Izradite mali, disposable fixture za File Browser i zadržite ga za svako izdanje. Fixture treba obuhvatiti stvarni workflow: izradite ograničenog korisnika, prenesite i preimenujte datoteku, uredite tekst, generirajte share i potvrdite da korisnik ne može izaći iz svog dodijeljenog roota. Zabilježite image digest, vanjski hostname, adresu dependencyja i očekivani rezultat kako bi kasniji operator mogao ponoviti test bez tumačenja ovog vodiča.

Pokrenite fixture tri puta. Prvi put koristite svježi deployment. Drugi put zamijenite container bez diranja trajnog stanja. Treći put vratite sigurnosnu kopiju u prazno okruženje. Treći je pokušaj uspješan samo kada se vrate poslužene datoteke, korisnici, scopes, shares i postavke, a ograničeni račun ostane unutar dodijeljenog prostora. Tijekom svakog pokušaja zabilježite latenciju i iskorištenost resursa povezane s throughputom diska, veličinom uploada, brojem istodobnih downloada i brojem direktorija; to postaje osnova za alertove umjesto proizvoljnog postotka CPU-a.

Na kraju namjerno testirajte negativni put: pošaljite bezopasan input blizu ograničenja resursa ili formata povezanog s ovom granicom: montirane datoteke koriste permissions na hostu koje container ne može čitati. Potvrdite da File Browser vidljivo prijavljuje neuspjeh bez oštećenja stanja, vratite ispravan uvjet i ponovite uspješnu transakciju. Zapis o izdanju koji sadrži ta četiri ishoda snažniji je dokaz od snimki zaslona dashboarda ili jednokratnog curl odgovora.

Provjere kapaciteta i nadogradnje

Idle health check malo govori o File Browseru. Pratite throughput diska, veličinu uploada, broj istodobnih downloada i broj direktorija, a zatim postavite alert na simptom koji korisnici doživljavaju: neuspjeh radnje „izradi ograničenog korisnika, prenesi i preimenuj datoteku, uredi tekst, generiraj share i potvrdi da korisnik ne može izaći iz svog dodijeljenog roota”. Liveness zadržite lokalnim i jeftinim; readiness neka prijavi migracije ili inicijalizaciju bez izazivanja restart storma.

Rizično područje nadogradnje jest činjenica da su migracije baze podataka i postavki File Browsera važne iako se poslužene datoteke nalaze na zasebnom mountu. Pročitajte release notes, izradite snapshot stanja, deployajte ciljnu verziju na vraćenu kopiju i ponovite acceptance radnju. Ako montirane datoteke koriste permissions na hostu koje container ne može čitati, povežite zahtjev klijenta s prvim relevantnim application logom umjesto da naslijepo brišete stanje ili dodajete redirectove.

Smanjite ovlasti koje ima File Browser

Bootstrap credentials privremeni su; model povjerenja je trajan. Kod File Browsera pazite na posluživanje direktorija / ili direktorija sa secretsima umjesto namjenskog sharea, a poslužujte namjenski direktorij umjesto roota hosta i svakom računu dodijelite najuži file scope koji mu je potreban.

File Browser u ovoj baseline konfiguraciji nema obavezni bootstrap secret; umjesto toga zaštitite stvarni administratorski račun ili upstream authentication. Image pokrenite bez nepotrebnih Linux capabilities i izložite samo javni application route. Administratorske aktivnosti učinite vidljivima bez bilježenja vrijednosti secretova.

Koristite Dockup za platform layer

Za File Browser Dockup je najkorisniji na granici između imagea i trajne usluge. Održava route prema portu 80, TLS, vrijednosti secretova i priključeni storage tijekom zamjene containera, neovisno o tome pripada li compute Dockupu ili vašem priključenom serveru.

Završite uz poznavanje aplikacije: UI objavite preko HTTPS-a, ali pažljivo ograničite posluženi root; potvrdite lokalni zahtjev — zaseban trajni path za njegovu bazu podataka i postavke; i provedite ovu provjeru: izradite ograničenog korisnika, prenesite i preimenujte datoteku, uredite tekst, generirajte share i potvrdite da korisnik ne može izaći iz svog dodijeljenog roota. Rezultat zadržite kao deployment check kako bi se sljedeća nadogradnja imagea procjenjivala prema ponašanju, a ne prema statusu containera.

Često postavljana pitanja

Što je File Browseru potrebno za produkcijski deployment?

Usmjerite container File Browsera na portu 80 kroz jedan HTTPS origin. Lokalni runtime zahtijeva zaseban trajni path za bazu podataka i postavke. File Browser nemojte smatrati spremnim dok ne možete izraditi ograničenog korisnika, prenijeti i preimenovati datoteku, urediti tekst, generirati share i potvrditi da korisnik ne može izaći iz svog dodijeljenog roota.

Koji podaci File Browsera pripadaju sigurnosnoj kopiji?

Učinite /srv trajnim i uključite poslužene datoteke te bazu podataka i postavke File Browsera u isti recovery manifest. Čisti restore File Browsera uspješan je samo kada se vrate poslužene datoteke, korisnici, scopes, shares i postavke, a ograničeni račun ostane unutar dodijeljenog prostora.

Zahtijeva li File Browser HTTPS iza reverse proxya?

Za javni origin File Browsera koristite HTTPS, a port 80 zadržite na internoj ruti. Ispravno primijenite postavku File Browsera: UI objavite preko HTTPS-a, ali pažljivo ograničite posluženi root. Za File Browser HTTPS štiti credentials ili korisnički sadržaj tijekom prijenosa i održava dosljedno ponašanje klijenta osjetljivo na origin.

Kako treba testirati nadogradnju File Browsera?

Vratite trenutačno stanje File Browsera u izolirani deployment, primijenite kandidatsku verziju i ponovite njegovu acceptance transakciju. Obratite posebnu pozornost na to da su migracije baze podataka i postavki File Browsera važne iako se poslužene datoteke nalaze na zasebnom mountu. Prethodni image File Browsera zadržite dok ne razjasnite granice migracije podataka i rollbacka.