We designed and built the full IT infrastructure for Munster Sport, a fictional online sports retailer, on a three-node Proxmox VE cluster of Dell PowerEdge servers. I owned the application layer, from the website design through to secure remote access. I also built the load balancing, the certificate authority and the monitoring that sat around it.
What I Built
E-commerce Website
A PHP and MySQL shop on Apache. I designed it from brand identity through user flows and wireframes. It has a cart, checkout, customer accounts and a staff area for orders, stock and messages. Staff sign in with their Active Directory accounts over LDAP.
High Availability
I cloned a second web server onto another node with five-minute file sync. I then replaced a failing Kemp LoadMaster setup with HAProxy in a Debian container, using health checks and sticky sessions. The site stays online when either web server is stopped.
Certificate Authority and HTTPS
I deployed a Windows enterprise root CA, issued the web certificate, and published the revocation list over HTTP. All website traffic redirects to HTTPS.
A MailEnable server with domain sign-in, five staff mailboxes, a shared info@ alias and a relay rule that allows only the web servers.
VPN
An SSTP VPN on Windows Server, with an NPS policy that admits only the Staff group. It uses split tunnelling, logging and its own address pool. I tested it with every staff account.
Security and Maintenance
- Patched PHP across both servers after a CVE notice.
- Joined the servers to the domain.
- Set role-based rights for staff and administrators.
Monitoring
I wrote a PowerShell health-check script that runs 67 checks across DNS, AD, HTTPS, load balancing, mail, VPN and the database.
Documentation
- Co-wrote the 23-page detailed design: IP plan, firewall and port tables, costs and a risk register.
- Wrote the build record and the addressing and logins workbook.
- Presented the application layer to the client panel.
Troubleshooting Highlights
- Found that Kemp's virtual service stopped responding when one server failed, so I moved to HAProxy.
- Traced a certificate validity error to wrong server clocks and time zones.
- Fixed VPN failures caused by certificate revocation checks.
- Fixed a production 500 error by tracing a missing database column.
Tools and Skills
Proxmox VE · Windows Server 2022 · Active Directory · DNS · AD Certificate Services · RRAS/NPS · HAProxy · Debian/LXC · Apache · PHP · MySQL · MailEnable · PowerShell · HTTPS/TLS · VPN (SSTP) · load balancing · technical documentation