Self-Hosting like it’s 2025⌗
In recent years, self-hosting has emerged as a popular alternative to data-collecting, big-brother services. For a time, I must admit, I was almost addicted to trying out new software, building dashboards, and adding applications I didn’t really need. Now that my setup has remained largely the same for over a year, I wanted to take a moment to summarize what I’ve learned and highlight some software that I found particularly helpful, yet not as widespread as they could be. (And I also needed a topic for my first blog-post ever^^) . I am not trying to present anything as “the best solution.” After all, problems vary, and so do their solutions. This is not an ad for any of the softwares presented.
Container Runtimes⌗
These days, containers have become the default for hosting, with traditional methods increasingly rare. This trend is great news for homelab enthusiasts, as containers not only simplify software deployment but also offer better performance efficiency than virtual machines. While Docker seems to be the go-to choice for almost everyone, I’m keen to explore alternative solutions. It’s worth noting that I’m focusing on using these runtimes in a home environment rather than an enterprise setting.
Docker⌗
The original container runtime with widespread adoption, Docker is a giant in its field. Thanks to its extensive documentation, even those who aren’t highly skilled in IT can often manage to copy-paste a docker-compose.yml file from GitHub to get started. Of course, security considerations are a separate topic.
Podman⌗
Podman is an emerging container runtime gaining attention for its rootless architecture and Docker CLI compatibility. This makes it an appealing option for those who prioritize security and want to avoid running a daemon (Or learn those topics for work). Podman allows users to manage containers with similar commands, even providing aliases so you can still use the docker command making the transition from native Docker relatively smooth. With growing community support and documentation, it’s becoming more and more accessible even if it can be frustrating at first. Also, there are Podman Quadlets, which allow you to manage containers declaratively using systemd instead of docker compose.
Kubernetes⌗
For the self-hosting enthusiast who loves to tinker, Kubernetes might seem like overkill, but it’s a fascinating tool for managing your containerized applications with the elegance of managing a whole swarm of Instances. Often celebrated for orchestrating complex, scalable deployments, Kubernetes can be a rewarding challenge for those looking to bring enterprise-level capabilities into their home lab. However, the main appeal of Kubernetes at home is learning, Kubernetes is complex and most features are not needed for most users.
Managing your Containers via a Webinterface⌗
Some users might prefer a pile of compose files on their hard disk, but for those who do not want to SSH into their server every time a container crashes and they need to check a log, there are several web-based tools to make this task more comfortable.
Portainer⌗
I’ve been using Portainer for quite some time, and its widespread adoption in both homelab and professional environments makes it an excellent tool for learning through practical application. In my view, it stands out as the most stable web-managed container control interface available. It integrates seamlessly with Docker, Kubernetes, and even Podman. Portainer offers an open-source community edition and an enterprise version with additional features, where you can obtain three licenses for free.
Dockge⌗
Dockge is relatively new and created by the developer behind Uptime Kuma, which is a fantastic tool. Although it hasn’t yet reached the maturity of Portainer, Dockge truly excels in its simplicity. It’s also regularly updated, and the developer is prompt in addressing issues on GitHub.
Reverse Proxy’s and VPNs⌗
To access your selfhosted applications from everywhere, there are two main options. Exposing them to the Internet of accessing via VPN. While a VPN is more secure, exposing services to the Internet certainly is conevenient, at least as long as you know what you are doing.
Pangolin⌗
This is a fresh and innovative solution that seamlessly combines a VPN and reverse proxy into one easy-to-deploy package. It’s like having a self-hosted version of Cloudflare. All you need is a VPS or similar setup to host the ingress server, and you can add a VPN client to any environment running your applications. It even includes Crowdsec integration and basic SSO capabilities. In fact, writing this post was motivated by my enthusiasm to discuss this software. I believe it’s truly impressive and, given time, it could well become a new standard in place of existing solutions.
Nginx Proxy Manager⌗
I’ve noticed many people using this software, but I’m not entirely fond of it. It’s a somewhat buggy frontend for Nginx designed to create TCP/UDP/HTTP(S) proxies. While it boasts a wide range of features and offers a user-friendly web interface for management, I’ve found some functions—like password protection—to be unreliable. I never managed to get it to run consistently well. That said, it was the first software of its kind that I tried, and when it does work, it performs its job quite effectively.
Caddy⌗
If you’re looking to forego fancy web interfaces and prefer editing a straightforward file while having the server manage everything from proxying to HTTPS via Let’s Encrypt, then this is the option for you. However, due to the absence of a web interface, I wouldn’t recommend it for complete beginners. But if you appreciate simple UNIX-based tooling, Caddy is an excellent choice.
NetBird⌗
If you’re familiar with Tailscale, you’ll find yourself at ease with NetBird. It acts as a VPN server that handles a WireGuard network on your behalf, significantly reducing complexity. You have the option to self-host or take advantage of their generous free tier on the cloud.
Uptime Kuma⌗
If you’re looking for straightforward monitoring and the thought of setting up a full Zabbix or Grafana stack seems daunting, this software is a real lifesaver. With just one deployment, you can monitor your services and receive notifications through a wide variety of channels including…
Gotify⌗
Gotify is a notification management software. You can install the app on your phone and receive notifications, which can be triggered by a simple web request. There are also integrations with lots of other self-hosted software like Uptime Kuma. Really handy.
Other useful ressources for finding additional applications for your needs⌗
Awesome-Selfhosted⌗
This is a big collection of all kinds of Software, however it is a bit unorganized and also lists a few applications where development has stopped entirely.
Selfh.st⌗
This is my favourite source out of all. A great weekly newsletter with really niche recommendations and a large, sortable directory of apps. Great Site!
awesome-docker-compose⌗
This is collection of read-to-run compose files. They are not alway the best option, because sometimes applications include breaking changes with updates, but it is quite a nice collection nonetheless.