Ship a Node.js app with GitHub Actions, a self-hosted runner on AWS EC2, Nginx reverse proxy, custom domain, and free SSL — before diving into Jenkins.
Express Locally vs on AWS EC2
Run a Node.js Express app on your machine, then host the same app on an EC2 instance with PM2 so it stays up over the internet.
CI & CD with a Simple Example
Map npm install, test, and start to Continuous Integration vs Continuous Deployment so the rest of the pipeline makes sense.
Introduction to GitHub Actions
Learn what GitHub Actions is, why teams use it for automation, and see a minimal workflow that install → test → start on every push.
GitHub Runners on AWS EC2
Understand GitHub-hosted vs self-hosted runners, then install and run a self-hosted runner on EC2 as a background service.
Environment Variables & Secrets
Configure workflow, job, and step env vars — and store sensitive values in GitHub Secrets for production pipelines.
GitHub Actions Workflows
Build a real CI/CD workflow: triggers, jobs, runs-on, steps, and deploy on a self-hosted runner with rsync and PM2.
Nginx as a Reverse Proxy
Install Nginx on EC2, proxy port 80 to your Node app on 3000, and stop exposing the app port to the public internet.
Domain, Elastic IP & Free SSL
Attach an Elastic IP, map DNS A records, and use Certbot with Nginx for free Let's Encrypt HTTPS and auto-renewal.