Mi-am dat seama anul trecut că plăteam vreo 40$ pe lună pe trei VPS-uri la Hetzner și DigitalOcean doar ca să țin câteva servicii personale, teste și baze de date de staging. Am decis să mut totul pe un Mini PC recondiționat pe care l-am pus pe birou. În postarea asta vă spun ce hardware am ales, ce servicii rulez pe el și unde m-am lovit de limitări reale.
Hardware-ul: ieftin, mic și silențios
Nu am vrut un server rackabil care sună ca un avion la decolare și mănâncă 150W în idle. Am căutat pe piețele de refurbished un PC Tiny/Mini/Micro și am prins un Lenovo ThinkCentre M720q cu procesor i5-8500T (6 nuclee, 35W TDP).
L-am cumpărat cu 850 de lei fără SSD și cu doar 8GB RAM. I-am pus un SSD NVMe de 1TB de la Kingston (320 lei) și am făcut upgrade la 32GB RAM DDR4 (280 lei). Buget total: 1450 de lei.
Consumul la priză măsurat cu o priză inteligentă este de 11W-13W în idle și sare la maximum 38W când compilez vreun container greu. Asta înseamnă mai puțin de 12 lei pe lună adăugați la factura de curent. În plus, e complet silențios. Trebuie să pun mâna pe el ca să simt dacă merge ventilatorul.
Rețeaua: Fără port forwarding, doar Tailscale
Cea mai mare greșeală pe care o făceam în trecut era să deschid porturi în routerul Digi și să mă chinui cu Dynamic DNS. Era un coșmar de securitate și tot aveam script kiddies care îmi scanau SSH-ul la fiecare două secunde.
Acum am închis toate porturile din router. Am instalat Tailscale direct pe mașină. Tailscale creează o rețea privată virtuală (Mesh VPN bazat pe WireGuard) între toate dispozitivele mele. Fie că sunt la o cafenea pe laptop sau în vacanță pe telefon, accesez serverul prin IP-ul lui privat din Tailscale (ex: 100.x.y.z). Este extrem de simplu, criptat cap-la-cap și nu expune nimic în internetul public.
Ce rulez în Docker
Sistemul de operare e Ubuntu Server 22.04 LTS fără nicio interfață grafică. Totul rulează în Docker prin docker-compose. Am împărțit serviciile în câteva stack-uri principale:
- AdGuard Home: Îmi blochează reclamele și tracker-ele la nivel de DNS pentru toate dispozitivele din casă.
- Vaultwarden: Clona de Bitwarden scrisă în Rust. Îmi ține toate parolele criptate local. Consumă doar 25MB RAM.
- Uptime Kuma: Îmi monitorizează site-urile clienților și îmi trimite alertă pe Telegram dacă pică ceva.
- N8n: Automatizări de workflow-uri (webhooks, rapoarte periodice, sincronizare de fișiere).
- PostgreSQL & Redis: Instanțe izolate pe care le folosesc ca mediu de staging când lucrez la proiecte secundare cu 5-8k utilizatori lunari.
- Plex: Pentru filme și seriale stocate pe un HDD extern de 4TB legat prin USB 3.0.
Compromisuri și probleme reale
Toate bune și frumoase, dar există trade-off-uri clare față de cloud-ul clasic.
Primul e disponibilitatea. Când cei de la Digi fac lucrări la fiber noaptea și pică netul 2 ore, nu mai am acces la Vaultwarden de la distanță (noroc că aplicația de mobil păstrează un cache local). Am pățit asta o singură dată într-un an, dar e un risc.
A doilea e backup-ul. Dacă îmi crapă SSD-ul din Mini PC, pierd tot ce nu e salvat extern. Am rezolvat asta cu un script de restic care face backup criptat în fiecare noapte pentru directoarele de date direct într-un bucket de S3/Backblaze B2 (mă costă sub 1$ pe lună).
A treia chestie: lipsa unui UPS. O pană scurtă de curent mi-a corupt o dată baza de date de la AdGuard. Am fost nevoit să cumpăr și un UPS ieftin de 300 lei care îi dă autonomie cam 45 minute.
Trăgând linie, investiția inițială de 1750 lei (cu tot cu UPS) s-a amortizat în mai puțin de un an. Am mai multă memorie RAM și stocare decât aș fi visat vreodată pe un VPS ieftin, iar latența în rețeaua locală e sub 1ms.
Voi aveți un setup similar acasă sau preferați să lăsați totul pe infrastructura cloud-ului?