Homelab

A homelab is a personal IT environment where you can experiment with servers, networking, and self-hosted applications. It’s like a miniature data center at home, used for learning, testing, and running various services.
On my home network, I have a couple of servers built using mostly old spare parts running 24/7. Using a great free operating system called Proxmox , I am able to easily deploy virtual machines and Linux containers (LXC) to these machines. Both machines have Proxmox OS installed and combined into a "data center" (consisting of a whopping 2 machines), meaning the Proxmox dashboard displays information about both machines in the same place.
From the dashboard, you can view information such as CPU usage, memory usage and disk usage. The information can be viewed per machine or per VM/container such as the example below. You can also start and stop VMs / containers from the dashboard.

Docker
Most of the deployments utilize Docker . Proxmox does not support Docker directly, so I installed Docker inside a LXC container. Yes, I'm running containers inside a container - Containerception!
Infrastructure as code
I use Ansible for automating deployments to my homelab. Setting up lots of infrastructure manually is generally a bad idea and automating the processes makes it easier to make changes. If my house burns down and I have to re-install everything I don't have to start from scratch either :)
Services running on my homelab
Portainer
Portainer is a container management tool for Docker. It allows me to view and interact with all the running Docker containers using a web interface. It's extremely useful and more convenient than pulling up the CLI all the time.
Nextcloud
Nextcloud is a popular open-source content collaboration platform. It is essentially the open-source alternative to Microsoft 365.
Nextcloud is huge and offers features such as file storage, contacts, calendar and notes. Additionally, you can install extensions that add even more functionality. They include apps for Android / iOS as well that can be connected to your Nextcloud instance.
Instead of using third-party providers such as Google Drive or Dropbox I host all my files using Nextcloud. I get access to them everywhere, but keep full control of my own data. Same with notes, calendar and contacts. The Nextcloud app on my Android phone automatically syncs images, videos, notes and calendar entries so that if I accidentally yeet my phone in the river my data is backed up!
Home Assistant
Home Assistant is an open-source home automation operating system that puts local control and privacy first. I use this to automate Philips Hue smart lights and smart heaters. My automations include:
- Turning off lights/heaters when I leave the house using GPS location of my phone
- Turning on heaters when I'm on my way home using GPS location of my phone
- Controlling outdoor lights based on sunrise / sunset
- Turn on heating in the morning to ensure it's not freezing cold when I'm half dead at 7 AM.
Since everything is self-hosted I can ensure that my GPS data is kept private.
Duplicati
Duplicati is an open-source backup system supporting incremental and encrypted backups. I have configured Duplicati to run periodically and backup essential files from Nextcloud and other services. I keep both local backups on my Homelab and in the cloud. The backups are encrypted using Duplicati before uploaded to the cloud, to ensure that I am the only one who can view the files. The incremental feature is amazing, because it means Duplicati only backs up changes instead of a whole new copy every time.
Traefik reverse proxy
Traefik is a reverse proxy written in Go. I try to minimize how much exposure I have to the Internet, but I use this for the few services that require access from everywhere. Traefik takes incoming requests and routes them to the appropriate docker container based on domain name.
Jenkins
Jenkins is an open-source automation server I use for CI/CD. It's used for deploying the staging environment for this website for instance.
Syncthing
Syncthing is a continuous file synchronization program. I use this to sync particularly large files, as Nextcloud doesn't handle very large files (100GB+) very well.
Minecraft server
I have hosted a minecraft server on my Homelab from time to time :)