Tech Stack
Technologies Used
- Ubuntu VPS (RackNerd) as the base server.
- Nginx for reverse proxying traffic to Node.js apps.
- Let’s Encrypt / Certbot for HTTPS certificates and renewals.
- PM2 for process management and log viewing.
- Git and SSH for deploying updates from a local machine.
Description
Instead of using a hosted platform, I wanted to learn how to run my own Node.js apps on a low-cost VPS. This project documents the end-to-end setup: preparing the server, wiring up Nginx, enabling HTTPS, and deploying apps with PM2. The result is a small but production-like environment I control over SSH.
Project Info
What I Implemented
- Provisioned an Ubuntu VPS, created a non-root user, and configured basic firewall rules.
- Installed Node.js and PM2, and set up a PM2 ecosystem file for the portfolio and supporting APIs.
- Configured Nginx as a reverse proxy for multiple apps, including separate server blocks for the main site and APIs.
- Set up HTTPS with Let’s Encrypt, including auto-renewal and secure defaults.
- Created a lightweight Git + SSH deployment flow for pulling new code and restarting services with minimal downtime.
Screenshots / Notes
This section is reserved for Nginx config snippets, PM2 process views, and terminal screenshots that show the deployment flow end to end.