ntfy:n itsehostaus vuonna 2026: aiheet, käyttöoikeuksien hallinta ja toimitus
Käytännön opas ntfy:n itsehostaukseen: Docker, portit, pysyvä data, TLS, tietoturva, varmuuskopiot ja tuotantokäytön estävät ongelmat. Vaihe vaiheelta.
Useimmat ntfy:n asennusohjeet päättyvät ensimmäiseen sivulataukseen. Se on liian aikaista: cache on ephemeral tai WebSocket/SSE-yhteydet aikakatkaistaan proxyn kohdalla. Hyödyllinen tuotantotesti on vaativampi — julkaise viesti curlilla, vastaanota se HTTP- ja WebSocket-subscriptionien kautta, liitä tiedosto ja testaa yksi autentikoitu aihe.
ntfy:n rooli on suoraviivainen: push-ilmoitusten lähettäminen yksinkertaisella HTTP-pyynnöllä. Sen operationaalinen kokonaisuus sisältää enemmän kuin web-prosessin, joten riippuvuus, tallennettu tila ja julkinen reitti on määriteltävä eksplisiittisesti ennen oikean datan saapumista.
ntfy:n tuotantorakenne
ntfy:n HTTP-prosessi kuuntelee porttia 80; pidä portti sovellusverkossa ja julkaise vain alustan reitti. Paikallinen runtime-vaatimus on config volume ja valinnainen auth database. Testaa tämä raja ennen julkaisua ja uudelleen containerin vaihdon jälkeen.
Kirjaa raja lyhyenä sopimuksena: kuka vastaa vaatimuksesta, mitä credentialia käytetään, mikä timeout on hyväksyttävä ja miten virhe näkyy. Suorita sitten tämä transaktio: julkaise viesti curlilla, vastaanota se HTTP- ja WebSocket-subscriptionien kautta, liitä tiedosto ja testaa yksi autentikoitu aihe. Tarkkaile ajon aikana pitkäkestoisia subscriber-yhteyksiä, liitetiedoston kokoa, cachen säilytystä ja lähteviä push-relay-yhteyksiä, sillä tämä kuormitus antaa hyödyllisemmän lähtökohdan mitoitukselle kuin idle-tilassa oleva container.
Käynnistä ntfy piilottamatta muuttuvia osia
Käytä containeria vaihdettavana runtimena, älä totuuden lähteenä.
docker run -d \
--name ntfy \
--restart unless-stopped \
-p 127.0.0.1:80:80 \
-v ntfy-data:/var/cache/ntfy \
-e NTFY_BASE_URL=https://app.example.com \
binwiederhier/ntfy:latest serve
Varmista paikallinen vaatimus ennen julkaisemista: config volume ja valinnainen auth database. Tarkista containerin käyttäjä, kirjoitettavat polut ja sidottu listener ennen sen julkaisemista. Suorita koko toiminto — julkaise viesti curlilla, vastaanota se HTTP- ja WebSocket-subscriptionien kautta, liitä tiedosto ja testaa yksi autentikoitu aihe — ja tallenna tarkan tuloksen tuottanut image reference.
Anna ntfy:lle yksi kanoninen osoite
Aseta base-url julkiseksi HTTPS-originiksi, jota publisherit ja subscriberit käyttävät. Ohjaa valittu hostname containerin porttiin 80, välitä alkuperäinen host ja HTTPS-scheme ja vältä toisen suoran originin julkaisemista.
Testaa ntfy puhtaalta ulkoiselta clientilta. Erota ingress-virhe tunnetusta sovellusrajasta — cache on ephemeral tai WebSocket/SSE-yhteydet aikakatkaistaan proxyn kohdalla. Certificate-, DNS- tai 502-virhe kuuluu reititykseen; ntfy:lle saapuva pyyntö, joka epäonnistuu myöhemmin, kuuluu sovelluksen tilaan, kapasiteettiin tai sen tukivaatimukseen. Mukautetun domainin TLS-opas käsittelee ensimmäistä ryhmää.
Varmista, että ntfy kestää vaihdon
Suojaa ntfy:n tila ennen containerin optimointia. Pakollinen kokonaisuus on configuration, auth database ja säilytettävät attachments. Liitä /var/cache/ntfy ennen bootstrapia, kirjoita sinne harmitonta esimerkkidataa ja vaihda container varmistaaksesi, että polku on todella persistentti. Jos useiden storejen on pysyttävä yhdenmukaisina, dokumentoi järjestys, jossa kirjoitukset keskeytetään ja varmuuskopiot otetaan.
Säilytä kopiot deployment-palvelimen ulkopuolella ja salaa credentialeja tai yksityistä sisältöä sisältävä materiaali. Palautus onnistuu, kun käyttäjät, ACL:t, configuration ja säilytetyt attachments palautuvat ja autentikoitu subscriber vastaanottaa uuden viestin. Persistentin mountin ja erillisen kopion ero käsitellään oppaassa pysyvä tallennustila ja snapshotit.
Älä anna ntfy:lle koko hostia
ntfy:n kannalta arvokas pinta-ala ei välttämättä ole landing page. Suurin virhe on sallia julkinen aiheiden arvailu, kun viestit sisältävät operationaalisia tietoja. Torju tämä tarkoituksella: käytä topic ACL:ia, sillä arvaamattomat topic-nimet eivät ole riittävä authorization operationaalisille viesteille.
NTFY_BASE_URL on configuration eikä secret; pidä sen arvo eksplisiittisenä ja suojaa erikseen ntfy:n käyttämät credentialit. Käytä unprivileged container useria, kun image tukee sitä, äläkä liitä mukaan asiaankuulumattomia credentialeja. Aseta ingressissä rate- tai size-limitit, jotta epäluotettu työ ei voi kuluttaa pitkäkestoisia subscriber-yhteyksiä, liitetiedostojen kokoa, cachen säilytystä ja lähteviä push-relay-yhteyksiä.
Päivitä ntfy ilman arvailua
Käytä tätä ntfy:n smoke testinä jokaisen deploymentin jälkeen: julkaise viesti curlilla, vastaanota se HTTP- ja WebSocket-subscriptionien kautta, liitä tiedosto ja testaa yksi autentikoitu aihe. Sen tukimittareita ovat pitkäkestoiset subscriber-yhteydet, liitetiedoston koko, cachen säilytys ja lähtevät push-relay-yhteydet; hälytä, kun resurssit lähestyvät pistettä, jossa käyttäjätoiminto heikkenee.
Suurin muutosriski on se, että configuration-avaimet, auth database -migraatiot ja clientien odotukset on tarkistettava ennen ntfy:n päivittämistä. Turvallinen release alkaa palautettavasta snapshotista ja varmistaa yksisuuntaiset tilamuutokset ennen liikenteen siirtämistä. Kun cache on ephemeral tai WebSocket/SSE-yhteydet aikakatkaistaan proxyn kohdalla, säilytä epäonnistunut container riittävän kauan sen configurationin ja ensimmäisen virheen lukemista varten.
ntfy:n release gate
ntfy:n release candidate ansaitsee liikenteen suorittamalla kiinteän skenaarion: julkaise viesti curlilla, vastaanota se HTTP- ja WebSocket-subscriptionien kautta, liitä tiedosto ja testaa yksi autentikoitu aihe. Tallenna kyseisen skenaarion image digest, tehokas ei-salainen configuration, public origin ja aikaleimat. Testidatan tulee olla hävitettävää, mutta riittävän realistista harjoittaakseen samaa polkua kuin käyttäjien toiminta.
Suorita testi runtimen vaihdon jälkeen ja rakenna palvelu sen jälkeen uudelleen configurationista, auth databasesta ja säilytettävistä attachmentseista. Palautus läpäisee testin, kun käyttäjät, ACL:t, configuration ja säilytetyt attachments palautuvat ja autentikoitu subscriber vastaanottaa uuden viestin. Vertaa pitkäkestoisten subscriber-yhteyksien, liitetiedoston koon, cachen säilytyksen ja lähtevien push-relay-yhteyksien resurssimittauksia edelliseen releaseen ja selvitä merkittävä poikkeama ennen julkaisua.
Suorita lopuksi tämä hallittu virhe: lähetä harmitonta syötettä lähelle tämän rajan mukaista resurssi- tai formaattirajoitusta: cache on ephemeral tai WebSocket/SSE-yhteydet aikakatkaistaan proxyn kohdalla. Varmista, että ntfy selittää virheen, ei vahingoita olemassa olevaa tilaa ja jatkaa toimintaansa, kun kelvollinen tila palautuu. Tallenna redaktoitu log-ote ja palautumiseen kulunut aika. Yhdessä nämä tarkistukset kattavat toiminnan, kestävyyden ja operoitavuuden eivätkä vain prosessin uptimea.
Pidä ntfy eksplisiittisenä Dockupin hoitaessa reitityksen
Reititys, certificatet, palvelun vaihto ja liitetty tallennustila ovat järkeviä automaation kohteita. Dockup hoitaa nämä ntfy:lle ja voi provisionoida siihen liittyvän managed databasen tai yhdistää palveluihin asiakkaan omalla serverillä.
Sen ei kuitenkaan pidä keksiä ntfy:n trust policyä. Deploymentin jälkeen aseta base-url julkiseksi HTTPS-originiksi, jota publisherit ja subscriberit käyttävät, pakota tämä raja — käytä topic ACL:ia, sillä arvaamattomat topic-nimet eivät ole riittävä authorization operationaalisille viesteille — ja varmista tämän skenaarion tulos: julkaise viesti curlilla, vastaanota se HTTP- ja WebSocket-subscriptionien kautta, liitä tiedosto ja testaa yksi autentikoitu aihe. Lopputuloksena on yhden klikkauksen infrastruktuuri, johon kuuluu sovelluskohtainen hyväksymistesti.
Usein kysytyt kysymykset
Mitä ntfy tarvitsee tuotantodeploymentiin?
Reititä ntfy-container portissa 80 yhden HTTPS-originin kautta. Paikallinen runtime-vaatimus on config volume ja valinnainen auth database. Älä pidä ntfy:tä valmiina, ennen kuin voit julkaista viestin curlilla, vastaanottaa sen HTTP- ja WebSocket-subscriptionien kautta, liittää tiedoston ja testata yhden autentikoidun aiheen.
Mitkä ntfy:n tiedot kuuluvat varmuuskopioon?
Säilytä /var/cache/ntfy ja sisällytä samaan recovery manifestiin configuration, auth database ja säilytettävät attachments. Puhdas ntfy-palautus läpäisee testin vain, kun käyttäjät, ACL:t, configuration ja säilytetyt attachments palautuvat ja autentikoitu subscriber vastaanottaa uuden viestin.
Tarvitseeko ntfy HTTPS:ää reverse proxyn takana?
Käytä julkisessa ntfy-originissa HTTPS:ää ja pidä portti 80 sisäisessä reitissä. Määritä ntfy-asetus oikein: aseta base-url julkiseksi HTTPS-originiksi, jota publisherit ja subscriberit käyttävät. ntfy:n tapauksessa HTTPS suojaa credentialit tai käyttäjien sisällön siirron aikana ja pitää originista riippuvan client-käyttäytymisen yhdenmukaisena.
Miten ntfy-päivitys pitäisi testata?
Palauta nykyinen ntfy:n tila eristettyyn deploymentiin, ota ehdokasversio käyttöön ja toista sen hyväksymistransaktio. Kiinnitä erityistä huomiota siihen, että configuration-avaimet, auth database -migraatiot ja clientien odotukset on tarkistettava ennen ntfy:n päivittämistä. Säilytä edellinen ntfy image, kunnes sen data-migraation ja rollbackin rajat on ymmärretty.
