Modernizing Web Applications in a Legacy Apache Environment

Modernizing Web Applications in a Legacy Apache Environment

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.

Supporting Multiple Application Architectures

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.

GitHub Enterprise & CI/CD

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

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.

What I Learned

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

Related Posts