My Self-Hosted Tech Stack

  • Self-Hosted Tech Stack
  • Personal Server Infrastructure
  • Home Server Projects
  • AI Development Tools
  • Docker and Nginx
  • RabbitMQ Messaging
  • Vector Database
  • Nextcloud
  • Gitea
  • Langfuse
  • Matrix Server
  • Navidrome

My Self-Hosted Tech Stack

I’ve always liked the idea of having full control over my tools—not just using them, but running them, tweaking them, bending them to my will. After years of juggling accounts across dozens of services, I finally decided: why not bring it all home?

Now, instead of scattering my digital life across random cloud providers, I’m self-hosting most of what I use—on hardware I control. It’s part fun experiment, part productivity hack, and part stubborn refusal to give Big Tech any more of my data than absolutely necessary.


The Stack That Runs My Life

This whole thing lives on a dedicated server running Docker for containerization, with Nginx pulling reverse proxy duty and Certbot + Let’s Encrypt keeping everything secure with SSL certs.

On top of that foundation, I’ve built my own personal “app store” of services:

Dev & Automation

  • Gitea - Self-hosted Git repos. No more relying on GitHub for my private code.
  • Woodpecker CI - My lightweight CI/CD pipeline for building and deploying projects.
  • SonarQube (Community Edition) - Code quality checks and static analysis.
  • RabbitMQ - The message broker that glues my services together for event-driven workflows.
  • Firecracker - Super-light VMs for secure Python execution when I need isolation.

AI & Data

  • Langfuse - For AI tracing, prompt management, and debugging my LLM workflows.
  • Ollama - Self-hosted AI development environment for running and fine-tuning models locally.
  • Qdrant - My vector database for embeddings and semantic search.

Productivity & Storage

  • Nextcloud - My own private Google Drive alternative for files, calendars, and contacts.
  • Plane - An agile project management toolkit to plan, track, and prioritize everything in my personal life.
  • Trilium Notes - A powerful note-taking app that’s become my second brain.
  • Monica PRM - A personal relationship manager so I can remember who’s who in my network.
  • Mealie - A recipe tracker so I can finally organize my kitchen experiments.

Monitoring & Logging

  • Signoz - Observability and logging for everything running on the stack.

Communications

  • Matrix Server - My own real-time chat server for secure, federated messaging.
  • Docker Mail Server + Roundcube - My personal email server and webmail client.

Media & Entertainment

  • Navidrome - My personal music streaming service for anywhere, anytime access to my library.

How It All Works Together

I’ve written a bunch of custom pipeline scripts—little functional-programming-inspired bots that each do one thing really well. These scripts talk to each other through RabbitMQ, which means if one service hiccups, the rest keep going.

Some of these bots watch my inbox for interesting messages, others pull data from APIs, and some even drop updates into my project management boards. And because they’re modular, I can keep adding new ones whenever inspiration strikes.

It’s not just a static setup—it’s an evolving personal infrastructure that adapts to my needs.


Why I Bother

A lot of people ask me why I put in the effort when there are perfectly good SaaS tools for all of this. The short answer? Control and customization.

With self-hosting:

  • I decide how things integrate.
  • I’m not locked into someone else’s “vision” of how my workflow should look.
  • I own my data, and I can move it wherever I want.

Plus, it’s just plain fun. Spinning up a new service feels like adding a new gadget to my toolbox, and making them work together is a puzzle I never get tired of solving.


If you’ve ever thought about self-hosting but didn’t know where to start—my advice is: pick one service you already use, and host it yourself. Before you know it, you’ll have your own little internet running in your basement… and it’s addictive.