Originally published at https://devnotes.kamalthennakoon.com
From Local to Live: A Complete Strapi v5 Deployment Roadmap (Part 0)
A lot of people use Strapi to build projects quickly. It’s fast, flexible, and great for MVPs.
Where most people get stuck is deployment.
The common path is to use platforms like Render or similar services, especially after Heroku removed its free tier. That works, until your app goes to sleep every few minutes.
There’s nothing like watching your demo app take 30 seconds to wake up while someone is waiting.
On top of that, most free platforms don’t let you properly run Docker containers. That introduces environment inconsistencies and makes realistic deployment testing difficult.
Going straight to AWS can feel like overkill when you’re just trying to test an MVP with real users. If you're new to AWS, the learning curve is real. Setup takes time. Costs can escalate if you're not careful.
There’s a reason “AWS for beginners” tutorials are often 40+ parts long.
This series is about a middle ground.
For around $6 per month on a basic VPS, you can run:
- Your Strapi backend
- A PostgreSQL database
- Nginx as a reverse proxy
- SSL certificates
- Automated backups
- A simple CI/CD pipeline
It’s not magic. It’s not enterprise infrastructure. It’s just practical.
And no, this isn’t sponsored. You can run this on DigitalOcean, Hetzner, Vultr, Linode, or any VPS where you have SSH access.
Is This Setup Right for You?
Let’s be honest about what this environment is for.
This is not built for:
- Black Friday traffic
- Auto-scaling systems
- Mission-critical financial platforms
It is built for:
- Testing an MVP with real users
- Running a staging environment that behaves like production
- Demoing to investors
- Running a small beta group
- Learning how real deployments actually work
- Moving beyond localhost without paying enterprise prices
If you're already operating at massive scale, this probably isn’t your solution.
But for early-stage projects, it’s often more than enough.
I even use this setup for one of my own projects. The key is understanding the trade-offs before deploying.
What You Actually Get for ~$6/Month
The total monthly cost ends up being about $6.01:
- $6 for the VPS
- A few cents for S3 backups
That gives you:
- Containerized Strapi v5 with PostgreSQL
- SSL certificate and custom domain
- Automated database backups to S3
- A CI/CD pipeline using GitHub Actions
- Nginx reverse proxy with logging
- Rollback scripts when deployments go wrong
Everything runs on a single virtual machine. No Kubernetes. No orchestration overhead. No complex infrastructure layers.
You control the entire stack.
Performance is solid for early-stage traffic. It won’t survive a Reddit hug, but it doesn’t need to.
What This Series Covers
Instead of dumping everything into one giant post, I broke this into focused parts. Each article tackles one practical step.
Part 0: Introduction – Why This Setup?
You’re reading it now.
Part 1: Containerizing Strapi v5
Building a production-ready Docker image and pushing it to GitHub Container Registry.
Part 2: Deploying to DigitalOcean
Using Docker Compose to run Strapi and PostgreSQL on a VPS.
Part 3: Production Web Server Setup
Configuring Nginx, setting up a custom domain, and installing SSL with Let’s Encrypt.
Part 4: Automated Database Backups
Setting up automated backups to AWS S3 that cost almost nothing but work when needed.
Part 5a: CI Pipeline with GitHub Actions
Automating builds, security checks, and Docker image publishing.
Part 5b: CD Pipeline and Deployment Automation
Automating deployment to the VPS with rollback support.
Each article includes working commands and real implementation details. This isn’t theoretical infrastructure advice, it’s a setup you can actually run.
Series Navigation
If you prefer reading directly from the original source, here’s the full structured series:
Part 0: Introduction – Why This Setup?
Part 1: Containerizing Strapi v5
Part 2: Deploying to DigitalOcean
Part 3: Production Web Server Setup
Part 4: Automated Database Backups
Part 5a: CI Pipeline with GitHub Actions
Why I Wrote This
There are plenty of deployment guides out there. Most of them either:
- Skip important steps
- Assume too much knowledge
- Or jump straight into enterprise-scale infrastructure
I wanted something practical. Affordable. Realistic.
Something that lets you test with actual users without worrying about surprise hosting bills.
This isn’t the only way to deploy Strapi. It’s just one practical path that balances cost, control, and learning. If it helps you build something meaningful, that’s exactly what matters.
Top comments (0)