A Shiori saját üzemeltetése 2026-ban: archívumok, fiókok és tartós tárolás
Gyakorlati útmutató a Shiori saját üzemeltetéséhez Dockerrel, portokkal, tartós adatokkal, TLS-sel, biztonsági beállításokkal, mentésekkel és a production használatot akadályozó hibákkal. Lépésről lépésre.
Egy hibás Shiori-deployment nem feltétlenül áll le. Előfordulhat, hogy a bejelentkezési oldalt kiszolgálja, miközben az archiválás meghiúsul, mert a Chromium-függőségek vagy a fájlrendszer jogosultságai hibásak. Ehelyett kezdj end-to-end ellenőrzéssel: ments el egy könyvjelzőt archivált tartalommal, keress rá, módosítsd a tageket, majd ellenőrizd, hogy az archívum akkor is elérhető marad-e, amikor a forrásoldal megváltozik.
Ez az ellenőrzés megfelel a Shiori dokumentált céljának: olyan bookmark manager, amely archiválja az oldalak tartalmát. Emellett hamarabb feltárja a hiányzó függőségeket, a hibás proxy-feltételezéseket és az ephemeral adatokat, mint egy uptime probe.
A Shiori runtime-határainak kijelölése
A process health és a product health különválik a Shiori esetében. A 8080-as port válaszolhat úgy is, hogy a felhasználói tranzakció még mindig sikertelen. A Shiori külső követelménye egy írható data volume, valamint a hozzáférés az archiválandó oldalakhoz. Teszteld a kimenő DNS-t, a TLS-t és a provider működését anélkül, hogy újabb bejövő service-t publikálnál.
Használd ezt a readiness-ellenőrzést minden jelentős konfigurációmódosítás után: ments el egy könyvjelzőt archivált tartalommal, keress rá, módosítsd a tageket, majd ellenőrizd, hogy az archívum akkor is elérhető marad-e, amikor a forrásoldal megváltozik. Az expensive external checkeket hagyd ki a liveness probe-okból, hogy egy provider kiesése ne okozzon restart loopot. A kapacitástervezés során kövesd a browser-based page capture, az archívum mérete, a thumbnailök és a kimenő lekérések erőforrásigényét, mert ezek közelebb állnak a Shiori tényleges terheléséhez, mint az oldallekérések.
A Shiori visszaállítása üres hoston
Még az első valódi rekord létrehozása előtt listázd az állapotot: adatbázis, archivált oldaltartalom, thumbnailök és konfiguráció. A bootstrap előtt mountold a /shiori útvonalat, írj bele ártalmatlan mintaadatokat, majd cseréld le a containert annak bizonyítására, hogy az adott útvonal valóban persistent. Erősítsd meg a mountot ártalmatlan adatok írásával, a Shiori lecserélésével és az adatok visszaolvasásával.
A snapshotok hasznosak a gyors rollbackhez, de külön backupra is szükség van, ha a host vagy a volume eltűnik. Állítsd vissza az adatokat egy üres környezetbe a rögzített image használatával, majd ellenőrizd, hogy a könyvjelzők, a tagek, az archívumfájlok és a fiókok visszatérnek-e, illetve hogy egy már nem elérhető forráslink továbbra is megnyitja-e a mentett tartalmat. Használd a persistent volume-okat és snapshotokat, hogy a két recovery-mechanizmus elkülönüljön.
A Shiorihoz kapcsolódó biztonsági döntések
Az alkalmazásspecifikus biztonsági kockázat az, ha a kezdeti fiók változatlanul marad egy publikus instance-on. Az operatív megoldás a kezdeti fiók lecserélése, a publikus megosztás korlátozása, valamint annak kezelése, hogy az archivált privát URL-ek érzékeny tartalomnak minősülnek. A bootstrapet korlátozott route-on fejezd be, majd azonnal távolítsd el az ideiglenes setup-hozzáférést.
A SHIORI_DIR a működést, nem pedig a bizalmasságot szabályozza; ellenőrizd a típusát és az értékét, a valódi Shiori-credentialöket pedig külön tárold. A Shiori process csak a dokumentált mountokhoz és dependency route-okhoz férjen hozzá; kerüld a host root- és a Docker socket-hozzáférést. Naplózd a sikertelen hitelesítési kísérleteket és a konfigurációs hibákat, de redaktáld a tokeneket, a connection stringeket és a felhasználói tartalmat.
Production acceptance run a Shiorihoz
A Shiori release candidate-je akkor kaphat forgalmat, ha teljesít egy rögzített forgatókönyvet: ments el egy könyvjelzőt archivált tartalommal, keress rá, módosítsd a tageket, majd ellenőrizd, hogy az archívum akkor is elérhető marad-e, amikor a forrásoldal megváltozik. Rögzítsd ehhez a forgatókönyvhöz az image digestjét, a tényleges, nem titkos konfigurációt, a publikus origint és az időbélyegeket. A tesztadatok legyenek törölhetők, de legyenek elég életszerűek ahhoz, hogy ugyanazt az útvonalat járják be, mint a felhasználói műveletek.
Futtasd le ezt a runtime lecserélése után, majd építsd újra a service-t az adatbázisból, az archivált oldaltartalomból, a thumbnailökből és a konfigurációból. A recovery akkor sikeres, ha a könyvjelzők, a tagek, az archívumfájlok és a fiókok visszatérnek, és egy már nem elérhető forráslink továbbra is megnyitja a mentett tartalmat. Hasonlítsd össze a browser-based page capture, az archívum mérete, a thumbnailök és a kimenő lekérések erőforrásméréseit az előző release értékeivel, és a promotion előtt vizsgáld ki a jelentős eltéréseket.
Végül hajtsd végre ezt a kontrollált hibatesztet: ideiglenesen tiltsd le az írható data volume által használt tesztútvonalat és az archiválandó oldalakhoz szükséges kimenő hozzáférést. Ellenőrizd, hogy a Shiori érthetően jelzi a hibát, nem károsítja a meglévő állapotot, és a helyes feltétel visszaállásakor folytatja a működést. Ments el egy redaktált logrészletet és a helyreállítási időt. Ezek az ellenőrzések együtt a viselkedést, a tartósságot és az üzemeltethetőséget fedik le, nem csupán a process uptime-ját.
A Shiori indítása megfigyelhető alapbeállításokkal
Tartsd a kezdeti Shiori-indítást annyira reprodukálhatónak, hogy pull requestben is felülvizsgálható legyen.
docker run -d \
--name shiori \
--restart unless-stopped \
-p 127.0.0.1:8080:8080 \
-v shiori-data:/shiori \
-e SHIORI_DIR=/shiori \
ghcr.io/go-shiori/shiori:latest
Valódi adatok megjelenése után ne hagyatkozz a latest tagre. Rögzítsd a működő digestet, a container usert és a mount tulajdonosát. Kövesd végig az alkalmazás logját egy teljes teszt során — ments el egy könyvjelzőt archivált tartalommal, keress rá, módosítsd a tageket, majd ellenőrizd, hogy az archívum akkor is elérhető marad-e, amikor a forrásoldal megváltozik —, és jegyezd fel az esetleges migrationöket, mielőtt a route production forgalmat kap.
Domainek, proxy headerek és a 8080-as port
Kezeld a külső Shiori-URL-t olyan konfigurációként, amely redeploy után is megmarad. Először egy stabil HTTPS originen keresztül route-old az UI-t és az API-t, majd irányítsd a hostnevet a 8080-as portra úgy, hogy az eredeti host és scheme változatlan maradjon.
A deployment reachability checklist bizonyíthatja, hogy a kérések belépnek a containerbe. Ezt követően a jól ismert hibát — az archiválás meghiúsul, mert a Chromium-függőségek vagy a fájlrendszer jogosultságai hibásak — a Shioriban, annak állapotában vagy workloadjában kell vizsgálni, nem pedig a certificate automationben.
A Shiori frissítése találgatás nélkül
A Shiori első hasznos operatív metrikája az, hogy képes-e elmenteni egy könyvjelzőt archivált tartalommal, rákeresni, módosítani a tageket, majd ellenőrizni, hogy az archívum akkor is elérhető marad, amikor a forrásoldal megváltozik. Ezt egészítsd ki a browser-based page capture, az archívum mérete, a thumbnailök és a kimenő lekérések saturation signaljaival. Egy kizárólag a processzt ellenőrző probe ne hívjon drága függőségeket, és ne indítsa újra a containert azért, mert egy upstream rövid időre elérhetetlenné vált.
Kezeld a frissítéseket adatváltozásként, mert a Shiori adatbázis-migrationjei és a page-capture függőségei módosíthatják az archiválás működését. Pineld a verziókat, gyakorold a folyamatot visszaállított állapoton, és tartsd elérhetően az előző image-et mindaddig, amíg a rollback érvényes marad. Ha az archiválás azért hiúsul meg, mert a Chromium-függőségek vagy a fájlrendszer jogosultságai hibásak, őrizd meg az újraindítás előtti logokat; ezek általában tartalmazzák a kiváltó hibaüzenetet.
Mit automatizáljon a Dockup a Shiorihoz?
A Shiori platformrétege a 8080-as portból, az ingressből, a TLS-ből, a runtime-konfigurációból, a storage-ból és a dependency reachabilityből áll. A Dockup ezeket a részeket reprodukálhatja a saját infrastruktúrájához vagy egy ügyfél által csatlakoztatott serverhez.
Ezután az üzemeltető befejezi a product layert: route-old az UI-t és az API-t stabil HTTPS originen keresztül; érvényesítsd ezt a hozzáférési szabályt — cseréld le a kezdeti fiókot, korlátozd a publikus megosztást, és kezeld az archivált privát URL-eket érzékeny tartalomként —; majd futtasd le a következőt: „ments el egy könyvjelzőt archivált tartalommal, keress rá, módosítsd a tageket, majd ellenőrizd, hogy az archívum akkor is elérhető marad-e, amikor a forrásoldal megváltozik”. Ha ezt a tesztet a deployment mellett rögzíted, nem kevered össze az automatizált provisioninget az alkalmazás readinessével.
Gyakran ismételt kérdések
Mire van szüksége a Shiorinak production deployment esetén?
Route-old a Shiori containert a 8080-as porton keresztül egyetlen HTTPS originen át. A külső kiszolgálás követelménye egy írható data volume és a hozzáférés az archiválandó oldalakhoz. Ne tekintsd késznek a Shiorit addig, amíg el nem tudsz menteni egy könyvjelzőt archivált tartalommal, rá nem tudsz keresni, nem tudod módosítani a tageket, és nem tudod ellenőrizni, hogy az archívum a forrásoldal megváltozása után is elérhető marad.
Mely Shiori-adatok kerüljenek backupba?
Tartsd persistent állapotban a /shiori útvonalat, és vedd fel az adatbázist, az archivált oldaltartalmat, a thumbnailöket és a konfigurációt ugyanabba a recovery manifestbe. A tiszta Shiori-restore csak akkor sikeres, ha a könyvjelzők, a tagek, az archívumfájlok és a fiókok visszatérnek, és egy már nem elérhető forráslink továbbra is megnyitja a mentett tartalmat.
Szüksége van a Shiorinak HTTPS-re reverse proxy mögött?
Használj HTTPS-t a publikus Shiori-originhez, a 8080-as portot pedig tartsd meg a belső route-on. Alkalmazd helyesen a Shiori-beállítást: route-old az UI-t és az API-t stabil HTTPS originen keresztül. A Shiori esetében a HTTPS védi a credentialöket és a felhasználói tartalmat az átvitel során, valamint egységesen kezeli az originfüggő kliensviselkedést.
Hogyan kell tesztelni egy Shiori-frissítést?
Állítsd vissza az aktuális Shiori-állapotot egy izolált deploymentbe, alkalmazd a candidate verziót, majd ismételd meg az acceptance tranzakciót. Különösen figyelj erre, mert a Shiori adatbázis-migrationjei és a page-capture függőségei módosíthatják az archiválás működését. Tartsd meg az előző Shiori image-et addig, amíg nem tisztázott az adatmigration és a rollback határa.
