Solun Structure and Infrastructure
Why this Structure
Maybe you ask why we have chosen this structure. Let's start with why we chose VM's instead of the cloud. Simply because it is cheaper. We have virtualized our systems with Proxmox. The reason why we have chosen Proxmox is that it is open-source and has a great community.
Proxmox and Hetzner Dedicated Server
The 2 App Servers
The Webservers are simply two docker hosts that are running behind a load balancer with Health Checks. On this docker host, we are running our three frontend services. The first one is the main Solun service, the second one is the Solun Auth Dashboard and the third one is the Solun Webmail.
The API Server
The API Server is a simple docker host that is running our API. The API is running behind a reverse proxy that is handling the SSL Certificates. This Api Server is Connected to the MongoDB Server and the Storage Server where the files are stored.
The MongoDB Server
We are using MongoDB as our main database. MongoDB is a NoSQL database that is very fast and easy to use. We are running the MongoDB server as a plain Database Server without any dockerization. We wanted to use Docker, but there are issues with CPU usage under proxmox, and we decided not to use it for better stability.
The Storage Server
The storage server is just a Debian 12 VM with a lot of storage and a Samba share installed. We use Samba because it is easy to use, and we can mount the share directly on the API server.
The reverse proxy
The Proxy we are using is Traefik. Traefik is a reverse proxy and load balancer that is very powerful and trusted by many huge companies.
The firewall
As Firewall and NAT router, we are using OPNsense. Its open-source firewall with a huge community and a lot of features. Also, it's got a nice little UI :).
Hetzner Cloud
So why do we use the Hetzner Cloud for Our Mail Server and not our Dedicated? The answer is simple. We want to have a high uptime for our mail server. The Hetzner Cloud is very fast and provides a high uptime because of the cloud infrastructure. They are using the powerful tool Openstack to manage their cloud infrastructure. They got a good DDos protection, and if a Server fails, they will automatically move the VM to another host so that we can Provide a high uptime for our mail server.
The Mail Server
As Mail Server we are using Mailcow. This is mainly because it is easy to use and production ready. We got a simple API that is connected to our Dashboard. It is really easy to update and maintain, so we can provide a high uptime for our mail server.
wglc.at
wglc.at is the Network of my friend, and we are using it to back up our VM's. In the future, we will also use it for a second Instance of our Network to provide the highest uptime possible. Check out his Website for more information about the Homelab.