This was a very interesting prompt, and made me decide to make it into a technology post as well. I would like to introduce you to my private home lab hosted in the cloud, which I have been working on for quite a while now. This article may include a lot of technical terms, so apologies in advance.
This article is part one.
The server itself is running Docker, with all of the data folders being nearly organized, and grouped with their docker-composr.yml files. NGINX Proxy Manager handles reverse proxies with my various domains, so everything can be accessed easily. Yes, it becomes a mess of ports, though I am still able to track down everything, and my workflow is still effective.
This whole server has taken about two days to setup. It works on a private network with VPN profiles routed through DigitalOcean. I’ve really focused on security with this project, more than others.
The base of the project all starts with my dashboard. This uses the Docker image “homepage,” with a custom background and theme, with different icons imported from my service in YAML config files.
The setup was more tedious than what I am used to, Homarr. However, pings were broken on Homarr, and some integrations worked poorly for me. Thus, I believe Homepage was a good alternative and has brought an even better UI.
Next, we have Webmin. Webmin is an amazing web server manager, which includes incredibly useful tools like iptables firewall management and upload/download from the server. These features have increased my workflow speed so much, and I have been a huge fan of Webmin for a while.
Another critical application running in the web is Portainer, which helps you easily manage your Docker containers. I especially love the easy access to the IP address of containers and looking at ports and mounts.
Portainer Community Edition has been great so far, and I don’t think anyone except a real company needs it.