
In my current role, I’ve been involved in modernizing how web applications are built, hosted, and deployed across our infrastructure.
Our environment is built around Apache, WordPress, and on-premises infrastructure, but we also support modern applications built with Next.js, Vite, and Node.js. Rather than replacing the existing infrastructure, I helped establish deployment patterns that allow these technologies to work together.
Different applications use different hosting models:
Vite applications
are built into static assets and served directly by Apache.
Next.js applications
requiring server-side functionality run on Node.js behind an Apache reverse proxy.
WordPress sites
use CI/CD to deploy and overwrite theme files.
This lets us use the appropriate architecture for each application while maintaining our existing infrastructure.
A major part of this effort was establishing GitHub Enterprise as our department's source control and CI/CD platform. I worked through the process of acquiring the platform and then implemented GitHub Actions workflows for our applications.
Because our servers are on-premises and not publicly accessible, I implemented self-hosted runners within our infrastructure. This allows deployments to run directly inside our network without relying on external SSH-based deployment orchestration.
The workflows support both staging and production and can build and deploy Vite applications, deploy Node.js applications, or update WordPress themes.
The result is a more consistent and automated deployment process across multiple application types:
Vite → Apache
Next.js → Node.js → Apache
WordPress → Apache
This has reduced manual deployment work, improved consistency between environments, and given us a scalable foundation for supporting newer web applications alongside our existing infrastructure.
This work gave me hands-on experience with Apache, Node.js, reverse proxies, Vite, WordPress, GitHub Actions, self-hosted runners, and CI/CD.
More importantly, it taught me that modernization doesn't always require replacing existing infrastructure. Sometimes the better approach is finding a way to introduce newer technologies while building on what is already there.
Technologies: Next.js · Node.js · Vite · Apache · WordPress · GitHub Actions · GitHub Enterprise