10. Sep 2021 |

Tee endale vanast arvutist server

Kui ma oleksin teadnud, et enda serveri tegemine on nii lihtne, siis ilmselt oleksin seda teinud juba varem.

Otsides kohta, kust enda arenduse asjadeks pisike VPS võtta, jõudsin selleni, et tegin (esialgu) enda vanast riiulis seisvast Dell XPS13 läpakast Linuxi serveri. 2011 mudel, i5-2467M, 4GB RAM, 512 SSD (dual masin boot, millest osa on Win7 all). See seisab ka serverina 99% ajast ilma koormuseta.

Nüüd mõtlen, et peaks võibolla läpaka Raspberry Pi 4B‘ga asendama (komplekt läheks kuskil 145 eurot). Kui kellegi on pakkuda, siis anna märku 🙂 Update: Hetkel tundub hea mõte, et ma sellega ei kiirustanud. ARM protsessoril ei tööta Docker normaalselt (viide) nii et kui üldse, siis pigem mõni Inteliga NUC või mini-PC (nt IBMi ThinkCentre).

Mul on kodus kõige tavalisem Elisa 50/10 internet ja meeldivaks üllatuseks on kõik public IP pordid lahti. Public IP’le päringuid tehes saan enda serverile ligi. Jah, see on aeglane 😀 Kui Zone annab VPSile 1 Gbit/s sisenev ja 100 Mbit/s väljuv liiklus, siis minu puhul on need hetkel vastavalt 20x ja 10x pisemad. Aga andmebaasipäringuteks piisab küll.

Kuna mul zone.ee’s on ka mõne domeenid registreeritud, siis tegin ühele neist A-kirje ja nii ei pea ma enda IP’d meeles pidama. Kuna IP ei ole staatiline, siis IP muutumisel, piisab A-kirje uuendamisest.

Mis mul seal on

Operatsioonisüsteemina on serveris Ubuntu Desktop 18.04.5 LTS (sest juba ammu installitud). Kõik asjad, mis serveris jooksevad on Dockeri konteinerina.

Esimene asi, mille tööle püüdsin saada oli see, et IP’le päringu tehes avaneks kõige tavalisem nginx (hääldatakse nagu “engine X”) Welcome Page. Piisas sellest, kui:

  • Docker on installitud (snap install docker või snap remove docker eemaldamiseks)
  • nginxi kontener käivitada docker run --name nginx_container --rm -d -p 8080:80 nginx (viide). –rm tähendab, et kui teed docker stop containerId, siis konteiner kustutatakse ära.
  • Ruuteris teha port forward sisse tuleva public IP port 80 mappida sisemises võrgus oleva seadme (ehk siis laptopi) IP porti 80. Minu puhul oli vaja mappimine teha Elisa antud Technicolori ruuteris (kuhu server-läpakas on kaabliga ühendatud). See on kõige lihtsam setup.

Seejärel installisin (kõik eraldi dockeri konteinerid) MariaDB, phpMyAdmin (selle MariaDB külge) ja Microsoft SQL Serveri.

Millest on abi

tracert that.ee – näed, kust seadmetest su liiklus läbi läheb ja kuhu ta jõuab.

Turvalisus

Selle koha peal ma olen kõige tuhmim hetkel ja mul ei ole head ettekujutust, missugused ohud mind varitsevad.

  • Ufw (Uncomplicated Firewall) panin peale
  • Sisse saab ainult SSHga, parooliga sisselogimise keerasin kinni

Kasulikud Dockeri käsud

Dockeriga toimetamine tahab super useri õiguseid. Ehk siis sudo su.

sudo snap install docker – installib Dockeri
sudo snap remove docker – eemaldab Dockeri
sudo docker ps -a – näitab kõiki konteinereid ja nende infot
sudo docker start <containerId> – käivitab konteineri
sudo docker stop <containerId> – peatab konteineri
sudo docker rm <containerId> – kustutab konteineri

sudo docker image list – näitab arvutis olevate image’te nimekirja
sudo docker image rm <imageId> – kustutab image

Kui mingi asjaga tekib raskuseid, siis Google otsing ja Digital Oceani juhendid aitavad enamasti alati.