During the past few months I’ve had some time to re-design some of my system and network architecture. I’ve been upgrading operating systems, adding/updating applications, and adding/removing servers in an effort to enhance security and manageability while also providing additional capabilities.
Some of the changes include:
- Added a dedicated reverse proxy server (HA Proxy) to my network
- Switched my main database server from MySQL to MariaDB
- Consolidated some local databases into the new MariaDB server
- Added a backup/failover Nextcloud server
- Replaced my Pi-Hole ad blocker with AdGuard
- Setup a DNS server for my internal network
- Moved some applications from virtual machines into Docker containers
- Added additional storage for my Plex media server
- Added additional storage for backups
Moving local databases to a centralized database server and adding a dedicated reverse proxy (HAProxy) has allowed me to begin adding some fault-tolerance into my infrastructure.
HAProxy has been a great addition to my infrastructure. In addition to being a reverse proxy it has simplified SSL certificate management tremendously. Adding new sites and/or servers is a simple matter of modifying a config file.
Nextcloud is probably the most important application on my home network and I I use it every day. To ensure that I always have access to my documents, I setup a second instance of Nextcloud to serve as a backup server. HAProxy automatically handles the fail-over guaranteeing that I always have access to the documents stored in Nextcloud.
I’ve also moved a bunch of applications from virtual machines into Docker containers. This has allowed me to scale back the number of virtual machines that I need to maintain.
As my home network continues to expand it also gets incrementally more complex. Centralizing data using NFS shares and a single database server added some application configuration complexity but make things like backups and data management simpler. Overall, the changes have worked out pretty well so far.