2. Ensimmäinen asennus kotipalvelimelle
Tässä oppaassa asennat Lookun oikeasti, kotipalvelimelle, ja annat sille julkisen osoitteen, johon sivustosi voi lähettää sivunäytöt. Kun olet valmis, Looku odottaa sivustoasi, jonka liität seuraavassa oppaassa.
Siihen menee noin tunti. Jos teit ohjeen 1. Kokeile Lookua omalla koneellasi, ensimmäinen puolisko näyttää tutulta: se on sama Docker-asennus.
Suunnitelma
Osio nimeltä “Suunnitelma”Lookussa on kaksi osaa, joilla on eri tehtävät:
- Vastaanotin ottaa vastaan sivunäytöt sivustosi palvelimelta. Sivustosi on jossain internetissä, joten
vastaanotin tarvitsee julkisen osoitteen, esimerkiksi
https://looku.example.com. - Kojelaudalta luet luvut. Vain sinä tarvitset sitä, joten se pysyy kotiverkossasi, esimerkiksi
osoitteessa
http://192.168.1.10:8788.
Jotta vastaanotin saa julkisen osoitteen avaamatta kotireititintäsi, käytämme Cloudflare Tunnelia: pieni ohjelma
palvelimellasi pitää yhteyden auki Cloudflareen, ja Cloudflare välittää osoitteeseen looku.example.com tulevat
pyynnöt sitä pitkin. Cloudflare myös pysäyttää kaiken, mikä ei ole sivunäyttö, ennen kuin se päätyy kotiisi.
Mitä tarvitset
Osio nimeltä “Mitä tarvitset”- Linux-kotipalvelimen, jossa on Docker ja Git: vanhan tietokoneen, minitietokoneen tai Raspberry Pi 4:n tai
uudemman. Jos Dockeria ei ole vielä asennettu, asenna se
Dockerin ohjeen mukaan omalle Linuxillesi. Git:
sudo apt install git. - Verkkotunnuksen Cloudflaressa, esimerkiksi
example.com. Cloudflare-tili on ilmainen; verkkotunnus maksaa noin 10 € vuodessa. Jos verkkotunnuksesi on toisella yrityksellä, lisää se ensin Cloudflareen Cloudflaren sivuston lisäysohjeen mukaan. Siihen voi mennä muutama tunti, joten aloita ajoissa. - Oman tietokoneesi samassa kotiverkossa. Kirjoitat sillä komennot ja käytät selainta.
Korvaa alla olevissa komennoissa 192.168.1.10 palvelimesi osoitteella, example.com verkkotunnuksellasi ja
myblog sivustosi lyhyellä nimellä. Näytämme, miten löydät palvelimen osoitteen.
Osa 1: Yhteys palvelimelle
Osio nimeltä “Osa 1: Yhteys palvelimelle”-
Avaa pääte omalla tietokoneellasi (Windowsissa PowerShell, macOS:ssä ja Linuxissa pääte) ja ota yhteys palvelimeen
ssh-komennolla. Käytä käyttäjänimeäsi palvelimella:Terminal window ssh you@192.168.1.10Ensimmäisellä kerralla se kysyy, luotatko palvelimeen. Kirjoita
yes. Sitten se kysyy salasanaasi. Kun kehotteessa (rivin alussa, johon kirjoitat komennon) näkyy palvelimen nimi, jokainen kirjoittamasi komento ajetaan palvelimella.Etkö tiedä palvelimen osoitetta? Aja
hostname -Ipalvelimella itsellään (näppäimistön ja näytön kanssa). Ensimmäinen numero, joka alkaa192.168.tai10., on yleensä oikea. Pyydä reititintäsi antamaan palvelimelle aina tämä osoite (reitittimen asetuksissa “DHCP-varaus”). Muuten osoite voi jonain päivänä vaihtua, eikä kojelauta silloin käynnisty. -
Tarkista, että Docker toimii:
Terminal window docker compose versiondocker psEnsimmäisen pitäisi tulostaa
Docker Compose version v2.…tai suurempi numero, toisen otsikkorivi, joka alkaaCONTAINER ID. Jos näetpermission denied, lisääsudojokaisen tämän ohjeendocker-komennon eteen.
Osa 2: Asenna Looku
Osio nimeltä “Osa 2: Asenna Looku”-
Lataa Looku kotikansioosi:
Terminal window cd ~git clone https://github.com/niemenjoki/Looku.git lookucd looku/deployOlet nyt
deploy-kansiossa. Kaikki tämän ohjeendocker compose-komennot ajetaan tässä. -
Kirjoita asetukset. Kopioi esimerkki ja avaa se
nanolla, yksinkertaisella tekstieditorilla päätteessä:Terminal window cp .env.example .envnano .envLiiku nuolinäppäimillä ja muuta nämä kolme riviä (jätä muut ennalleen):
LOOKU_TIMEZONE=Europe/HelsinkiLOOKU_DASHBOARD_BIND=192.168.1.10LOOKU_API_HOSTS=192.168.1.10:8788Mitä ne tarkoittavat:
LOOKU_TIMEZONE: aikavyöhykkeesi. Yöajo ja kuukausisähköposti noudattavat sitä.LOOKU_DASHBOARD_BIND: mistä kojelaudan voi avata. Palvelimesi kotiverkon osoite tarkoittaa: vain kotoa.LOOKU_API_HOSTS: osoite, jonka kirjoitat selaimeen. Kojelauta torjuu muut osoitteet. Se suojaa kojelautaa tempulta, jossa haitallinen verkkosivu yrittää päästä kotiverkkosi laitteisiin.
Tallenna painamalla Ctrl+O ja Enter, ja poistu painamalla Ctrl+X.
-
Luo kansio tiedoille. Kaikki Lookun tiedot tulevat yhteen tiedostoon tässä kansiossa:
Terminal window mkdir -p datasudo chown 1000:1000 dataJälkimmäinen komento antaa kansion käyttäjälle, jona Looku toimii kontin sisällä.
sudokysyy salasanaasi. -
Käynnistä Looku:
Terminal window docker compose up -dEnsimmäinen kerta kestää muutaman minuutin. Lopussa näkyvät rivit
Container looku-ingest-1 StartedjaContainer looku-dashboard-1 Started. Looku käynnistyy nyt itsestään aina, kun palvelin käynnistyy uudelleen. Tarkista minuutin päästä komennolladocker compose ps: kummankin kohdalla pitäisi lukeaUpja(healthy). -
Lisää sivustosi:
Terminal window docker compose run --rm ingest site:add myblog --domain example.com --timezone Europe/Helsinki--domainon sivustosi osoite ilmanhttps://-alkua (www.-alun kanssa tai ilman; Looku käsittelee ne samana). Looku vastaa sivuston allekirjoitusavaimella:Site myblog added. Signing key (shown once):k8Jd2mQx7RfTn4WcZp1LvB9sHy6GaE0uYoXiN5tCw3ETallenna avain nyt salasanojen hallintaohjelmaasi. Sivustosi allekirjoittaa jokaisen sivunäytön sillä, ja Looku hyväksyy vain allekirjoitetut sivunäytöt. Jos hukkaat avaimen,
docker compose run --rm ingest site:rotate-key myblogluo uuden. -
Valitse kojelaudan salasana (vähintään 10 merkkiä):
Terminal window docker compose run --rm -it ingest admin:passwordKirjoita se kysymyksen
New dashboard password:perään ja paina Enter. Mitään ei näy kirjoittaessasi, ja salasana kysytään vain kerran. Se vastaaPassword set. Restart `looku serve` to end existing logins.Dockerissa “restartlooku serve” tarkoittaa komentoadocker compose restart dashboard; tarvitset sitä vain, kun vaihdat salasanan myöhemmin. -
Avaa kojelauta omalla tietokoneellasi:
http://192.168.1.10:8788. Kirjaudu sisään.

Kojelauta on vielä tyhjä. Se täyttyy, kun sivustosi alkaa lähettää sivunäyttöjä.
Jos sivu ei aukea tai siinä lukee
Unknown host, tarkista.env-tiedoston kolme riviä, ajadocker compose up -d(se ottaa.env-tiedoston muutokset käyttöön) ja katso Vianetsintä.
Osa 3: Julkinen osoite vastaanottimelle
Osio nimeltä “Osa 3: Julkinen osoite vastaanottimelle”Tämä osa tehdään enimmäkseen Cloudflaren kojelaudassa selaimessa. Cloudflare muuttaa valikkojaan aika ajoin, joten jokaisessa vaiheessa on valikon nimi ja hakusana. (Tarkistettu marraskuussa 2026.)
-
Luo tunneli. Kirjaudu osoitteessa dash.cloudflare.com, siirry kohtaan Networking → Tunnels (hakusana: “Tunnels”) ja valitse Create a tunnel. Anna nimeksi
lookuja valitse Create Tunnel. -
Kopioi tunnelin tunnus (token). Cloudflare näyttää nyt, miten tunneliohjelma asennetaan eri järjestelmiin. Valitse Docker. Älä aja sen näyttämää komentoa: Lookussa on jo tunneliohjelma. Kopioi vain pitkä teksti
--token-sanan jälkeen (se alkaaeyJ). Se on salaisuus, kuten salasana. Pidä tämä sivu auki. -
Anna tunnus Lookulle. Palvelimen päätteessä. (Jos palaat tähän myöhemmin, ota ensin uudelleen yhteys komennolla
ssh you@192.168.1.10ja ajacd ~/looku/deploy.)Terminal window nano .envSiirry viimeiselle riville,
LOOKU_TUNNEL_TOKEN=, ja liitä tunnus heti=-merkin perään (päätteessä liitetään hiiren oikealla painikkeella tai Ctrl+Shift+V). Tallenna ja poistu. -
Käynnistä tunneli:
Terminal window docker compose --profile tunnel up -dNäet tekstin
Container looku-tunnel-1 Started. Tunneli on erillinen kontti, joka käynnistyy vain, kun pyydät sitä valinnalla--profile tunnel. -
Palaa Cloudflareen sivulle, jolta kopioit tunnuksen. Tunnelin pitäisi näkyä yhdistettynä (healthy) minuutin kuluessa. (Cloudflare kutsuu tunneliohjelmaa nimellä “connector”.) Valitse Continue. Tunneliin pääset aina takaisin kohdasta Networking → Tunnels valitsemalla sen nimen.
-
Ohjaa osoitteesi vastaanottimeen. Avaa tunnelin Routes-välilehti ja valitse Add route → Published application. Täytä:
Kenttä Arvo Subdomain lookuDomain example.comPath jätä tyhjäksi Service URL http://ingest:8787Valitse Add route. Cloudflare luo osoitteen
looku.example.comverkkotunnukseesi itse. Siihen tulevat pyynnöt kulkevat nyt tunnelin kautta vastaanottimelle, jonka nimi Dockerin sisällä oningest.
Osa 4: Päästä läpi vain sivunäytöt
Osio nimeltä “Osa 4: Päästä läpi vain sivunäytöt”Sivustosi lähettää vastaanottimelle täsmälleen kahdenlaisia pyyntöjä: POST-pyyntöjä osoitteeseen /ingest
(sivunäytöt) ja osoitteeseen /orders (verkkokaupan tilaukset). Pyydetään Cloudflarea estämään kaikki muu, jotta
mikään muu ei koskaan päädy kotiisi.
-
Avaa Cloudflaren kojelaudassa verkkotunnuksesi (
example.com). -
Siirry kohtaan Security → Security rules (hakusana: “Security rules”) ja valitse Create rule → Custom rules.
-
Anna säännölle nimi
Looku: only POST /ingest and /orders. -
Valitse kohdan When incoming requests match alta Edit expression ja liitä tämä niin, että
looku.example.com-osoitteen tilalla on oma osoitteesi:(http.host eq "looku.example.com" and not (http.request.method eq "POST" and http.request.uri.path in {"/ingest" "/orders"}))Selkokielellä: “pyyntö osoitteeseen looku.example.com, joka ei ole POST-pyyntö osoitteeseen /ingest tai /orders”.
-
Valitse kohdan Then take action alta Block ja valitse Deploy.
Testaa omalla tietokoneellasi. Anna säännölle ensin minuutti aikaa:
curl -s -o /dev/null -w "%{http_code}\n" -X POST https://looku.example.com/ingestcurl -s -o /dev/null -w "%{http_code}\n" https://looku.example.com/curl.exe -s -o NUL -w "%{http_code}\n" -X POST https://looku.example.com/ingestcurl.exe -s -o NUL -w "%{http_code}\n" https://looku.example.com/| Ensimmäinen | Toinen | Mitä se tarkoittaa |
|---|---|---|
401 |
403 |
Oikein. Testisi pääsi vastaanottimelle, joka torjui sen, koska sitä ei ollut allekirjoitettu, ja Cloudflare esti toisen pyynnön. |
403 |
Sääntö estää myös vastaanottimen. Tarkista osan 4 lauseke. | |
502 tai 530 |
Tunneli ei saa yhteyttä vastaanottimeen. Katso Vianetsintä. |
Valmista tuli
Osio nimeltä “Valmista tuli”Looku toimii palvelimellasi. Vastaanottimella on julkinen osoite, joka ottaa vastaan vain allekirjoitetut sivunäytöt, ja kojelautaan pääsee vain kotoa. Kirjoita muistiin kolme asiaa, jotka sivustosi tarvitsee:
LOOKU_ENDPOINT=https://looku.example.comLOOKU_SITE_ID=myblogLOOKU_SIGNING_KEY=osan 2 avainSeuraavaksi: 3. Liitä sivustosi ja lue ensimmäiset lukusi.
Ota myöhemmin käyttöön varmuuskopiot. Jos haluat avata kojelaudan kodin ulkopuolella, katso Tailscale.