Home Server
Background
As someone who has been a tech nerd from a young age and somewhat of a hoarder, I have lots of hardware lying around at home. There have been many times where my friends asked for my help building/fixing their computer, or just deciding to upgrade to something new. If they are planning to throw the old machine away, they are usually happy to give it to me. Often, there is only a single broken component, in the old machine, that can be easily replaced. Over the years, I have collected many older parts that would make for a slow desktop, but would be great for a personal server/node (with the only downside being efficiency).
I currently run my have 2 nodes (machines) in my home - 1 for hosting services, and 1 for my NAS.
Apps
My home server runs a collection of apps within my home network that make life easier on the day-to-day. While there are many options that require less work, I prefer the self-hosting option as I enjoy the privacy of keeping my own data and the learning the different skills.

List
- Pi-hole (DNS level Ad Blocker)
- Nextcloud (Cloud App for Network Storage)
- Plex (Video Storage Library)
- VPS 1 (Digital Ocean Node 1)
- VPS 2 (Digital Ocean Node 2)
- VaultWarden (Password Manager)
- Nginx Proxy Manager (Nginx + Interface)
- TrueNas (Contains my storage pools for network share)
- Proxmox (Hypervisor)
- Portainer (Docker + Interface)
- Budibase (CRUD App for Database)
- YGO Database (Front-end)
Network
Below is a network diagram of my current home setup. I used the idea from Jake Howard after reading his article when looking for a safe way to expose my home network to the the outside. As mentioned in his article, the VPS in my setup will act as an external gateway for traffic. This keeps me from having open any ports on my home router, or mess with any of its firewall settings as that would be handled by the VPS provider.

Ha Proxy
As you may have noticed - I used HAProxy on my to forward traffic on my VPS rather than another Nginx instance. This was another idea from the same author as HA proxy accepts has TCP mode, which accepts allows me to route other traffic beyond HTTP in the future, such as game servers, etc. Since I am still only learning how to configure the app, and I have no need for TCP traffic at the moment, HAProxy is currently running on HTTP mode.
Wireguard
Wireguard has grown in popularity immensely, especially in smaller deployments and projects such as my own. As an open source VPN, it has many features that make it superior to OpenVPN for my situation. Connecting a basic server is simple from configuration to deployment, only requiring the server and client to generate private and public keys, provide the public keys to each other. Deployment can be done with a simple wg-quick up wg0 command.
With simple steps, clear documentation throughout the web and all the benefits of an open-source platform, Wireguard is able to provide quicker speeds than OpenVpn, as shown on Wireguard's website and by many who have tested these claims.
Nginx
I don't think I have much to say about the choice of using for my reverse proxy. Its used by many in production environments from hobbies to large corporations for its simplicity and flexibility. While I'm no power user, I have used Nginx many times for different projects, or even when my current server needs to be re-built (lacked of backups in the past).
However, I am also currently using an interface called Nginx Proxy Manager which is able to display the proxy hosts I have listed clearly.