Päiväkirjan hakemistoDockup / kenttämuistio
Note / self-host-kanboard

Kanboardin itsehostaus vuonna 2026: SQLite, liitännäiset ja turvalliset päivitykset

Käytännönläheinen opas Kanboardin itsehostaukseen: Docker, portit, pysyvä data, TLS, tietoturva, varmuuskopiot ja tuotantokäytön estävät ongelmat. Mukana tarkistukset.

Epäonnistunut Kanboard-deployment ei aina kaadu. Se saattaa näyttää kirjautumissivun, vaikka SQLite ei pysty kirjoittamaan, koska liitetyn datahakemiston omistaja on väärä. Aloita sen sijaan end-to-end-tarkistuksella: vaihda oletuskirjautumistiedot, luo projekti ja tehtävä, siirrä tehtävä sarakkeesta toiseen, lataa tiedosto ja testaa yhtä asennettua liitännäistä.

Tarkistus vastaa Kanboardin dokumentoitua käyttötarkoitusta: SQLite-tietokantaan perustuva minimaalinen kanban-taulu. Se paljastaa puuttuvat riippuvuudet, virheelliset proxy-oletukset ja katoavan datan aiemmin kuin uptime-tarkistus.

Erota Kanboard sen riippuvuuksista

Pienin vastuullinen Kanboard-topologia sisältää yhden yksityisen portin 80 kuuntelijan, ingress-reitin ja dokumentoidun tilarajan. Paikallinen runtime-vaatimus on kirjoitettava data volume ja valinnainen SMTP. Pidä elinkaari selkeänä, jotta Kanboardin siirtäminen hostilta toiselle ei muuta toimintaa huomaamatta.

Vahvista topologia pyytämällä puhdasta clientia vaihtamaan oletuskirjautumistiedot, luomaan projektin ja tehtävän, siirtämään tehtävän sarakkeesta toiseen, lataamaan tiedoston ja testaamaan yhtä asennettua liitännäistä. Seuraa SQLite-lockingia, liitetiedostojen volumea, taustatoimintoja ja liitännäisten toimintaa samanaikaisten käyttäjien alaisena. Tulos kertoo, kuuluuko seuraava parannus muistiin, tallennustilaan, verkotukseen vai erilliseen workeriin sen sijaan, että containerien kokoa kasvatettaisiin sattumanvaraisesti.

Domainit, proxy-headerit ja portti 80

TLS:n myöntäminen on vain puolet Kanboard-reitistä. Tarjoa taulu HTTPS:n kautta ja määritä application URL, jos liitännäiset tarvitsevat sitä. Ohjaa liikenne sisäisesti porttiin 80 ja välitä ulkoinen scheme, jotta generoidut URL-osoitteet ja secure cookiet pysyvät yhdenmukaisina.

Käytä koko Kanboard-skenaariota puhtaasta verkosta, älä pelkästään juurisivua. 502- tai certificate-virhe voidaan rajata automaattisella domain- ja TLS-asetuksella. Jos liikenne saavuttaa prosessin ja SQLite ei pysty kirjoittamaan, koska liitetyn datahakemiston omistaja on väärä, diagnosoi tilanne siinä kohdassa, jossa se tapahtuu, äläkä lisää redirecteja ongelman päälle.

Tee Kanboardin käynnistyksestä toistettava

Tuotantoa vastaava käynnistys on tarkoituksella tylsä: nimetty tila, eksplisiittinen portti eikä salaisuuksia imagen sisällä.

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

Esimerkki on lähtökohta, ei täydellinen supporting stack. Vahvista paikallinen vaatimus ennen julkaisua: kirjoitettava data volume ja valinnainen SMTP. Tarkista aktiiviset mountit ja kuuntelija, ja kokeile sitten oletuskirjautumistietojen vaihtamista, projektin ja tehtävän luomista, tehtävän siirtämistä sarakkeesta toiseen, tiedoston lataamista ja yhden asennetun liitännäisen testaamista. Pinnaa toimiva image ennen seuraavaa restartia.

Seuraa workloadia, älä vain containeria

Kanboardin tapauksessa seuraa transaktiota prosessin sijaan: vaihda oletuskirjautumistiedot, luo projekti ja tehtävä, siirrä tehtävä sarakkeesta toiseen, lataa tiedosto ja testaa yhtä asennettua liitännäistä. Yhdistä sen latenssi ja error rate SQLite-lockingiin, liitetiedostojen volumeen, taustatoimintoihin ja liitännäisten toimintaan samanaikaisten käyttäjien alaisena, jotta hälytys kertoo rajoittuneen komponentin.

Päivitysharjoituksen on katettava se, että database migrationit ja liitännäisten yhteensopivuus edellyttävät snapshotia ennen Kanboard-imagen päivitystä. Palauta, migroi ja suorita transaktio ennen tuotantokorvausta. Jos SQLite ei pysty kirjoittamaan, koska liitetyn datahakemiston omistaja on väärä, älä poista dataa saadaksesi startupin näyttämään onnistuneelta; vertaa tässä järjestyksessä versiota, muuttujia, mountteja ja riippuvuuksien saavutettavuutta.

Todista Kanboard-deployment end-to-end

Kanboardin production gagen pitää olla sellainen, että henkilö, joka ei rakentanut deploymentia, pystyy suorittamaan sen. Anna hänelle pinnattu versio, ei-arkaluonteinen testitili ja tämä tehtävä: vaihda oletuskirjautumistiedot, luo projekti ja tehtävä, siirrä tehtävä sarakkeesta toiseen, lataa tiedosto ja testaa yhtä asennettua liitännäistä. Jos ohjeet edellyttävät dokumentoimatonta shell-pääsyä, palvelu ei ole vielä operatiivisesti valmis.

Toista gate vaihtamalla vain container. Palauta sitten SQLite-tietokanta, ladatut tiedostot, liitännäiset ja konfiguraatio tyhjään infrastruktuuriin ja varmista, että projektit, tehtävähistoria, käyttäjät, liitetiedostot ja liitännäiset palautuvat ja että palautettu taulu hyväksyy uuden tehtävän. Mittaa SQLite-lockingia, liitetiedostojen volumea, taustatoimintoja ja liitännäisten toimintaa samanaikaisten käyttäjien alaisena molempien onnistuneiden ajojen aikana; odottamattomat erot paljastavat usein puuttuvan cachen, indeksin, workerin tai data mountin.

Lisää failure drill: lähetä vaaratonta syötettä lähellä tähän rajaan liittyvää resurssi- tai formaattirajaa: SQLite ei pysty kirjoittamaan, koska liitetyn datahakemiston omistaja on väärä. Kanboardin pitäisi antaa hyödyllinen virhe, säilyttää nykyinen tila ja palautua, kun kelvollinen ehto palaa voimaan. Tallenna aikaleimat ja olennaiset lokirivit sekä poista niistä salaisuudet. Tästä aineistosta tulee vertailukohta seuraavalle image- tai konfiguraatiomuutokselle.

Volumet ovat vasta ensimmäinen palautuskerros

Laadi Kanboardille recovery manifest: SQLite-tietokanta, ladatut tiedostot, liitännäiset ja konfiguraatio. Mounttaa /var/www/app/data ennen bootstrapia, kirjoita vaaratonta esimerkkidataa ja vaihda container varmistaaksesi, että polku on todella persistentti. Tarkista omistajuus ja vapaa tila nyt, koska mountattu mutta kirjoitussuojattu polku toimii käytännössä aivan kuin pysyvyyttä ei olisi lainkaan.

Varmuuskopioi erilliseen failure domainiin, joka ei ole sama kuin käynnissä oleva serveri. Luo Kanboard uudelleen sen pinnatusta imagesta ja varmista, että projektit, tehtävähistoria, käyttäjät, liitetiedostot ja liitännäiset palautuvat ja että palautettu taulu hyväksyy uuden tehtävän. Persistent volume -opas auttaa muuttamaan harjoituksen snapshot- ja retention policyksi.

Suojaa Kanboardin arvokas osa

Turvallinen Kanboard-deployment alkaa käyttöoikeuksien karsimisesta. Älä säilytä oletustunnuksia admin/admin, vaan poista admin/admin heti, rajoita projektien käyttöoikeuksia ja tarkista liitännäiset ennen kuin annat niille pääsyn tuotantodataan.

Kanboard ei vaadi tässä baseline-konfiguraatiossa pakollista bootstrap-salaisuutta; suojaa sen varsinainen administrator-tili tai upstream-autentikointi sen sijaan. Rajoita administrative routeja, käytä riippuvuuksille private DNS:ää ja tarkista jokainen bind mount. Kun lokit lähetetään keskitetysti, suodata salaisuudet ja yksityinen sisältö ennen niiden poistumista serveriltä.

Miten Dockup vähentää Kanboardin työmäärää

Dockup-templaten pitäisi sisältää image, portti 80, mountit, health timing, domain, TLS ja salaisuuksien toimitus. Dockupin pitäisi säilyttää Kanboardin runtime-asetukset samalla, kun operaattori vahvistaa tämän paikallisen vaatimuksen: kirjoitettava data volume ja valinnainen SMTP. Sama deployment voidaan kohdistaa Dockup-servereille tai asiakkaan liittämään kapasiteettiin.

Kun reitti on käytössä, ota public setting käyttöön ja kokeile oletuskirjautumistietojen vaihtamista, projektin ja tehtävän luomista, tehtävän siirtämistä sarakkeesta toiseen, tiedoston lataamista ja yhden asennetun liitännäisen testaamista. Varmuuskopioi SQLite-tietokanta, ladatut tiedostot, liitännäiset ja konfiguraatio ja pidä restore-harjoitus mukana käyttöönottosuunnitelmassa; nämä ovat Kanboardin vastuulla myös infrastruktuurin provisioinnin jälkeen.

Usein kysytyt kysymykset

Mitä Kanboard tarvitsee tuotantodeploymentiin?

Reititä Kanboard-container portissa 80 yhden HTTPS-originin kautta. Paikallinen runtime-vaatimus on kirjoitettava data volume ja valinnainen SMTP. Älä pidä Kanboardia valmiina ennen kuin pystyt vaihtamaan oletuskirjautumistiedot, luomaan projektin ja tehtävän, siirtämään tehtävän sarakkeesta toiseen, lataamaan tiedoston ja testaamaan yhtä asennettua liitännäistä.

Mitkä Kanboardin tiedot kuuluvat varmuuskopioon?

Säilytä /var/www/app/data ja sisällytä SQLite-tietokanta, ladatut tiedostot, liitännäiset ja konfiguraatio samaan recovery manifestiin. Puhdas Kanboard-restore onnistuu vasta, kun projektit, tehtävähistoria, käyttäjät, liitetiedostot ja liitännäiset palautuvat ja palautettu taulu hyväksyy uuden tehtävän.

Vaatiiko Kanboard HTTPS:n reverse proxyn takana?

Käytä julkisena Kanboard-originina HTTPS:ää ja pidä portti 80 sisäisellä reitillä. Määritä Kanboard-asetus oikein: tarjoa taulu HTTPS:n kautta ja määritä application URL, jos liitännäiset tarvitsevat sitä. Kanboardissa HTTPS suojaa tunnistetietoja tai käyttäjäsisältöä siirron aikana ja pitää originista riippuvan client-käyttäytymisen yhdenmukaisena.

Miten Kanboard-päivitys pitäisi testata?

Palauta nykyinen Kanboard-tila eristettyyn deploymentiin, ota candidate-versio käyttöön ja toista sen acceptance-transaktio. Kiinnitä erityistä huomiota siihen, että database migrationit ja liitännäisten yhteensopivuus edellyttävät snapshotia ennen Kanboard-imagen päivitystä. Säilytä edellinen Kanboard-image, kunnes sen data migration- ja rollback-raja ovat selvillä.