hello,
i'm ph4ntomic
— i build
things

// decrypted_id: Leonardo Parrino

about.

cs student, currently broadcasting from Mars in semester 03. currently learning compilers, machine learning, software engineering and data analysis. i enjoy understanding how systems work, building practical projects and keeping things clear, structured and well documented.

motivation.

I build because I can't not. Hand me a blank editor and a hard problem, and hours disappear. Computer science is where my curiosity compounds — every system I take apart teaches me how to build a better one. I'm here to keep leveling up and ship work that outlives the demo.

projects.

homelab.

self-hosted · learning by running it

ACTIVE STANDBY STREAM WLAN FRITZ!BOX KABEL · WAN MR600 LTE · WAN/LAN1 ER605 DUAL-WAN · NAT · FAILOVER FIRE TV MOONLIGHT · CLIENT TL-SG108E 8-PORT GbE · LAN GAMING-T SUNSHINE · HOST THINKPAD PI-HOLE NAS STORAGE · SOON MINI-PC PROXMOX · SOON
dual-wan failover Kabel primär (FRITZ!Box 6660), LTE als Backup (Archer MR600) — fällt das Kabel aus, schwenkt der TP-Link ER605 automatisch um. Das Netz bleibt online.
pi-hole · dns Ein Raspberry Pi 3 B+ beantwortet die DNS-Anfragen aller Geräte — Werbung & Tracker werden netzweit gefiltert, ohne Software auf den Clients.
switching TL-SG108E verteilt ans LAN: Gaming-Tower, ThinkPad mit Dock und der Pi hängen kabelgebunden am Switch.
learning by running Routing, Failover und DNS nicht aus dem Lehrbuch, sondern am eigenen, täglich genutzten Netz — inklusive Fehlersuche, wenn zu Hause „das Internet weg" ist.
architecture · operations
dns_pipeline

Pi-hole steht als zentraler DNS-Resolver für das LAN bereit. Bekannte Werbe- und Tracking-Domains werden geblockt — erlaubte Anfragen gehen an Cloudflare. Feste Erreichbarkeit per DHCP-Reservation.

CLIENTS
   │
PI-HOLE · resolver
   ├── BLOCKED → ads / tracker
   └── ALLOWED
          │
     CLOUDFLARE · upstream
resilience · failover

Der ER605 überwacht beide WAN-Links. Kabel ist Primary, LTE Standby — fällt die Leitung aus, wird der Verkehr automatisch über den MR600 geroutet.

PRIMARYWAN · FRITZ!Box 6660 BACKUPWAN/LAN1 · Archer MR600 MODEFailover DETECTIONautomatic
pi-hole_node
HARDWARERaspberry Pi 3 B+ OSRaspberry Pi OS · Debian Trixie · ARM64 INTERFACEEthernet · eth0 DNSPi-hole UPSTREAMCloudflare FILTERINGDNS-Level LOGGINGenabled ADDRESSINGDHCP-Reservation
why_this_architecture?

Netzwerkfunktionen sind bewusst getrennt: Die Internetzugänge stellen nur die WAN-Verbindungen bereit — Routing, Failover und das interne LAN laufen zentral über den ER605. DNS-Filtering ist als eigener Dienst auf den Raspberry Pi ausgelagert.

Jede Komponente macht genau eine Sache. Fällt eine aus, ist klar, wo gesucht werden muss — und einzelne Teile lassen sich tauschen, ohne den Rest anzufassen.

design_limitations
DNS SPOFPi-hole läuft auf einem einzelnen Pi — fällt der Node aus, brauchen Clients einen Fallback-Resolver. DNS-LEVELGefiltert werden Domains, keine Inhalte — In-Stream-Werbung (YouTube, Prime) bleibt. SPEEDLAN-Core ist Gigabit — reicht aktuell; 2.5 GbE ist eine spätere Ausbaustufe.
config_status
DUAL-WANONLINE
FAILOVERENABLED
PI-HOLEACTIVE
DNS FILTERINGACTIVE
SWITCHONLINE
GAME STREAMINGACTIVE
QUERIES_TODAY
BLOCKED
game_streaming · stream_setup

Sunshine stellt den Gaming-Tower als Streaming-Host bereit. Moonlight greift über das lokale Netzwerk darauf zu. Routing und NAT werden zentral über das Gateway gesteuert.

CLIENTMoonlight HOSTSunshine TRANSPORTTCP + UDP ROUTINGNAT USE CASELow-Latency Game Streaming
roadmap · next up
01PLANNEDPROXMOX NODEVMs · Container · Docker · Lab Services
02PLANNEDSELF-HOSTED SERVICESWeb · Databases · Development · Git
03PLANNEDNAS / BACKUPStorage · Snapshots · Proxmox Backups
04PLANNEDNETWORK SEGMENTATIONVLANs · IoT · Clients · Servers
05PLANNEDOBSERVABILITYUptime · Metrics · Logs · Network Monitoring

tools of the trade.

// daily_drivers · loadout

core technologies across university, web development and software projects.

// CORE STACK
Jjava// language
sql// data
javascript// language
node.js// runtime
git// vcs
html5// markup
css// styling
c assembly latex linux docker maven flutter

1 year of pushes.

contribution activity · last 12 months.

loading… syncing…
less more

90d activity.

last 90 days of github activity.

syncing…

problem solving.

problems solved on leetcode.

syncing…

github achievements.

lernen.

Meine Mitschriften und Zusammenfassungen — für meine Kommilitonen und alle, die drei Tage vor der Klausur merken, dass „ich schau's mir später an“ keine Lernstrategie war :)

einloggen & lernbereich öffnen noch keinen zugang? → zugang beantragen

logs.

leave a trace.

> append_message.sh

say hi?