Self-Hosted VPS Infrastructure & CI/CD Deployment
A production Linux VPS hosting personal and web applications — secured with Nginx, SSL/TLS, firewall rules, and SSH hardening, and deployed by an automated CI/CD pipeline that builds, tests, and ships on every push.
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, and where shipping a change is a single git push.
My Approach
I provisioned a Linux VPS and treated it like production from day one: least-privilege access, a hardened SSH configuration with key-only authentication, a locked-down firewall, and TLS everywhere. Rather than deploying by hand over SSH each time, I automated the build → test → deploy cycle so that releases are repeatable and low-risk.
Throughout, I leaned on AI coding assistants to generate and debug deployment scripts and server configuration, which sped up setup and cut down on configuration mistakes.
What I Built
Hardened server stack — Full OS configuration and ongoing administration of the VPS, including SSH key hardening, 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 with managed certificates so every service is served over HTTPS.
Automated CI/CD pipeline — Builds, tests, 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.