Siirry sisältöön

Varmuuskopiointi ja päivitys

Kaikki Lookun tiedot ovat yhdessä tiedostossa, looku.db, datakansiossa (LOOKU_DATA_DIR, oletuksena deploy/data). Asetukset ovat tiedostossa .env. Varmuuskopioi molemmat.

Älä kopioi tiedostoa looku.db, kun Looku on käynnissä: tavallinen kopio voi osua kesken kirjoituksen. Anna Lookun tehdä kopio:

Terminal window
docker compose run --rm ingest backup /data/backup-$(date +%F).db

Näet rivin Backup written to /data/backup-2026-11-03.db., jossa on tämän päivän päivämäärä. Tiedosto ilmestyy palvelimen datakansioon (kontin sisällä /data on sama kuin datakansio kontin ulkopuolella). Kopioi se muualle, esimerkiksi toiselle tietokoneelle tai varmuuskopiopalveluun. Samalla levyllä oleva varmuuskopio ei auta, jos levy hajoaa.

Kopiosta jätetään tarkoituksella pois päivän suola, joten kopion kävijätiivisteitä ei voi laskea uudelleen IP-osoitteesta.

Automaattinen päivittäinen varmuuskopio. Aja palvelimella crontab -e ja lisää rivi (omalla polullasi):

30 4 * * * cd /home/you/looku/deploy && docker compose run --rm -T ingest backup /data/backup-$(date +\%a).db >/dev/null

Näin säilyy yksi kopio kutakin viikonpäivää kohden (backup-Mon.db … backup-Sun.db), ja se korvaa edellisen viikon kopion. Crontabissa % pitää kirjoittaa muodossa \%. Jos tarvitset komennolle docker oikeudet sudo, käytä sen sijaan komentoa sudo crontab -e, jolloin ajo tehdään pääkäyttäjänä (root). Tarkista seuraavana päivänä, että ls data/ näyttää tiedoston.

Kopioi varmuuskopiot pois palvelimelta omalta tietokoneeltasi:

Terminal window
scp you@192.168.1.10:looku/deploy/data/backup-*.db .

Ilman Dockeria: LOOKU_DB=/var/lib/looku/looku.db npx looku backup /backups/looku.db.

Valitse ensin kopio. Listaa varmuuskopiot päivämäärineen kansiossa ~/looku/deploy:

Terminal window
cd ~/looku/deploy
ls -l data/

Aja sitten nämä niin, että viidennellä rivillä on valitsemasi tiedoston nimi backup-Mon.db:n tilalla:

Terminal window
docker compose stop ingest dashboard
sudo mv data/looku.db data/looku.db.broken
sudo rm -f data/looku.db-wal data/looku.db-shm
sudo cp data/backup-Mon.db data/looku.db
sudo chown 1000:1000 data/looku.db
docker compose start ingest dashboard

Tiedostot kuuluvat kontin käyttäjälle (1000), ja siksi tarvitaan sudo. Tarkista tulos: kirjaudu kojelautaan sillä salasanalla, joka oli voimassa varmuuskopion aikaan. Sivustot ja luvut ovat sellaiset kuin varmuuskopion päivänä. looku.db.broken säilytetään, kunnes olet tarkistanut kojelaudan. Poista se sen jälkeen. Sivunäytöt, jotka lähetetään Lookun ollessa pysäytettynä, menetetään, joten pidä katko lyhyenä. Koska kopiossa ei ole päivän suolaa, palautuspäivän kävijät voivat tulla lasketuiksi kahdesti.

Lue ensin muutosloki (CHANGELOG.md). Sitten:

Terminal window
cd ~/looku
git pull
cd deploy
docker compose pull
docker compose up -d

git pull päivittää Compose-tiedoston ja nämä ohjeet, docker compose pull lataa uusimman Looku 0.9.x:n, ja up -d korvaa kontit. Jos olet muuttanut Lookun koodia itse, aja kahden viimeisen komennon sijaan docker compose up -d --build. Uutta alaversiota (0.10) ei oteta automaattisesti, koska ennen versiota 1.0 se voi muuttaa asetuksia tai rajapintaa: lue sen muutosloki ja aseta sitten .env-tiedostoon LOOKU_VERSION=0.10. Vanha levykuva jää levylle nimettömänä; docker image prune poistaa tällaiset käyttämättömät levykuvat silloin tällöin (se kysyy ennen poistoa eikä koske levykuviin, joita kontit käyttävät). Tietokannan muutokset ajetaan itsestään, kun vastaanotin käynnistyy. Vastaanotin on poissa käytöstä muutaman sekunnin, ja sinä aikana lähetetyt sivunäytöt menetetään. Tarkista jälkeenpäin:

Terminal window
docker compose ps

Kaikkien konttien pitää olla tilassa Up, ja minuutin kuluttua ingest- ja dashboard-konttien tilassa pitää lukea (healthy).

Tunnelikontti (cloudflared) ei päivitä itseään. Tiedostossa .env asetus CLOUDFLARED_VERSION valitsee version. Tyhjä arvo tarkoittaa versiota latest ensimmäisen latauksen hetkellä. Päivitä asettamalla uudempi versio Cloudflaren julkaisuista (esimerkiksi 2026.10.7) tai jätä arvo tyhjäksi, ja aja:

Terminal window
docker compose --profile tunnel pull tunnel
docker compose --profile tunnel up -d tunnel

Tarkista Cloudflaren kojelaudasta (Networking → Tunnels), että tunneli on taas yhdistetty, ja tee curl-tarkistus kotipalvelinohjeesta.

Tekijästä