NaplóindexDockup / terepjegyzet
Note / self-host-kanboard

A Kanboard saját üzemeltetése 2026-ban: SQLite, pluginek és biztonságos frissítések

Gyakorlati útmutató a Kanboard saját üzemeltetéséhez Dockerrel, portokkal, perzisztens adatokkal, TLS-sel, biztonsággal, biztonsági mentésekkel és a production használatot akadályozó hibákkal. Ellenőrzésekkel.

Egy sikertelen Kanboard-deployment nem feltétlenül omlik össze. Előfordulhat, hogy a bejelentkezési oldal működik, miközben az SQLite nem tud írni, mert a csatolt adatkönyvtár tulajdonosa nem megfelelő. Ehelyett kezdj end-to-end ellenőrzéssel: cseréld le az alapértelmezett bejelentkezést, hozz létre egy projektet és egy feladatot, mozgasd át a feladatot az oszlopok között, tölts fel egy fájlt, és próbálj ki egy telepített plugint.

Ez az ellenőrzés megfelel a Kanboard dokumentált céljának: SQLite által támogatott, minimalista kanban tábla. Emellett hamarabb feltárja a hiányzó függőségeket, a hibás proxy-feltételezéseket és az efemer adatokat, mint egy egyszerű uptime-ellenőrzés.

Válaszd külön a Kanboardot és a függőségeit

A felelősen kialakított legkisebb Kanboard-topológia egyetlen, a 80-as porton működő privát figyelőt, egy ingress útvonalat és egy dokumentált állapothatárt tartalmaz. A helyi futtatási követelmény egy írható adatvolume és opcionálisan SMTP. Tartsd explicit módon kézben az életciklusát, hogy a Kanboard hostok közötti áthelyezése ne módosítsa észrevétlenül a működését.

A topológiát úgy validáld, hogy egy tiszta klienssel lecseréled az alapértelmezett bejelentkezést, létrehozol egy projektet és egy feladatot, áthelyezed a feladatot az oszlopok között, feltöltesz egy fájlt, és kipróbálsz egy telepített plugint. Futás közben figyeld az SQLite-lockolást, a csatolmányok volume-ját, a háttérműveleteket és a plugin viselkedését párhuzamosan dolgozó felhasználók mellett. Az eredmény megmutatja, hogy a következő fejlesztésnek a memóriában, a tárolásban, a hálózatban vagy egy külön workerben van-e a helye, ahelyett hogy találomra növelnéd a konténer méretét.

Domainek, proxy headerek és a 80-as port

A TLS kiállítása csak a Kanboard útvonalának egyik fele. A táblát HTTPS-en szolgáld ki, és állítsd be az alkalmazás URL-jét, ha a pluginek igénylik. A forgalmat belsőleg a 80-as portra irányítsd, és továbbítsd a külső sémát, hogy a generált URL-ek és a biztonságos cookie-k konzisztensek maradjanak.

A teljes Kanboard-szcenáriót tiszta hálózatról ellenőrizd, ne csak a gyökéroldalt. A 502-es hiba vagy a tanúsítványhiba elkülönítésében segíthet az automatikus domain- és TLS-beállítás. Ha a forgalom eléri a processt, az SQLite pedig nem tud írni, mert a csatolt adatkönyvtár tulajdonosa nem megfelelő, akkor ott diagnosztizáld a problémát, ahol jelentkezik, ahelyett hogy újabb átirányításokat építenél egymásra.

Tedd reprodukálhatóvá a Kanboard indítását

Egy production jellegű indítás szándékosan unalmas: névvel ellátott állapot, explicit port és semmilyen secret az image-ben.

docker run -d \
  --name kanboard \
  --restart unless-stopped \
  -p 127.0.0.1:80:80 \
  -v kanboard-data:/var/www/app/data \
  kanboard/kanboard:latest

A példa kiindulási alap, nem pedig teljes supporting stack. A publikussá tétel előtt erősítsd meg a helyi követelményt: egy írható adatvolume-ot és opcionálisan SMTP-t. Ellenőrizd a tényleges mountokat és a figyelőt, majd próbáld lecserélni az alapértelmezett bejelentkezést, hozz létre egy projektet és egy feladatot, mozgasd át a feladatot az oszlopok között, tölts fel egy fájlt, és próbálj ki egy telepített plugint. A következő újraindítás előtt pineld a működő image-verziót.

A workloadot figyeld, ne csak a konténert

Kanboard esetén egy tranzakciót figyelj folyamat helyett: cseréld le az alapértelmezett bejelentkezést, hozz létre egy projektet és egy feladatot, mozgasd át a feladatot az oszlopok között, tölts fel egy fájlt, és próbálj ki egy telepített plugint. A késleltetést és a hibaarányt kombináld az SQLite-lockolással, a csatolmányok volume-jával, a háttérműveletekkel és a plugin viselkedésével párhuzamosan dolgozó felhasználók mellett, hogy a riasztás azonosítani tudja a korlátozott komponenst.

A frissítés próbájának ki kell terjednie arra, hogy az adatbázis-migrációk és a plugin-kompatibilitás miatt snapshot szükséges egy Kanboard-image frissítése előtt. Állítsd vissza az adatokat, futtasd le a migrációt, majd éles csere előtt hajtsd végre a tranzakciót. Ha az SQLite nem tud írni, mert a csatolt adatkönyvtár tulajdonosa nem megfelelő, ne töröld az adatokat csak azért, hogy zöld legyen az indítás; ebben a sorrendben hasonlítsd össze a verziót, a változókat, a mountokat és a függőségek elérhetőségét.

Bizonyítsd a Kanboard-deployment működését end-to-end

A Kanboard production gate-jét olyan személynek is végre kell tudnia hajtani, aki nem építette a deploymentet. Add át neki a pinelt verziót, egy nem érzékeny tesztfiókot és ezt a feladatot: cserélje le az alapértelmezett bejelentkezést, hozzon létre egy projektet és egy feladatot, mozgassa át a feladatot az oszlopok között, töltsön fel egy fájlt, és próbáljon ki egy telepített plugint. Ha az utasítások nem dokumentált shell-hozzáférést igényelnek, a szolgáltatás operatív szempontból még nem áll készen.

Ismételd meg a gate-et úgy, hogy csak a konténert cseréled le. Ezután állítsd vissza az SQLite-adatbázist, a feltöltött fájlokat, a plugineket és a konfigurációt üres infrastruktúrába, majd bizonyítsd, hogy visszatérnek a projektek, a feladatelőzmények, a felhasználók, a csatolmányok és a pluginek, illetve a visszaállított tábla elfogad egy új feladatot. A két sikeres futás során mérd az SQLite-lockolást, a csatolmányok volume-ját, a háttérműveleteket és a plugin viselkedését párhuzamosan dolgozó felhasználók mellett; a váratlan eltérések gyakran hiányzó cache-re, indexre, workerre vagy adatmount-ra utalnak.

Egészítsd ki egy hibagyakorlattal: küldj ártalmatlan bemenetet az erőforrás- vagy formátumkorlát közelében, amely ehhez a határfeltételhez kapcsolódik: az SQLite nem tud írni, mert a csatolt adatkönyvtár tulajdonosa nem megfelelő. A Kanboardnak hasznos hibát kell kiadnia, meg kell őriznie a meglévő állapotot, és helyre kell állnia, amikor a helyes feltétel visszatér. Mentsd el az időbélyegeket és a releváns logbejegyzéseket, a secret értékek kitakarásával. Ez a bizonyíték lesz a következő image- vagy konfigurációmódosítás referenciája.

A volume-ok csak a helyreállítás első rétegét jelentik

Készíts helyreállítási manifestet a Kanboardhoz: SQLite-adatbázis, feltöltött fájlok, pluginek és konfiguráció. A bootstrap előtt mountold a /var/www/app/data könyvtárat, írj bele ártalmatlan mintaadatokat, majd cseréld le a konténert annak bizonyítására, hogy az útvonal valóban perzisztens. Most ellenőrizd a tulajdonost és a szabad helyet, mert egy mountolt, de nem írható útvonal gyakorlatilag ugyanúgy viselkedik, mintha egyáltalán nem lenne perzisztencia.

A biztonsági mentéseket a futó szervertől különálló failure domainbe készítsd. Hozd létre újra a Kanboardot a pinelt image-ből, majd ellenőrizd, hogy visszatérnek a projektek, a feladatelőzmények, a felhasználók, a csatolmányok és a pluginek, illetve a visszaállított tábla elfogad egy új feladatot. A perzisztens volume-okról szóló útmutató segít ezt a gyakorlatot snapshot- és retention-szabályzattá alakítani.

Védd a Kanboard értékes részét

A biztonságos Kanboard-deployment a jogosultságok csökkentésével kezdődik. Ne hagyd meg az alapértelmezett admin/admin hitelesítő adatokat; ehelyett azonnal távolítsd el az admin/admin hozzáférést, korlátozd a projekt-hozzáférést, és production adatokhoz való hozzáférés engedélyezése előtt vizsgáld át a plugineket.

Ebben az alapkonfigurációban a Kanboardnak nincs kötelező bootstrap secretje; helyette a tényleges adminisztrátori fiókot vagy a külső hitelesítést védd. Korlátozd az adminisztrációs útvonalakat, használj privát DNS-t a függőségekhez, és vizsgálj át minden bind mountot. Ha a logokat központilag továbbítod, szűrd ki a secret értékeket és a privát tartalmakat, mielőtt elhagyják a szervert.

Ahol a Dockup munkát vesz át a Kanboard esetében

Egy Dockup-template-nek tartalmaznia kell az image-et, a 80-as portot, a mountokat, a health timing beállításait, a domaint, a TLS-t és a secret-továbbítást. A Dockupnak meg kell őriznie a Kanboard runtime-beállításait, miközben az üzemeltető megerősíti ezt a helyi követelményt: egy írható adatvolume-ot és opcionálisan SMTP-t. Ugyanaz a deployment használható Dockup-szervereken vagy ügyfél által csatolt kapacitáson.

Az útvonal élesítése után alkalmazd a publikus beállítást, majd próbáld lecserélni az alapértelmezett bejelentkezést, hozz létre egy projektet és egy feladatot, mozgasd át a feladatot az oszlopok között, tölts fel egy fájlt, és próbálj ki egy telepített plugint. Készíts biztonsági mentést az SQLite-adatbázisról, a feltöltött fájlokról, a pluginekről és a konfigurációról, és tartsd a helyreállítási gyakorlatot az üzemeltetési tervben; ezek a Kanboard felelősségi körébe tartoznak, és az infrastruktúra provisioningje után is láthatók maradnak.

Gyakran ismételt kérdések

Mire van szüksége a Kanboardnak production deploymenthez?

A Kanboard-konténert egyetlen HTTPS-originon keresztül irányítsd a 80-as portra. A helyi futtatási követelmény egy írható adatvolume és opcionálisan SMTP. Ne tekintsd késznek a Kanboardot addig, amíg le nem tudod cserélni az alapértelmezett bejelentkezést, létre nem tudsz hozni egy projektet és egy feladatot, át nem tudod mozgatni a feladatot az oszlopok között, fel nem tudsz tölteni egy fájlt, és ki nem tudsz próbálni egy telepített plugint.

Mely Kanboard-adatoknak kell szerepelniük a biztonsági mentésben?

Tedd perzisztenssé a /var/www/app/data könyvtárat, és ugyanabba a helyreállítási manifestbe vedd fel az SQLite-adatbázist, a feltöltött fájlokat, a plugineket és a konfigurációt. A tiszta Kanboard-restore csak akkor sikeres, ha visszatérnek a projektek, a feladatelőzmények, a felhasználók, a csatolmányok és a pluginek, illetve a visszaállított tábla elfogad egy új feladatot.

Szüksége van a Kanboardnak HTTPS-re reverse proxy mögött?

A publikus Kanboard-originhez használj HTTPS-t, a belső útvonalon pedig tartsd meg a 80-as portot. Helyesen alkalmazd a Kanboard-beállítást: HTTPS-en szolgáld ki a táblát, és állítsd be az alkalmazás URL-jét, ha a pluginek igénylik. A Kanboard esetében a HTTPS védi a hitelesítő adatokat és a felhasználói tartalmakat az átvitel során, valamint konzisztensen tartja az originfüggő kliensviselkedést.

Hogyan kell tesztelni egy Kanboard-frissítést?

Állítsd vissza a jelenlegi Kanboard-állapotot egy izolált deploymentbe, alkalmazd a jelölt verziót, majd ismételd meg az elfogadási tranzakciót. Különösen figyelj arra, hogy az adatbázis-migrációk és a plugin-kompatibilitás miatt snapshot szükséges egy Kanboard-image frissítése előtt. Tartsd meg az előző Kanboard-image-et addig, amíg nem tisztázott annak adat-migrációs és rollback-határa.