Homelab, 2024 stage 4 Software
Through 2024 I have been redesigning my homelab. Now that networking, firewalls, and servers are operational, the foundation is in place to start managing software projects within the Homelab.
Critical server software
The most important software in use in my homelab is tied to the “critical” servers. “Critical” servers will run 24/7 so I opt for the lowest power usage devices that I own which in my case is 2 Raspberry Pi devices.
- Raspberry Pi 3 will provide DNS primarily as well as a NGINX web server/proxy to redirect HTTP traffic.
- Raspberry Pi 4 will run identical services to ensure DNS will be available if the other Pi is offline. This Pi will also run a Wireguard VPN server since it has more memory.
- A virtual machine will also run a backup DNS server.
If you are not familiar with the Raspberry Pi, check out a previous post that walks through how to set one up. There is also a post talking about how to use NGINX as a proxy.
DNS software
In order to manage DNS records, I use several self-hosted instances of AdGuard Home. You can easily set up a DNS rewrite to send all traffic in a sub-domain to the IP address of the server with the NGINX proxy server. Check out a previous post to check out more information about AdGuard Home. In that post I set up AdGuard-sync to ensure all DNS servers stay up to date with configuration and local DNS record changes.
Storage software
For my homelab I am not using anything currently other than openzfs and an NFS server.
Hypervisor software
For my homelab I am using Proxmox to manage virtual machines on computers running in my homelab. If you are not familiar with virtual machines, check out a previous post to learn more and get started.
Proxmox comes with a UI and API.
Observability software
To monitor all servers, each system sends logs to a central server running Grafana Loki and each system emits metrics using Prometheus exporters.
Grafana Loki stores logs and supports both simple architecture as well as saving logs to object storage (s3 and minio).
Logs and metrics can be queried and visualized with graphs and statistics using Grafana.
Prometheus is a time series database and api for collecting metrics.
|
|
Returns:
|
|
Backup software
To back up important data I use scripts to save backup archive files to a storage with an NFS share. To backup virtual machines, I use Proxmox to manage backup jobs that save snapshots and disk archives to an NFS share.
I do not backup physical servers other than important directories. When a system has a disk drive failure, I install a new operating system and restore files if needed from a backup or Version Control System Git.
Here is an example script I use to back up a home directory:
|
|
VPN software
A VPN is a way to create a secure tunnel from a remote network onto your own network. When I am not at home I can still trust my DNS requests and access resources from my personal networks. There are different VPN softwares out there and I use Wireguard.
Check out a previous post to setup Wireguard as a VPN server and client.