Joni Koskinen#

Ohjelmistokehittäjä | Homelab-harrastaja

Tampere • joni.m.koskinen@gmail.comgithub.com/jonizei


Rakennan vapaa-ajallani verkko- ja palvelininfrastruktuuria oppiakseni teknologioita, joita käytetään oikeissa tuotantoympäristöissä. Alla keskeisimmät projektini.


Homelab-infrastruktuuri#

pfSense-reititinverkko — koti & mökki#

Salattu site-to-site-verkko kahdelle kiinteistölle ilman kolmannen osapuolen pilvipalveluita.

pfSense IPSec VPN VLAN HAProxy Dynamic DNS Palomuurisäännöt

Halusin ohjata mökin ilmalämpöpumppua etänä ilman kaupallisia pilvisovelluksia, joten rakensin oman verkkoinfrastruktuurin sekä kotiin että mökille pfSense-palomuurireitittimillä mini-tietokoneilla. Yhdistin verkot IPSec site-to-site -tunnelilla ja segmentoin kotiverkon useisiin VLANeihin palvelimia, IoT-laitteita ja normaaleja laitteita varten. Julkinen liikenne ohjautuu oikeille sisäverkon palvelimille HAProxy reverse proxyn ja Namecheap Dynamic DNS:n kautta.

Haastavinta oli VLAN-reitityksen ja palomuurisääntöjen debuggaus — verkko saattoi näyttää oikealta, mutta liikenne ei silti kulkenut halutulla tavalla. Virheenjäljitys opetti konkreettisesti, miten paketit kulkevat verkkolaitteiden läpi.


XCP-ng Hypervisor & virtuaalipalvelimet#

Fyysinen palvelin, jolla pyörii useita eristettyjä virtuaalikoneita eri käyttötarkoituksiin.

XCP-ng Virtualisointi Nextcloud NAS

Asensin XCP-ng hypervisorin fyysiselle palvelimelle ja hallinnoin useita virtuaalikoneita sen päällä. Palvelut on eristetty omiin VM:iinsä, mikä mahdollistaa turvallisen testauksen ja selkeän palveluarkkitehtuurin. Nextcloud-palvelu pyörii omassa VM:ssään ja käyttää NAS-laitetta tiedostojen tallennukseen — ei julkiverkossa.


MicroK8s Kubernetes -klusteri#

Kubernetes-oppimisympäristö, johon siirretään Docker-palvelut vaiheittain.

Kubernetes MicroK8s Docker n8n

Asensin MicroK8s-klusterin erilliselle palvelimelle oppiakseni Kubernetes-orkestroinnin käytännössä. Ensimmäisenä palveluna asensin n8n-automaatiotyökalun suoraan klusteriin. Seuraavana vaiheena on siirtää Affine-muistiinpanosovellus ja oma todo-sovellus Dockerista klusteriin. Projekti on aktiivisessa kehitysvaiheessa.


Home Assistant — kodin automaatio#

Paikallinen IoT-automaatiojärjestelmä ilman ulkoisia pilvipalveluita.

Home Assistant IoT IPSec VPN

Asensin Home Assistantin kotiverkkoon hallitakseni IoT-laitteita paikallisesti ilman kolmannen osapuolen pilvisovelluksia. Ilmalämpöpumpun integrointi onnistui ja etäohjaus toimii mökin verkon yli IPSec-tunnelin kautta. Kokonaisuus ei vielä toimi täysin halutulla tavalla — kehitys jatkuu.


Ohjelmistoprojektit#

IoT-kasvihuonejärjestelmä#

Full-stack IoT-järjestelmä kasvihuoneen etäseurantaan ja -ohjaukseen — mikrokontrollerista selaimeen.

ESP32 Raspberry Pi Python Angular TypeScript C++ HTTP IoT

GitHub  |  Opinnäytetyö, Tampereen ammattikorkeakoulu 2022

Toteutin opinnäytetyönäni kokonaisen IoT-järjestelmän, joka mittaa kasvihuoneen lämpötilaa, kosteutta ja valoisuutta sekä mahdollistaa pistorasioiden etäohjauksen selaimesta. ESP32- mikrokontrolleri kommunikoi HTTP-yhteydellä Raspberry Pi -palvelimelle, jonka Python-backend, Angular/TypeScript-frontend ja ESP32:n C++-koodi välittää tiedot selainpohjaiselle käyttöliittymälle.

Suurin haaste ei ollut koodissa vaan fysiikassa: antureiden saaminen toimimaan luotettavasti vaati paljon säätämistä kytkentöjen kanssa. Kun fyysinen kerros saatiin kuntoon, ohjelmistopuoli eteni nopeasti — ESP32-kirjastot ovat hyvin dokumentoituja ja antureiden integrointi oli suoraviivaista.


VentX / HuuvaX — 3D-suunnittelutuoteperhe#

Selainpohjainen 3D-suunnittelusovellus ilmanvaihtolaitteiden ja keittiöhuuvien sijoitteluun — tuotantokäytössä.

Java Spring Boot TypeScript Three.js

Dicode Oy | 2022–nykyhetki

Kehitin osana 2–4 hengen tiimiä kahta tuotantokäytössä olevaa 3D-suunnittelusovellusta: VentX ilmanvaihtolaitteille ja HuuvaX keittiöhuuville. Molemmat toimivat selaimessa ja perustuvat Spring Boot -backendiin sekä TypeScript + Three.js -frontendiin. Vastasin sovelluskehityksestä full-stack-roolissa.

Teknisesti haastavinta oli ilmavirran fysiikan ymmärtäminen ja sen simulointi 3D-maailmassa — tuli opetella sekä alan termistöä että sitä, miten fysiikan lait käyttäytyvät Three.js-ympäristössä. Sovellukset ovat tuotantokäytössä.