Jinsi ya kusakinisha Chaptarr kwenye VPS yako
Chaptarr inachukua nafasi ya Readarr iliyostaafu mwaka 2025. Jifunze kusanidi huduma hii kupitia Docker Compose, kurekebisha PUID na PGID, na kutatua hitilafu ya metadata.
Chaptarr ni nini, na kwa nini watumiaji wa Readarr wanaihitaji
Chaptarr ni fork ya Readarr inayodhibiti audiobooks na ebooks kutoka kwenye instance moja. Hufuatilia releases mpya, huzituma kwenye download client yako, kisha hubadilisha majina ya matokeo na kuyaweka katika library yako. Haichezi chochote, kwa hiyo iunganishe na player kama Audiobookshelf.
Readarr ilisitishwa tarehe 27 June 2025. Tangazo la timu ya Servarr linaeleza sababu: metadata ya mradi ilikuwa imekuwa isiyoweza kutumika, na juhudi za jamii za kuhamia Open Library zilikwama. Repository imehifadhiwa bila kuendelezwa. Hilo liliacha collections za vitabu na audiobooks bila manager anayodumishwa, na Chaptarr ikachukua kazi hiyo. Inahifadhi muundo unaoujua kutoka Sonarr na Radarr (indexers, download clients, quality profiles, root folders) na kuongeza utunzaji wa audiobooks: mpangilio unaozingatia narrator, editions nyingi za title moja, support ya M4B na MP3 zenye chapters, pamoja na conversion ya MP3 kuwa M4B.
Mwongozo huu ulitumia image tag chaptarr/chaptarr:0.9.925, ambayo ilikuwa release mpya zaidi tarehe 9 August 2026. Kufikia tarehe 11 October 2026, release mpya zaidi ni 0.9.965, iliyochapishwa tarehe 27 September 2026. Hatua zilizo hapa chini zilijaribiwa kwenye 0.9.925 pekee, kwa hiyo files zimebaki na tag hiyo; soma release notes kabla ya kuhamia kwenye toleo jipya. Chaptarr inajiita beta software. Soma sehemu ya maintenance iliyo karibu na mwisho kabla ya kuiunganisha na library ambayo huwezi kuirejesha.
Unachohitaji kabla ya kuanza
VPS inayoendesha Docker na Compose plugin, pamoja na nafasi ya kutosha ya diski kwa maktaba. Vitabu vya sauti vina ukubwa mkubwa, na import isiyoweza kutumia hardlinks huhifadhi nakala mbili za faili kwa muda. Sehemu ya volume hapa chini inaeleza jambo hili. Ikiwa Docker bado haipo kwenye seva, anza na Docker imewekwa na inaendeshwa kwenye VPS, kisha urudi hapa.
Kwa sasa Chaptarr inapatikana kama Docker image pekee. Usaidizi wa native umeorodheshwa kuwa unaendelea, huku experimental Windows build ikipangwa, na hakuna distribution package. Container huhifadhi database yake katika /config kwa kutumia SQLite kwa chaguo-msingi. Inaweza pia kutumia PostgreSQL server ya nje kupitia environment variables za Chaptarr__Postgres__* ikiwa tayari unaendesha moja. SQLite ndiyo chaguo linalofaa kwa mtumiaji mmoja kwenye seva moja.
Huduma ya Compose kwa ajili ya Chaptarr
Huduma hii inaingia kwenye stack iliyopo. Inatumia tag iliyotolewa, inachapisha web UI kwenye loopback pekee, na inaunganisha kwenye mtandao ambao mteja wako wa kupakua (download client) anautumia.
services:
chaptarr:
image: chaptarr/chaptarr:0.9.925
container_name: chaptarr
environment:
- PUID=1000
- PGID=1000
- UMASK=002
- TZ=Europe/Berlin
volumes:
- ./config:/config
- /srv/media/audiobooks:/audiobooks
- /srv/media/ebooks:/ebooks
- /srv/media/downloads:/downloads
ports:
- 127.0.0.1:8789:8789
restart: unless-stopped
networks:
- arr
networks:
arr:
external: trueMstari wa external: true unamaanisha "mtandao huu tayari upo, jiunge nao". Itumie wakati Prowlarr na mteja wako wa torrent wanatoka kwenye mradi mwingine wa Compose, kwa sababu faili la pili la Compose huunda mtandao wake uliotengwa na Chaptarr haitaweza kutatua qbittorrent kwa jina. Pata jina halisi kutoka docker network ls. Ikiwa stack yako iko kwenye faili moja tayari, ongeza huduma ya chaptarr: kwenye faili hilo na ufute kizuizi chote cha networks: badala yake. Mpangilio mpana zaidi umeelezwa katika stack kamili ya arr chini ya Docker Compose, na kanuni za utoaji majina katika jinsi mitandao ya Compose na majina ya huduma yanavyotatuliwa.
Unda saraka ya usanidi (config directory) mwenyewe, kisha uianzishe.
mkdir -p ./config
sudo chown 1000:1000 ./config
docker compose up -d
docker compose ps
docker compose logs -f chaptarrdocker compose ps inapaswa kuonyesha container kama Up. Container iliyoorodheshwa kama Restarting imeshindwa kuanza na inajaribiwa tena, na sababu karibu kila mara ni saraka ya usanidi. Log huacha kusonga mara tu programu inaposikiliza kwenye port 8789.
PUID, PGID na saraka ambayo Docker huunda kama root
Chaptarr hutumia PUID=99 na PGID=100 kwa chaguo-msingi unapoziacha bila kuwekwa. Hizo ni thamani za unRAID, na kwenye Ubuntu VPS ya kawaida zinamilikiwa na nobody asiye na manufaa, kwa hiyo faili huundwa zikiwa na mmiliki ambaye akaunti yako haiwezi kuandikia. Soma nambari zako kwa id -u na id -g, kisha ziweke kwenye faili.
Kila container inayogusa faili zilezile inahitaji jozi hiyo hiyo. Mteja wa upakuaji huandika kwenye /srv/media/downloads, Chaptarr huhamisha faili hadi /srv/media/audiobooks, na player huisoma hapo. Mteja wa upakuaji akiandika kama 1000:1000 huku Chaptarr ikiendesha kama 99:100, uingizaji hushindikana. Umiliki wa faili si unaoamua jambo hilo: kuunda, kubadilisha jina au kufuta faili kunahitaji ruhusa ya kuandika kwenye saraka inayolihifadhi. Saraka zilizoundwa na user 1000 zikiwa na mode ya kawaida ya 755 humzuia 99:100 kuandika, kwa hiyo Chaptarr haiwezi kuweka kitabu kwenye library wala kukiondoa kwenye downloads. UMASK=002 hufanya faili mpya ziweze kuandikwa na group, ambalo ndilo unalohitaji wakati containers kadhaa zinashiriki media group moja. Ramani kamili ipo kwenye jinsi PUID na PGID zinavyomweka mtumiaji wa container kwenye faili za host.
README inaonya kuhusu tatizo moja mahususi, na ni muhimu kulirudia. Ikiwa ./config haipo unapoendesha docker compose up, Docker huiunda kwa ajili yako ikiwa inamilikiwa na root:root. Kisha container huendesha kama UID 1000 na haiwezi kuandika database yake, kwa hiyo huacha kufanya kazi na kuanza upya bila kikomo. Thibitisha kwa ls -ln ./config, ambayo huchapisha wamiliki kwa nambari badala ya majina. Sufuri mbili humaanisha kuwa root ndiye mmiliki. Rekebisha kwa sudo chown -R 1000:1000 ./config kisha uanze container tena.
Kwa nini ujazo tofauti wa audiobook na ebook hugharimu hardlinks
Mpangilio hapo juu huweka /audiobooks, /ebooks na /downloads kama binds tofauti, kulingana na amri ya uendeshaji ya mradi wenyewe. Ni rahisi kusoma, na ina gharama moja halisi: hardlinks huacha kufanya kazi.
Hardlink ni jina la pili la data ileile kwenye diski. Haitumii nafasi ya ziada na ni ya papo hapo, ndiyo maana familia ya arr huipendelea kuliko kunakili. Hardlink hufanya kazi ndani ya filesystem moja pekee. Ndani ya container hizi ni sehemu tatu tofauti za mount, kwa hivyo kernel hukataa link hiyo hata kama njia za host ziko kwenye diski moja. Jipime mwenyewe.
docker exec chaptarr sh -c 'touch /downloads/linktest && ln /downloads/linktest /audiobooks/linktest'Amri hiyo inafeli na hitilafu inayoishia na Invalid cross-device link. Hiyo ni kernel inayokataa kuunganisha (link) kwenye sehemu tofauti za mount, na ndiyo sababu hasa Chaptarr hurudi kwenye kunakili faili. Nakala hiyo ni sahihi lakini ni ya polepole, na audiobook kisha huwepo mara mbili hadi utakapofuta torrent, jambo ambalo hutalifanya wakati bado una-seed. Futa /srv/media/downloads/linktest baadaye.
Ili kuhifadhi hardlinks, weka saraka moja kuu (parent directory) badala yake:
volumes:
- ./config:/config
- /srv/media:/dataKisha weka root folders ndani ya Chaptarr kuwa /data/audiobooks na /data/ebooks, na upe download client mount ileile ya /srv/media:/data ili container zote mbili zione njia moja inayofanana. Thibitisha kwanza kuwa upande wa host ni filesystem moja: df -h /srv/media/downloads /srv/media/audiobooks lazima ichapishe thamani ileile kwenye safu ya Filesystem kwa zote mbili. Thamani tofauti inamaanisha diski tofauti, na hakuna mpangilio wa mount unaoweza kufanya hardlink kuvuka diski hizo. Uwiano kati ya njia hii na named storage umejadiliwa katika bind mounts dhidi ya named volumes kwa ajili ya media.
Kufikia kiolesura cha wavuti bila kukiweka hadharani
Mstari wa port huchapisha kwenye 127.0.0.1 kwa sababu maalum. ufw deny 8789 haikulindi port ya Docker iliyochapishwa, kwa sababu Docker huandika sheria zake za NAT (network address translation) kwenye mnyororo ambao kernel huufikia kabla ya ufw, hivyo trafiki husambazwa kabla ya sheria yako kuangaliwa. Tabia hiyo huwashangaza watu mara kwa mara, na inaelezwa katika kwa nini port ya Docker iliyochapishwa hupuuza sheria zako za ufw. Kujifunga kwenye loopback huiepuka hali hiyo kabisa.
Fikia kiolesura hicho kupitia SSH tunnel kutoka kwenye mashine yako:
ssh -N -L 8789:127.0.0.1:8789 you@your-serverIache hiyo ikiendelea kufanya kazi na ufungue http://127.0.0.1:8789 kwenye kivinjari chako. Sanidi uthibitishaji (authentication) wakati wa kuanza kwa mara ya kwanza. Baada ya hapo ndipo unapaswa kufikiria kutumia reverse proxy yenye TLS (transport layer security) mbele yake. Mara tu unapokuwa ukitumia tunnel kufikia zana tatu au nne za aina hii ukiwa na nenosiri tofauti kwa kila moja, jibu nadhifu zaidi ni kuweka proxy nyuma ya seva ya single sign-on inayojiendesha yenyewe kama vile Authentik, ili login moja ifunike kila programu na ubatilishaji mmoja uifunge yote.
Unganisha indexers na mteja wa kupakua
Chaptarr inatumia itifaki za kawaida za indexer na mteja wa kupakua za arr, kwa hivyo Prowlarr inasukuma indexers ndani yake kama inavyofanya kwa Sonarr, na wateja wa kawaida wa torrent na usenet huunganishwa bila kuhitaji hatua maalum.
Kuna mpangilio mmoja ambao huwakwaza karibu watu wote. Chaptarr inapouliza host ya mteja wa kupakua, usichape localhost au 127.0.0.1. Ndani ya container, anwani hiyo ni container yenyewe, kwa hivyo Chaptarr hujaribu kuongea na port yake yenyewe ya 8080 na kuripoti kuwa haiwezi kuunganishwa. Tumia jina la container, qbittorrent, pamoja na port 8080. Thibitisha kuwa container zote mbili ziko kwenye mtandao mmoja kwa kutumia docker network inspect arr, ambayo huorodhesha kila container iliyounganishwa kwa jina lake.
Ikiwa mteja wako wa kupakua anaendeshwa kupitia container ya VPN na network_mode: "service:gluetun", haina jina lake kwenye mtandao, kwa sababu inashiriki namespace ya mtandao ya Gluetun. Ielekeze kama gluetun kwenye port ambayo Gluetun inafungua. Mpangilio huo, na routing inayoambatana nao, iko kwenye routing a download client through Gluetun.
Kikwazo cha Readarr: gharama halisi ya kuhama
Chaptarr haioani na vyanzo vya metadata vya Readarr. Inatafuta majina ya vitabu, waandishi na matoleo kupitia mfumo wake wa ndani unaotumia watoa huduma mbalimbali, kwa hivyo vitambulishi vilivyohifadhiwa na Readarr havina maana hapa. Hakuna uwezekano wa kuingiza database (import) wala njia ya moja kwa moja ya kuboresha (upgrade).
Kwa maktaba iliyopo, hii inamaanisha kuwa faili zako ziko salama lakini mipangilio si salama. Hakuna hatua yoyote katika mchakato huu inayogusa faili zilizopo kwenye diski. Unaongeza folda kuu (root folder), unafanya import ya maktaba, na Chaptarr inalinganisha faili inazozipata na metadata yake yenyewe. Mambo unayopaswa kujenga upya kwa mikono ni: quality profiles, muundo wa majina (naming format), mipangilio ya indexer na client, pamoja na kila kitabu ambacho Chaptarr imekosea kukilinganisha. Maktaba kubwa itahitaji muda wa kufanya marekebisho ya mikono, kwa hivyo tenga jioni nzima badala ya dakika kumi.
Fuata utaratibu huu. Simamisha container ya Readarr lakini usifute volume yake ya config, ili uweze kusoma mipangilio yako ya zamani wakati unaiandika upya. Elekeza Chaptarr kwenye folda moja ndogo kwanza na uhakiki ulinganifu kabla ya kuingiza kila kitu. Ondoa container ya zamani pale tu utakapokuwa umeridhika.
Kuna jambo moja la faragha unalopaswa kulijua kabla ya kuchanganua maktaba nzima: utafutaji wa metadata unaelekezwa kwenye api2.chaptarr.com. README inaeleza kuwa maombi hayo yanaweza kubeba vitambulishi vya mtoa huduma, maandishi ya utafutaji, aina ya maudhui, vitambulisho (tags) na majina ya faili, na kwamba hayajumuishi njia kamili za faili (full paths), utambulisho wa mtumiaji au nywila. Majina ya faili yanatoka nje ya seva yako. Hilo ni jambo la kawaida kwa huduma ya metadata, na bado unapaswa kuliamua kwa makusudi.
Kukabidhi vitabu vya sauti kwa kichezaji
Chaptarr hupanga faili. Uchezaji wa faili hizo ni kazi ya programu nyingine, na Audiobookshelf ndiyo mshirika wa kawaida kwa sababu hufuatilia nafasi yako ya kusikiliza kwenye vifaa mbalimbali na ina programu za simu. Image yake rasmi ni ghcr.io/advplyr/audiobookshelf:latest, na mfano wake wa Compose uliowekwa kwenye nyaraka huchapisha port ya seva 13378 kwenye port ya container 80.
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
ports:
- 127.0.0.1:13378:80
volumes:
- ./abs/config:/config
- ./abs/metadata:/metadata
- /srv/media/audiobooks:/audiobooks
environment:
- TZ=Europe/Berlin
restart: unless-stoppedMount njia ileile ya seva ambayo Chaptarr huandikia, kisha ongeza /audiobooks kama maktaba ndani ya web UI. Import mpya itaonekana baada ya scan inayofuata.
Ikiwa tayari unatumia Jellyfin, unaweza kuongeza folda hiyo kama maktaba huko na itacheza faili hizo, ingawa uwezo wa kuendelea kusikiliza (resume) kwenye faili moja ndefu ya kitabu cha sauti ni dhaifu kuliko seva iliyoundwa mahususi kwa ajili ya vitabu vya sauti. Usanidi wa upande huo umeelezwa katika kuendesha Jellyfin kama media server kwenye VPS. Kwa upande wa vitabu vya kielektroniki, kabidhi /srv/media/ebooks kwa programu ya kusomea; kazi ya Chaptarr huishia pale faili inapopewa jina na kuhifadhiwa.
Hatari ya matengenezo: leseni, runtime na tag inayobadilika haraka
Chaptarr ina leseni ya GPL-3.0, na hakimiliki iko kwa wachangiaji wa Chaptarr pamoja na sehemu kutoka kwa timu ya Servarr. Kwa hiyo, msimbo unabaki wazi, na mtu yeyote anaweza kuifanyia fork tena ikiwa maintainer huyu ataacha. Inatumia .NET 10, ambao ni toleo la sasa la long term support la runtime kufikia Agosti 2026. Hii inamaanisha msingi wake utasaidiwa kwa miaka badala ya miezi. Mambo haya yote mawili ni muhimu unapotathmini kama mradi huu bado utakuwepo mwaka ujao.
Nambari za matoleo zinabadilika haraka. 0.9.925 ilichapishwa tarehe 9 Agosti 2026, na matoleo mengine matano yalifuata katika wiki saba zilizofuata. Kila toleo hadi 0.9.958 lilichapishwa kama pre-release. Toleo la 0.9.965, lililochapishwa tarehe 27 Septemba 2026, ndilo la kwanza lililowekwa alama kuwa full release. Funga tag maalum. Kutumia latest kunamaanisha kuwa docker compose pull isiyohitaji uangalizi inaweza kukupeleka kwenye matoleo kadhaa ndani ya wiki moja. Fork iliyo changa kiasi hiki inaweza kubadilisha API yake kati ya matoleo, na hivyo kuvunja script au dashboard yoyote uliyoandika kwa kuitumia. Kufunga toleo ni tabia inayofaa kutumia kwenye kila mradi mchanga unaojiendeshea, ndiyo maana mwongozo wa kuendesha openGym kama tracker ya mazoezi inayojihudumia unasakinisha kutoka kwenye git tag maalum kwa sababu hiyo hiyo.
Fanya backup kabla ya kila upgrade, kisha fanya upgrade kwa makusudi.
docker compose stop chaptarr
sudo tar czf chaptarr-config-backup.tgz ./config
docker compose start chaptarrdocker compose pull chaptarr
docker compose up -d chaptarrMradi unaripoti kuwa hakuna matukio ya kupotea kwa data katika kipindi cha takribani miezi sita na kwa zaidi ya watumiaji elfu kumi na moja. Hata hivyo, bado unapendekeza kuweka backups na kutoiunganisha na library ambayo huwezi kumudu kuipoteza. Zingatia kwa uzito sehemu zote mbili. Nakili config archive nje ya seva, kwa sababu backup iliyo kwenye disk ileile na kitu inacholinda si backup. Tarball hiyo moja inatosha kwa sababu Chaptarr huhifadhi hali yake kwenye SQLite file moja chini ya /config. Kitu chochote kilicho kwenye database server tofauti kinahitaji database itolewe pia; huo ndio muundo unaotumiwa na hatua ya backup unapojihudumia Chatwoot kwenye VPS pamoja na data yake ya Postgres na files zilizopakiwa kupitia kujisimamia Chatwoot kwenye VPS.
Njia za kushindwa kufanya kazi, pamoja na ujumbe utakaouona
Container inajianzisha upya kwa mzunguko. docker compose ps inaonyesha Restarting. Tekeleza ls -ln ./config. Sifuri mbili katika safu za mmiliki inamaanisha Docker ilitengeneza saraka hiyo kama root na mtumiaji wa container hawezi kuandika kwenye database yake. Tekeleza sudo chown -R 1000:1000 ./config.
Uingizaji (imports) haukamiliki na faili zinabaki kwenye downloads. Chaptarr inaweza kusoma download lakini haiwezi kuandika kwenye library. Linganisha ls -ln /srv/media/audiobooks na PUID pamoja na PGID yako. Saraka inayomilikiwa na UID tofauti, au inayomilikiwa na kundi lako bila ruhusa ya kuandika kwa kundi, inazuia uhamishaji. UMASK=002 inazuia kisa cha pili kwa faili mpya.
Matumizi ya diski yanaongezeka maradufu baada ya kila uingizaji. Hakuna hardlink iliyoundwa, kwa hivyo faili ilinakiliwa. Tekeleza jaribio la ln kutoka sehemu ya volumes. Hitilafu inayoishia na Invalid cross-device link inathibitisha hili, na mount ya mzazi mmoja (single-parent mount) ndiyo suluhisho.
Mteja wa kupakua (download client) hataki kuunganishwa. Uliingiza localhost kama host. Ndani ya container hiyo ni Chaptarr yenyewe. Tumia jina la container na uhakikishe docker network inspect arr inaorodhesha container zote mbili.
Compose inakataa kuanzisha huduma. Bind for 127.0.0.1:8789 failed: port is already allocated inamaanisha kuna kitu kingine kinachoshikilia port hiyo. Kitafute kwa kutumia sudo ss -lntp | grep 8789.
Kivinjari hakionyeshi chochote. Kwa port iliyofungwa kwenye 127.0.0.1, hakuna kitu cha laptop yako kuunganishwa nacho kupitia mtandao. Hiyo ndiyo hali iliyokusudiwa. Fungua SSH tunnel kwanza.
FAQ
Je, ninaweza kuhamisha maktaba yangu ya Readarr kwenda Chaptarr?
Si kama uagizaji wa moja kwa moja. Chaptarr haioani na vyanzo vya metadata vya Readarr na hutumia pipeline yake ya watoa huduma. Kwa hiyo, vitambulisho vilivyohifadhiwa na Readarr havina maana hapa, na hakuna ubadilishaji wa database. Faili zako kwenye diski hazitaguswa. Ongeza paths zilezile kama root folders, endesha library import, kisha iache Chaptarr ilinganishe faili yenyewe. Quality profiles, naming format, indexer settings na matches zisizo sahihi zinahitaji kushughulikiwa mwenyewe. Kwa hiyo, anza na folder moja ndogo kabla ya kuagiza kila kitu.
Kwa nini Chaptarr haiwezi kuandika kwenye folder yangu ya audiobook?
Mtumiaji wa container hana ruhusa ya kuandika kwenye directory hiyo. Kwa kawaida, container inaendeshwa kwa UID tofauti na ile ya mmiliki wa directory. Chaptarr hutumia PUID=99 na PGID=100 ikiwa variables hizo hazijawekwa. Hizo ni values za unRAID na si sahihi kwenye Ubuntu VPS ya kawaida. Ziweke kuwa id -u na id -g zako, tumia jozi hiyo hiyo kwenye download client, na uweke UMASK=002 ili faili mpya zibaki zinaweza kuandikwa na group. Kagua umiliki kwa kutumia ls -ln kwenye directory ya maktaba. Amri hiyo huonyesha namba badala ya majina, hivyo unaweza kuzilinganisha.
Kwa nini matumizi ya diski yangu yaliongezeka mara mbili baada ya import?
Chaptarr ilinakili faili kwa sababu haikuweza kuunda hardlink. Kuweka /downloads na /audiobooks kama binds tofauti huzifanya kuwa mount points tofauti ndani ya container. Kernel hukataa hardlink inayovuka mount points kwa kutumia Invalid cross-device link. Mount parent directory moja kama /srv/media:/data, kisha tumia /data/downloads na /data/audiobooks ndani ya app. Paths zote mbili lazima pia ziwe kwenye filesystem moja ya host. df -h inathibitisha hilo.
Je, Chaptarr hucheza audiobooks zangu?
Hapana. Chaptarr huzitafuta, huzipakua, huzipa majina mapya na kuzipanga kwenye mafaili. Playback hushughulikiwa na programu tofauti. Audiobookshelf hutumiwa mara nyingi pamoja nayo kwa sababu huhifadhi nafasi yako ya kusikiliza kwenye vifaa mbalimbali. Tumia image rasmi ghcr.io/advplyr/audiobookshelf:latest na u-mount audiobook path hiyo hiyo ya host. Jellyfin pia itacheza faili hizo ukiongeza folder kama library, lakini resume behaviour yake ni dhaifu zaidi kwenye audiobooks ndefu zilizo kwenye faili moja.
Je, ni salama kuendesha Chaptarr kwenye maktaba ninayoithamini?
Ni beta software kutoka kwenye fork mpya, na mradi wenyewe unasema hivyo. Pia unaripoti kuwa hakujawa na matukio ya kupotea kwa data kwa takribani miezi sita miongoni mwa watumiaji zaidi ya elfu kumi na moja. Vipengele vya kutia moyo ni licence ya GPL-3.0, inayowezesha code kuendelezwa kupitia fork, pamoja na base ya .NET 10, ambayo ni long term support runtime kufikia August 2026. Tumia image tag kamili kama 0.9.925 badala ya latest. Fanya backup ya /config kabla ya kila upgrade, na uhifadhi archive hiyo nje ya server.