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

Kako samostalno hostati Kanboard u 2026.: SQLite, pluginovi i sigurne nadogradnje

Praktičan vodič za samostalno hostanje Kanboarda koji obuhvaća Docker, portove, trajne podatke, TLS, sigurnost, sigurnosne kopije i probleme koji onemogućuju korištenje u produkciji. Uz provjere.

Neuspješna implementacija Kanboarda ne mora se uvijek srušiti. Može prikazivati stranicu za prijavu dok SQLite ne može zapisivati jer montirani podatkovni direktorij ima pogrešnog vlasnika. Umjesto toga započnite provjerom cijelog toka: zamijenite zadane podatke za prijavu, izradite projekt i zadatak, premjestite ga između stupaca, prenesite datoteku i testirajte jedan instalirani plugin.

Ta provjera odgovara dokumentiranoj namjeni Kanboarda: minimalna kanban ploča koju pokreće SQLite. Također ranije otkriva nedostajuće ovisnosti, pogrešne pretpostavke o proxyju i ephemeral podatke nego što to može učiniti uptime probe.

Odvojite Kanboard od njegovih ovisnosti

Najmanja odgovorna topologija Kanboarda sastoji se od jednog privatnog listenera na portu 80, ingress rute i dokumentirane granice stanja. Lokalni runtime zahtijeva writable data volume i opcionalni SMTP. Njegov lifecycle držite eksplicitnim kako premještanje Kanboarda između hostova ne bi neprimjetno promijenilo ponašanje.

Provjerite topologiju tako da clean clientu zadate zamjenu zadanih podataka za prijavu, izradu projekta i zadatka, premještanje između stupaca, prijenos datoteke i testiranje jednog instaliranog plugina. Dok radi, pratite SQLite locking, attachment volume, background actions i ponašanje plugina pod istodobnim korisnicima. Rezultat pokazuje pripada li sljedeće poboljšanje memoriji, storageu, networkingu ili zasebnom workeru, umjesto da potiče proizvoljno povećavanje resursa containera.

Domene, proxy headeri i port 80

Izdavanje TLS-a samo je polovica Kanboardove rute. Poslužujte ploču preko HTTPS-a i postavite URL aplikacije ako ga pluginovi trebaju. Interno usmjerite promet na port 80 i proslijedite vanjsku shemu kako bi generirani URL-ovi i secure cookies ostali usklađeni.

Pokrenite cijeli Kanboardov scenarij iz clean networka, a ne samo provjeru root stranice. Pogrešku 502 ili problem s certifikatom možete izolirati pomoću automatskog postavljanja domene i TLS-a. Ako promet dolazi do procesa, a SQLite ne može zapisivati jer montirani podatkovni direktorij ima pogrešnog vlasnika, dijagnosticirajte taj uvjet tamo gdje se pojavljuje, umjesto da slažete dodatne redirekcije.

Učinite pokretanje Kanboarda reproducibilnim

Pokretanje nalik produkcijskom namjerno je jednostavno: imenovano stanje, eksplicitni port i nijedna tajna vrijednost unutar imagea.

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

Primjer je temelj, a ne kompletan supporting stack. Prije izlaganja provjerite lokalni zahtjev: writable data volume i opcionalni SMTP. Provjerite effective mounts i listener, a zatim pokušajte zamijeniti zadane podatke za prijavu, izraditi projekt i zadatak, premjestiti ga između stupaca, prenijeti datoteku i testirati jedan instalirani plugin. Prije sljedećeg restarta fiksirajte image koji radi.

Pratite workload, a ne samo container

Za Kanboard nadzirite transaction, a ne proces: zamijenite zadane podatke za prijavu, izradite projekt i zadatak, premjestite ga između stupaca, prenesite datoteku i testirajte jedan instalirani plugin. Njegove latencije i error rate kombinirajte sa SQLite lockingom, attachment volumeom, background actions i ponašanjem plugina pod istodobnim korisnicima kako bi alert identificirao ograničenu komponentu.

Rehearsal nadogradnje mora obuhvatiti činjenicu da database migrations i kompatibilnost plugina zahtijevaju snapshot prije ažuriranja Kanboard imagea. Vratite podatke iz sigurnosne kopije, provedite migraciju i pokrenite transaction prije zamjene u produkciji. Ako SQLite ne može zapisivati jer montirani podatkovni direktorij ima pogrešnog vlasnika, nemojte brisati podatke kako bi startup izgledao uspješno; usporedite verziju, varijable, mountove i dostupnost ovisnosti tim redoslijedom.

Dokažite ispravnost implementacije Kanboarda od početka do kraja

Production gate za Kanboard mora moći provesti osoba koja nije izradila implementaciju. Dajte joj pinned version, nesenzitivni testni račun i ovaj zadatak: zamijeniti zadane podatke za prijavu, izraditi projekt i zadatak, premjestiti ga između stupaca, prenijeti datoteku i testirati jedan instalirani plugin. Ako upute zahtijevaju nedokumentirani shell access, servis još nije operativno spreman.

Ponovite gate nakon zamjene samo containera. Zatim vratite SQLite bazu, prenesene datoteke, pluginove i konfiguraciju u praznu infrastrukturu te dokažite da su se projekti, povijest zadataka, korisnici, privici i pluginovi vratili i da obnovljena ploča prihvaća novi zadatak. Tijekom oba uspješna pokretanja mjerite SQLite locking, attachment volume, background actions i ponašanje plugina pod istodobnim korisnicima; neočekivane razlike često otkrivaju nedostajući cache, index, worker ili data mount.

Dodajte drill za kvar: pošaljite bezopasan unos blizu limita resursa ili formata povezanog s ovom granicom: SQLite ne može zapisivati jer montirani podatkovni direktorij ima pogrešnog vlasnika. Kanboard bi trebao ispisati korisnu pogrešku, sačuvati postojeće stanje i oporaviti se kada se vrati ispravan uvjet. Spremite vremenske oznake i relevantne retke logova, uz uklonjene tajne. Ti dokazi postaju referenca za sljedeću promjenu imagea ili konfiguracije.

Volumei samo su prvi sloj oporavka

Izradite recovery manifest za Kanboard: SQLite bazu, prenesene datoteke, pluginove i konfiguraciju. Montirajte /var/www/app/data prije bootstrapa, zapišite bezopasne ogledne podatke i zamijenite container kako biste dokazali da je taj path zaista trajan. Odmah provjerite vlasništvo i slobodan prostor jer montirani, ali unwritable path u praksi znači isto što i potpuni izostanak persistencea.

Sigurnosne kopije spremajte u failure domain odvojen od pokrenutog servera. Ponovno izradite Kanboard iz pinned imagea i provjerite jesu li se projekti, povijest zadataka, korisnici, privici i pluginovi vratili te prihvaća li obnovljena ploča novi zadatak. Vodič za persistent volumee pomaže tu vježbu pretvoriti u snapshot i retention policy.

Zaštitite vrijedan dio Kanboarda

Sigurna implementacija Kanboarda počinje uklanjanjem ovlasti. Nemojte zadržati zadane vjerodajnice admin/admin; umjesto toga odmah uklonite admin/admin, ograničite pristup projektima i pregledajte pluginove prije nego što im dodijelite produkcijske podatke.

Kanboard u ovom baselineu nema obaveznu bootstrap tajnu; zaštitite njegov stvarni administratorski račun ili upstream autentikaciju. Ograničite administratorske rute, koristite private DNS za ovisnosti i pregledajte svaki bind mount. Kada se logovi šalju centralno, filtrirajte tajne i privatni sadržaj prije nego što napuste server.

Gdje Dockup uklanja dio posla za Kanboard

Dockup template trebao bi kodirati image, port 80, mountove, health timing, domenu, TLS i isporuku tajni. Dockup bi trebao zadržati Kanboardove runtime postavke dok operator potvrđuje ovaj lokalni zahtjev: writable data volume i opcionalni SMTP. Ista implementacija može ciljati Dockup servere ili kapacitet koji je priključio korisnik.

Nakon što ruta proradi, primijenite javnu postavku i pokušajte zamijeniti zadane podatke za prijavu, izraditi projekt i zadatak, premjestiti ga između stupaca, prenijeti datoteku i testirati jedan instalirani plugin. Izradite sigurnosnu kopiju SQLite baze, prenesenih datoteka, pluginova i konfiguracije te vježbu obnove uključite u operativni plan; to su odgovornosti Kanboarda koje ostaju vidljive i nakon provisioninga infrastrukture.

Često postavljana pitanja

Što je Kanboardu potrebno za produkcijsku implementaciju?

Usmjerite Kanboard container na portu 80 kroz jedan HTTPS origin. Lokalni runtime zahtijeva writable data volume i opcionalni SMTP. Nemojte Kanboard smatrati spremnim dok ne možete zamijeniti zadane podatke za prijavu, izraditi projekt i zadatak, premjestiti ga između stupaca, prenijeti datoteku i testirati jedan instalirani plugin.

Koji Kanboardovi podaci pripadaju sigurnosnoj kopiji?

Učinite /var/www/app/data trajnim i u isti recovery manifest uključite SQLite bazu, prenesene datoteke, pluginove i konfiguraciju. Čista obnova Kanboarda uspješna je samo kada se vrate projekti, povijest zadataka, korisnici, privici i pluginovi te obnovljena ploča prihvati novi zadatak.

Zahtijeva li Kanboard HTTPS iza reverse proxyja?

Za javni Kanboardov origin koristite HTTPS, a port 80 zadržite na internoj ruti. Ispravno primijenite Kanboardovu postavku: poslužujte ploču preko HTTPS-a i postavite URL aplikacije ako ga pluginovi trebaju. Za Kanboard HTTPS štiti vjerodajnice ili korisnički sadržaj tijekom prijenosa i održava dosljednim ponašanje klijenta osjetljivo na origin.

Kako testirati nadogradnju Kanboarda?

Vratite trenutačno stanje Kanboarda u izoliranu implementaciju, primijenite verziju kandidata i ponovite acceptance transaction. Obratite posebnu pozornost na to da database migrations i kompatibilnost plugina zahtijevaju snapshot prije ažuriranja Kanboard imagea. Zadržite prethodni Kanboard image dok ne razumijete granice migracije podataka i rollbacka.