My Dokku Homelab: Open Source Apps That Power My Digital Life
12/2/2025
My Dokku Homelab: Open Source Apps That Power My Digital Life
In my previous post about Dokku, I discussed why I use Dokku as my self-hosting platform. Now I want to share the specific open source applications I'm running and how they fit into my digital life - here are the standouts that have become essential to my workflow.
Nextcloud
When I started self hosting, Nextcloud was my first app. I was very used to Dropbox in my flow, and while I replaced some of my uses with rsync, having a managed, easily installable app on any platform was nice. Beyond file storage, I use it as a Google Docs replacement and todo list. Nextcloud's clients work well across all the platforms I use, so getting files across my devices is quick and easy.
Home Assistant
Home Assistant controls the smart devices in my home - mostly lights, our sprinkler system for the garden, and the TV. None of it is strictly necessary, but it's fun to see all the data being generated in our house. The automation engine is powerful, and having everything run locally means I'm not dependent on cloud services that might disappear or change pricing. My favorite automation: the sprinklers automatically skip their schedule when rain is detected.
Immich
Immich replaced Google Photos for me. It provides automatic photo backup from my phone, facial recognition, and a beautiful web interface for browsing my photo library. The machine learning features run in a separate container (immich-ml), which leverages my server's GPU for better performance. I recently switched to this from Nextcloud's image hosting because the UI is cleaner and it includes more video and image-specific features. Having my entire photo history searchable and backed up without sending anything to Google is worth the setup effort alone.
Gitea
Gitea hosts my private Git repositories - projects I want to keep private or experimental work that doesn't belong in a public repository. It uses minimal resources compared to GitLab but still provides all essential Git hosting features including pull requests, issue tracking, webhooks, and actions through a separate runner. I particularly appreciate how fast it is - pushing and browsing repositories feels instant even on my modest hardware.
Ollama
Ollama lets me run large language models locally for experimentation and development work. Having private access to AI capabilities without sending data to external APIs is valuable when working with sensitive code or data. The simple API integrates easily into development workflows, and I've built several experimental tools on top of it.
Penpot
Penpot handles my UI/UX work and design mockups for personal projects. As an open-source alternative to Figma, it uses open standards like SVG and runs in the browser with no subscription fees. For someone who only occasionally needs design tools, paying for professional software never made sense - this gives me everything I need.
Uptime Kuma
Uptime Kuma monitors all my self-hosted services and sends notifications when anything goes down. The dashboard shows health and uptime statistics for every service I run. It's saved me several times by alerting me to issues before I noticed them manually. The UI is beautiful, setup is easy, and it supports comprehensive monitoring including HTTP, TCP, and ping checks.
Transmission
Transmission is my BitTorrent client for downloading Linux ISOs and other legitimate torrents. It's lightweight, stable, and has been the standard open-source BitTorrent client for years. The web interface makes it accessible from anywhere, and it runs quietly in the background without consuming resources.
Personal Projects
Beyond these open source applications, my Dokku server also hosts several personal projects:
- Website - This site you're reading now
- Recipe apps - Various experiments with recipe management
- Coding agents - Experimental AI-powered development tools
The beauty of Dokku is that my personal projects and open source applications all receive the same professional-grade deployment experience.
The Hardware
All of these services run on a single Dell Precision Tower 5810 workstation that I picked up used. The specs are solid for a homelab:
- CPU: Intel Xeon E5-2690 v3 (24 cores @ 3.5GHz)
- RAM: 64GB DDR4
- GPU: NVIDIA GeForce RTX 3060 (for Immich's machine learning features)
- Storage:
- 2TB NVMe boot drive (encrypted with LUKS)
- 4TB HDD for bulk storage
- 8TB HDD for media and backups
- 1TB HDD for additional storage
- OS: Ubuntu 24.04 LTS
The machine has been running continuously for over a month without issues. The Xeon processor handles all 22 applications without breaking a sweat, and the 64GB of RAM means I never worry about resource constraints. The RTX 3060 makes Immich's facial recognition and ML features snappy.
Total storage across all drives is about 15TB, with roughly half currently in use. The encrypted boot drive ensures my data stays secure, and the additional HDDs provide plenty of room for photos, backups, and media files.
Why Self-Host with Dokku?
I'd rather play sysadmin than pay cloud companies to keep my own data hostage.
That might sound dramatic, but it captures my core motivation. When you use SaaS products, you're renting access to your own photos, documents, and code. Prices change. Features disappear. Companies get acquired. Services shut down. You're at the mercy of business decisions that have nothing to do with your needs.
Self-hosting flips this dynamic. My photos, files, and data stay on my infrastructure. I decide when to update, what features to enable, and how to configure each service. Managing these services keeps my ops skills sharp - knowledge that's valuable in my day job and satisfying in its own right.
The cost argument is real too. A one-time hardware investment replaces perpetual SaaS subscriptions. I'm running services that would cost hundreds per month from cloud providers. The server pays for itself in saved subscriptions after about a year.
What makes running all these services manageable is Dokku's consistent interface. Each application gets:
- Automatic SSL certificates via Let's Encrypt
- Zero-downtime deployments when updating
- Consistent environment variable management
- Unified backup strategy for databases and persistent storage
- Single command updates with
dokku git:from-image
Self-hosting isn't for everyone. It requires time, technical knowledge, and comfort with troubleshooting. But for me, the trade-off is clear: I'd rather spend an hour occasionally fixing my own infrastructure than spend years locked into someone else's ecosystem.