Infrastructure Review
DigitalOcean hosting · BLR1 region
Management summary · Q3 2026 KPI
All four Next.js applications move from DigitalOcean App Platform to a single 8 vCPU / 16 GiB droplet in the same region (BLR1), fronted by Caddy and Docker Compose. App Platform stays live in parallel until each app is verified — cutover is a DNS change per app, with instant rollback.
Apps hosting today
$345/mo
App Platform, 4 apps + egress IP
Apps hosting after
$115/mo
Droplet $96 + weekly backups $19.20
Monthly saving
−$229.80
−58% on app compute
Annualised saving
~$2,758/yr
Before ops-time considerations
Total monthly infrastructure, by phase (includes unchanged cPanel droplet, $48/mo)
01 · Architecture
Databases and storage are untouched — Supabase, Shopify, Cloudinary and R2 stay exactly where they are. Only the compute layer changes.
| What changes | App Platform (today) | Shared droplet (target) |
|---|---|---|
| Monthly app compute | $345 — isolated per app | $115.20 — shared |
| Compute | 26 GiB RAM summed across 4 bills; autotraders alone has 4 dedicated vCPU | 8 shared vCPU / 16 GiB pooled across all 4 apps |
| Deploys, SSL, scaling | Fully managed by DigitalOcean | Self-managed: Docker, Caddy, GitHub Actions |
| elf dedicated egress IP | +$25/mo add-on | Droplet reserved IP — no extra fee |
| Rollback | DO deployment history | Image tags + DNS revert (App Platform kept live during soak) |
| Ops burden | Low | Medium — in-house or contractor |
02 · Cost analysis
| App | Instance | $/mo |
|---|---|---|
| autotraders | 4 dedicated vCPU / 16 GiB | 196.00 |
| elf-bangladesh | 2 shared vCPU / 4 GiB | 50.00 |
| japanpartsbd | 1 dedicated vCPU / 4 GiB | 49.00 |
| asianimportsltd | 1 shared vCPU / 2 GiB | 25.00 |
| elf egress IP | Dedicated IP add-on | 25.00 |
| Subtotal | 345.00 |
autotraders' dedicated 4-vCPU instance is the single biggest line item consolidation removes.
| Option | Spec | $/mo |
|---|---|---|
| Budget OOM risk | 4 vCPU / 8 GiB | 57.60 |
| Recommended ✓ | Basic 8 vCPU / 16 GiB · 320 GiB disk · 6 TB transfer | 115.20 |
| Dedicated CPU | General Purpose 8 vCPU / 16 GiB | 151.20 |
| More RAM | 8 vCPU / 32 GiB | 230.40 |
The 8 GiB option saves the most but is not recommended — four Next.js apps are likely to run out of memory under load. Builds run on GitHub Actions (within the free tier), never on the droplet.
Even the most generous sizing (32 GiB) is a third cheaper than today's App Platform subtotal.
Overlap is temporary insurance: both stacks run in parallel for 1–2 months (≈ $173 extra for a 6-week overlap), then spend settles at $163.20/mo.
All figures USD, DigitalOcean list prices
Payback on the overlap period is under one month
A 6-week parallel run costs roughly $173 extra; steady-state savings of $229.80/mo recover that in the first month after decommission.
−58% app compute
03 · Migration status & cutover plan
Each step is reversible by reverting a single DNS record. App Platform keeps serving each app until its cutover is verified.
elf
New subdomain added — no existing traffic at risk
asianimports
New subdomain added — no existing traffic at risk
japanparts.com.bd
Production domain + Shopify webhook update
autotraderbd.com
Highest traffic; Cloudflare cache purge + bypass rules for admin/auth paths
| Risk | Mitigation |
|---|---|
| Downtime during cutover | Parallel run, low DNS TTL, one app at a time, instant DNS rollback |
| Out-of-memory during builds | Images built on GitHub Actions, never on the droplet |
| One app destabilising others | Per-container memory limits in Docker Compose |
| Stale/cached private pages (prior incident) | Cloudflare cache purge + bypass rules on admin, auth and dashboard paths at cutover |
| Shopify webhooks breaking | Webhook URLs updated before the japanparts cutover |
| Secret exposure | Runtime secrets live only on the droplet (chmod 600); exposed token flagged for rotation |
Out of scope in all scenarios: the existing cPanel/WHM droplet (Singapore, $48/mo) is untouched, and external services — Supabase, Cloudflare, Cloudinary, R2, Shopify — are unchanged either way.