{"repo":"Novotarskyi/ivan-bohun","free":true,"listed":false,"github":"https://github.com/Novotarskyi/ivan-bohun","clone":"git clone https://github.com/Novotarskyi/ivan-bohun.git","description":"A personal website served from six ESP32-S3 microcontrollers: elected load balancer, virtual-MAC failover, OTA with rollback. No cloud, no CDN, no Pi.","language":"C","stars":32,"topics":["embedded","esp-idf","esp-now","esp32","esp32-s3","freertos","high-availability","homelab","load-balancer","ota"],"license":"MIT","category":"networking-infra","readme_excerpt":"https://kyrylonovotarskyi.com A personal website served from six £12 microcontrollers on a shelf in a London flat. No cloud. No CDN. No Raspberry Pi. No reverse-proxy box. --- Four ESP32-S3 blades with wired Ethernet hold an election over encrypted radio. The winner puts on the mask - a virtual MAC address no factory ever issued, plus the one LAN address the router forwards - and becomes a layer-4 TCP splicer : it accepts your connection and relays the raw bytes to whichever other blade is least busy. That blade terminates TLS 1.3 and serves the page out of its own flash. Kill the leader, and another blade wears the mask in under four seconds - same MAC, same address, same certificate, different silicon. Kill everything but one, and the survivor splices to itself over loopback and keeps serving. Two more boards - a 2.8\" roster screen (the pysar ) and a 4.3\" touch panel (the kobzar ) - hear every heartbeat and paint the fleet on glass and on a six-pixel LED rail, one pixel per member. Named after the Cossack colonel Ivan Bohun , who broke his sabre rather than swear the oath at Pereiaslav - the right patron for a website that refuses to be hosted by anyone. Why it is interesting - Load balancing is an elected role, not a box. Every blade carries both programs. The splicer's backend set is rebuilt every second from radio gossip; no configuration file names a backend. - The election never rides the wire it protects. Heartbeats travel over encrypted ESP-NOW at 1 Hz, so a switch o","default_branch":null,"files":null,"tree":[],"storefront":"/r/Novotarskyi","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Novotarskyi/ivan-bohun/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}