Build Log

What I'm shipping, learning, and figuring out. Published from the terminal.

Started building MCP servers to connect our infrastructure directly to Claude Code. Model Context Protocol turns any API into a tool that the assistant can call natively. Five servers running now: media management, fitness tracking, server monitoring, diagramming, and analytics. Each one is a Python FastMCP container on the same Docker host. SSE transport so they are accessible from any machine on the network.

Shipped Model Arena, a tool for comparing language model outputs side by side. Send the same prompt to multiple models, see the results in real time. Built with Python and FastAPI, streams responses via SSE. Useful for picking the right model for a given task instead of guessing.

Built Phantom Paste, a zero-knowledge pastebin. Written in Go, stores everything in SQLite, encrypts client-side. The server never sees the plaintext. Pastes expire automatically. First app we built from scratch and shipped to production on our own infrastructure.

Deployed n8n as our automation engine. Visual workflow builder, webhook triggers, hundreds of integrations. Connect APIs, move data between systems, schedule tasks. No more writing one-off scripts for every integration. Build it once, let it run.

Added LiteLLM as an API gateway in front of all our language models. One endpoint, multiple providers. Route requests to local Ollama models or external APIs through the same interface. PostgreSQL backend tracks usage and costs. Swap models without changing a single line of application code.

Started running large language models locally with Ollama. No API costs, no data leaving the network. Pull a model, run it, done. Paired it with Open WebUI for a clean chat interface. The same tools the big platforms charge for, running on our own hardware.

Deployed Uptime Kuma to monitor every service. If a container goes down, we know within 60 seconds. Dashboard shows uptime history, response times, and SSL cert expiration. No excuse for a service being down and nobody noticing.

Connected everything with Tailscale. The server, the NAS, the workstation, the phone. Encrypted mesh network, no port forwarding, no exposed services. Access any tool from anywhere like you are sitting on the same LAN. Changed the way we work.

Put Caddy in front of everything as the reverse proxy. Automatic TLS certificates, clean subdomain routing, zero manual cert management. Every internal service gets its own address. One config file controls all the traffic.

Every service gets its own Docker Compose stack. Isolated networks, named volumes, environment files. No package conflicts, no dependency drift. Need to tear something down? One command. Need to rebuild? Same command. 29 containers running and the server barely notices.