← cd ../projects

● uptimeUbuntu · Docker · Tailscale

Dullahan

My homelab mini PC: Ubuntu Server running a Docker stack and Incus


The Purpose and Name

I wanted a playground for running different tools and as a staging ground for things I’m not yet ready to put into production. I can quickly deploy a docker container, try out its functionality, and remove it no fuss. It’s always running so I can setup services for monitoring things, or schedule automations without having to rely on others cloud services.

In businesses, servers are named things like ATL-FS01 for a file server or ATL-DC01 for Domain Controllers, but I like to be a little less formal on my personal stuff, so everything has a unique name. For this mini PC pseudo server I wanted something that reflected the headless nature of it, because I never planned to have any GUI for it. I went with Dullahan, which is a mythical Irish folklure that is kind of like a mixture of the Headless Horseman and the Grim Reaper.

The Server

One day I may put it on an actual server if there is a need for upgrading, but for now Dullahan run Ubuntu Server on a Dell OptiPlex mini PC. It’s primary use is for running a Docker stack managed with Portainer and a custom App Dashboard that lets me easily see logs and restart if needed. I have Nginx Proxy Manager that helps easily manage Ngnix configs for all the services running. I’v ran many different containers as I have a need for something, and some just to experiment with what is available. Some include Uptime Kuma, IT-Tools, phpIPAM, Nginx Proxy Manager, Nextcloud, n8n, Pi-hole, and Unifi. I was using the Unifi temporary while I didn’t have a cloud key. I also have a lightweight rsyslog running for my Unifi UX7, so I can retain syslogs for longer than what the gateway will temporarily hold.

The newest piece is my VM for Claude to run on using Incus, read more at giving claude a home on Dullahan.

The Result

Dullahan has turned into the foundation I build everything else on. My services are self-hosted and under my control, my network logs are kept locally, and I have a safe, isolated place to let an AI agent do real work without putting the rest of the lab at risk. The biggest lesson so far is to document as I go, the same way I would for a client. Every service and setup step goes into a runbook, so future me isn’t left guessing how any of it works. Just like Damian Conway had said, “Documentation is a love letter you write to your future self.”