Skip to content
Back to projects

Self-Hosted VPS Infrastructure & CI/CD Deployment

Self-managed Linux VPS infrastructure hosting personal and web applications with Nginx reverse proxy, SSL/TLS, firewall rules, SSH key-based authentication, automated backups, monitoring, and CI/CD deployment.

Linux Nginx Bash CI/CD SSL/TLS Git
Screenshot of Self-Hosted VPS Infrastructure & CI/CD Deployment

The Problem

I wanted a real place to host my own projects — not a managed platform that hides how things work, but a server I provision, secure, and operate end to end. The goal was a production environment where I own the full stack, from the operating system up to the deployment pipeline.

My Approach

I provisioned a Linux VPS and treated it like production from day one: least-privilege access, key-based SSH authentication, a locked-down firewall, and TLS on every public service. Rather than deploying by hand over SSH each time, I automated the build and deploy cycle so releases are repeatable and low-risk.

What I Built

Hardened server stack — Full OS configuration and ongoing administration of the VPS, including SSH key-based authentication, firewall rules, and access management following cloud and security best practices.

Nginx reverse proxy — Routes traffic to the applications running on the box, terminating SSL/TLS so every service is served over HTTPS.

Automated CI/CD pipeline — Builds and deploys on each code push, removing manual deployment steps and the errors that come with them.

Operations & monitoring — Automated backups and ongoing system monitoring keep the services healthy and recoverable.

What I Learned

Running your own infrastructure forces you to understand every layer — DNS, TLS, reverse proxying, process management, and the security trade-offs at each one. Automating deployment early paid off immediately: once the pipeline existed, iterating on the apps it hosts (including this site) became almost frictionless.