Mariano Mossburg

Software Engineer


My Multi-Node Cluster

After building and deploying my first web application, I became interested in the deployment aspect. Cloud service providers like AWS and Azure consistently report strong operating margins during earnings calls—I knew something was going on. I started tinkering with deployment, hosting serverless functions on AWS, and deploying a small frontend across different hosting providers.

From there, I realized all roads lead to Linux servers. I dove into the rabbit hole, buying my own hardware and building a private network with my own servers. I consumed a ton of content and had many late-night conversations with LLMs. My goal: host all my projects using open-source services to avoid recurring service costs.


Network Architecture

I use a private Tailscale wire-mesh network to connect all my nodes. For deployment, I use on Docker and Nginx for reverse proxying and load balancing. To keep servers private and accessible remotely, I use Cloudflare Tunnel.

During Docker container creation, I run Tailscale as a sidecar container. This creates its own node in my network, which I then connect to Cloudflare via its private IP.

I also focus on horizontal scaling. Adding mini-PCs across different networks helps mitigate power outages, Wi-Fi issues, and limited upload speeds.


Hardware Overview

Raspberry Pi 5

  • CPU: Cortex A7 4C/4T
  • RAM: 8 GB @ 2.4 GHz
  • Storage: 1 TB T7 External SSD (USB 3.2, 1050 MB/s)

Linux Server

  • CPU: AMD Ryzen 6960X 16C/32T
  • RAM: 32 GB DDR4 3200 MHz (2x16)
  • Storage: 500 GB NVMe M.2 SSD 3500 MB/s
  • GPU: RTX 3060 12 GB GDDR6
  • Motherboard: MSI B550 Gaming PCIe 3.0
  • PSU: 850W

Beelink Mini-PC

  • CPU: 4C/4T
  • RAM: 16 GB
  • Storage: 500 GB SSD

I try to keep the tech stack consistent across all nodes so improvements and iterations can apply to all services.


Node Usage

On my Raspberry Pi, I run analytics for Docker containers using Prometheus, backups, and an n8n server, among other services. The external SSD provides lower-end read write speed, so this node is used for backups, testing among other services. The other two servers are used for deployed services with docker.


Tech Stack

  • Networking: Tailscale wire-mesh private network
  • Operating System: Ubuntu Server
  • Containers & Orchestration: Docker
  • Reverse Proxy / Load Balancing: Nginx
  • Secure Remote Access: Cloudflare Tunnel
  • Database: MongoDB (WiredTiger)
  • Backend: FastAPI
  • Frontend: Next.js or Vanilla React
  • Mobile: React Native with Expo
  • Scripting & Automation: Python, Shell scripts

Building a multi-node cluster has allowed me made me a better programmer. From understanding the multiple layers of security, networking, deployment and more.