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

Kako samostalno hostati Homepage u 2026.: dopušteni hostovi, widgeti i konfiguracija

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

Postoje dvije verzije „pokretanja Homepagea”: spremnik postoji ili usluga obavlja svoj stvarni posao. Važna je samo druga verzija. Ovdje je dokaz učitavanje usluga i oznaka, pozivanje nekoliko widgeta uživo, testiranje pretraživanja i ponovno pokretanje nakon uređivanja YAML konfiguracijske datoteke.

Homepage služi ovoj svrsi: početna stranica s widgetima uživo za self-hostane usluge. Implementacija mora očuvati dijelove koji omogućuju takvo ponašanje; port, volume i certifikat ulazni su elementi, a ne rezultat.

Odaberite najmanju održivu topologiju za Homepage

Korisni dijagram Homepagea prikazuje javnu rutu, privatni port 3000, granicu stanja i svaki prateći zahtjev. Označite koje strelice prenose vjerodajnice, a koje predstavljaju uobičajeni korisnički promet. Vanjski zahtjev za Homepage jest konfiguracija samo za čitanje zajedno s vjerodajnicama za neobavezne servisne widgete. Testirajte odlazni DNS, TLS i ponašanje providera bez objavljivanja još jedne ulazne usluge.

Dokažite dijagram jednom stvarnom radnjom: učitajte usluge i oznake, pozovite nekoliko widgeta uživo, testirajte pretraživanje i ponovno pokrenite uslugu nakon uređivanja YAML konfiguracijske datoteke. Najveći pritisak vjerojatno će uzrokovati fan-out widgeta, spori downstream API-ji, DNS rezolucija i učestalost osvježavanja nadzorne ploče u pregledniku; nadzirite taj put umjesto da sve HTTP zahtjeve tretirate jednako.

Nadogradite Homepage bez nagađanja

Prva korisna operativna metrika za Homepage jest može li učitati usluge i oznake, pozvati nekoliko widgeta uživo, testirati pretraživanje i ponovno se pokrenuti nakon uređivanja YAML konfiguracijske datoteke. Uparite je sa signalima zasićenja za fan-out widgeta, spore downstream API-je, DNS rezoluciju i učestalost osvježavanja nadzorne ploče u pregledniku. Probe koja provjerava samo proces ne bi trebala pozivati skupe ovisnosti ni ponovno pokretati spremnik zato što upstream nakratko nije dostupan.

Tretirajte nadogradnje kao promjene podataka jer se konfiguracijski ključevi i integracije widgeta mogu promijeniti, pa prije ažuriranja imagea provjerite YAML i ponašanje providera. Zaključajte verzije, uvježbajte postupak na vraćenom stanju i zadržite prethodni image dostupnim sve dok rollback ostaje valjan. Kada je host odbijen ili uvlačenje YAML-a onemogućuje učitavanje konfiguracije, sačuvajte logove nastale prije ponovnog pokretanja; oni obično sadrže poruku koja objašnjava uzrok.

Produkcijska provjera prihvaćanja za Homepage

Prije dolaska stvarnih korisnika izradite radni list izdanja za Homepage. U njemu moraju biti navedeni zaključani image, port 3000, kanonski origin, trajne putanje i vlasnik konfiguracije samo za čitanje zajedno s vjerodajnicama za neobavezne servisne widgete. Dodajte očekivani rezultat ove transakcije: učitavanje usluga i oznaka, pozivanje nekoliko widgeta uživo, testiranje pretraživanja i ponovno pokretanje nakon uređivanja YAML konfiguracijske datoteke.

Upotrijebite radni list nakon uobičajene zamjene i nakon čistog vraćanja iz sigurnosne kopije. Oporavak je prihvaćen samo ako se vrate usluge, oznake, widgeti i prilagođena sredstva te svi kritični widgeti vidljivo obrade pogreške downstream ovisnosti. Prikupite i kratki zapis potrošnje resursa koji obuhvaća fan-out widgeta, spore downstream API-je, DNS rezoluciju i učestalost osvježavanja nadzorne ploče u pregledniku; čuvajte ga uz izdanje kako bi se buduće promjene kapaciteta uspoređivale s istim opterećenjem.

Uključite jedan kontrolirani kvar: privremeno onemogućite testni put koji se koristi za konfiguraciju samo za čitanje zajedno s vjerodajnicama za neobavezne servisne widgete. Potvrdite da Homepage prijavljuje problem na ispravnoj granici, vratite valjano stanje i ponovno pokrenite transakciju. Time provjeravate vidljivost pogrešaka, a ne samo uspjeh, i sprječavate da sučelje koje izgleda zdravo prikrije pokvareni worker, callback ili vezu s bazom podataka.

Učinite pokretanje Homepagea reproducibilnim

Koristite spremnik kao zamjenjivo runtime okruženje, a ne kao mjesto na kojem se nalazi izvor istine.

docker run -d \
  --name homepage \
  --restart unless-stopped \
  -p 127.0.0.1:3000:3000 \
  -v homepage-data:/app/config \
  -e HOMEPAGE_ALLOWED_HOSTS=home.example.com \
  ghcr.io/gethomepage/homepage:latest

Dopustite i provjerite odlazni ili klijentski put potreban za konfiguraciju samo za čitanje zajedno s vjerodajnicama za neobavezne servisne widgete. Prije izlaganja servisa provjerite korisnika spremnika, putanje za pisanje i vezani listener. Pokrenite cjelokupnu radnju — učitajte usluge i oznake, pozovite nekoliko widgeta uživo, testirajte pretraživanje i ponovno pokrenite uslugu nakon uređivanja YAML konfiguracijske datoteke — te spremite točnu referencu imagea koja je proizvela rezultat.

Odvojite zamjenjive spremnike od trajnih podataka

Trajni skup za oporavak čine konfiguracijske datoteke, oznake, usluge i prilagođena sredstva. Montirajte /app/config prije bootstrap postupka, zapišite bezopasne ogledne podatke i zamijenite spremnik kako biste dokazali da je ta putanja zaista trajna. Volume štiti podatke od zamjene spremnika, ali ne i od gubitka hosta, slučajnog brisanja ili oštećenja na razini aplikacije.

Izrađujte sigurnosne kopije koje razumiju izvor podataka: prema potrebi koristite logičke dumpove za aktivne baze podataka, a datoteke kopirajte samo iz konzistentnog stanja. Jednu šifriranu kopiju čuvajte izvan hosta na kojem je Homepage. Kriterij prihvaćanja vraćanja mora biti konkretan — usluge, oznake, widgeti i prilagođena sredstva moraju se vratiti, a svi kritični widgeti moraju vidljivo obraditi pogreške downstream ovisnosti. Vodič za sigurnosne kopije testirane vraćanjem objašnjava zašto sam uspjeh posla nije dovoljan.

Domene, proxy zaglavlja i port 3000

Preglednik, API klijent i Homepage moraju se slagati oko jednog origina. Da biste to postigli, postavite dopuštene hostove za točnu domenu i naziv proxy hosta. Očuvajte izvorni host i protokol, a port 3000 zadržite nedostupnim kao konkurentsku javnu adresu.

Vodič za rješavanje problema kada je web-lokacija nedostupna pomaže razlikovati nedostupnu rutu od aplikacije koja odgovara. Ta je razlika ovdje važna: host je odbijen ili uvlačenje YAML-a onemogućuje učitavanje konfiguracije. Promjenama ingressa rješava se samo prvi slučaj; drugi zahtijeva pregled logova, stanja ili opterećenja Homepagea.

Sigurnosne odluke specifične za Homepage

Nemojte preuzimati sigurnosne pretpostavke iz lokalnog vodiča. Poseban problem Homepagea jest predavanje API ključeva widgeta u javni repozitorij. Zato u produkciji treba precizno postaviti dopuštene hostove, a API ključeve widgeta čuvati u environmentu ili konfiguraciji povezanoj sa secretom, a ne u javnom repozitoriju.

HOMEPAGE_ALLOWED_HOSTS upravlja ponašanjem, a ne povjerljivošću; provjerite njegov tip i vrijednost, a stvarne vjerodajnice za Homepage pohranite odvojeno. Ograničite pristup datotečnom sustavu i mreži, zaštitite endpointove za postavljanje te definirajte ograničenja prijenosa, zahtjeva ili izvršavanja oko fan-outa widgeta, sporih downstream API-ja, DNS rezolucije i učestalosti osvježavanja nadzorne ploče u pregledniku.

Kako Dockup smanjuje posao za Homepage

Za Homepage je Dockup najkorisniji na granici između imagea i trajne usluge. Održava rutu do porta 3000, TLS, vrijednosti secreta i pohranu povezane tijekom zamjene spremnika, neovisno o tome nalazi li se compute na Dockupu ili na vašem povezanom serveru.

Dovršite postupak znanjem o aplikaciji: postavite dopuštene hostove za točnu domenu i naziv proxy hosta; dopustite i provjerite konfiguraciju samo za čitanje zajedno s vjerodajnicama za neobavezne servisne widgete; zatim provedite ovu provjeru: učitajte usluge i oznake, pozovite nekoliko widgeta uživo, testirajte pretraživanje i ponovno pokrenite uslugu nakon uređivanja YAML konfiguracijske datoteke. Rezultat sačuvajte kao provjeru implementacije kako bi se sljedeće ažuriranje imagea procjenjivalo prema ponašanju, a ne prema statusu spremnika.

Često postavljana pitanja

Što je Homepageu potrebno za produkcijsku implementaciju?

Usmjerite spremnik Homepagea na portu 3000 kroz jedan HTTPS origin. Vanjski zahtjev za isporuku jest konfiguracija samo za čitanje zajedno s vjerodajnicama za neobavezne servisne widgete. Nemojte smatrati Homepage spremnim dok ne možete učitati usluge i oznake, pozvati nekoliko widgeta uživo, testirati pretraživanje i ponovno pokrenuti uslugu nakon uređivanja YAML konfiguracijske datoteke.

Koji podaci Homepagea pripadaju sigurnosnoj kopiji?

Zadržite /app/config i u isti manifest oporavka uključite konfiguracijske datoteke, oznake, usluge i prilagođena sredstva. Čisto vraćanje Homepagea uspješno je samo kada se vrate usluge, oznake, widgeti i prilagođena sredstva te svi kritični widgeti vidljivo obrade pogreške downstream ovisnosti.

Zahtijeva li Homepage HTTPS iza reverse proxya?

Za javni origin Homepagea koristite HTTPS, a port 3000 zadržite na internoj ruti. Ispravno primijenite postavku za Homepage: postavite dopuštene hostove za točnu domenu i naziv proxy hosta. Za Homepage HTTPS štiti vjerodajnice ili korisnički sadržaj tijekom prijenosa i održava dosljedno ponašanje klijenta osjetljivo na origin.

Kako testirati nadogradnju Homepagea?

Vratite trenutačno stanje Homepagea u izoliranu implementaciju, primijenite kandidatsku verziju i ponovite transakciju prihvaćanja. Obratite posebnu pozornost jer se konfiguracijski ključevi i integracije widgeta mogu promijeniti, pa prije ažuriranja imagea provjerite YAML i ponašanje providera. Zadržite prethodni image Homepagea dok ne razjasnite granice migracije podataka i rollbacka.