Skip to content

Blog · DevOps

DevOps articles

DevOps streamlines collaboration between development and operations, fostering continuous delivery and efficiency in software development.

DevOps articles

JavaScript Heap Out of Memory in next build: VPS Fix
DevOpsOct 8, 2026

JavaScript Heap Out of Memory in next build: VPS Fix

"JavaScript heap out of memory" in next build means Node hit its heap limit. On a small VPS, add swap, raise --max-old-space-size, or build in CI. A build that works on your laptop and dies on a $6 VPS is a classic. Often the site is down too, because the deploy script stopped the old app, started

Read article →
Cloudflare in Front of Your VPS: Setup Checklist
DevOpsOct 7, 2026

Cloudflare in Front of Your VPS: Setup Checklist

Cloudflare in front of a VPS: use Full (strict) SSL, restore real visitor IPs in Nginx, and firewall the origin so only Cloudflare reaches ports 80 and 443. Cloudflare's free plan gives a small business site a global CDN, DDoS protection and free HTTPS at the edge, and setup looks like "change your

Read article →
Migrate a Website to a New Server With Zero Downtime
DevOpsOct 7, 2026

Migrate a Website to a New Server With Zero Downtime

Move a site to a new server with zero downtime: lower the DNS TTL early, copy and test, do a final data sync, switch DNS and keep the old server running. Server migrations have a bad reputation because the usual approach is "copy everything, change DNS, hope". Then emails stop arriving, uploads from

Read article →
Docker Compose in Production: 10-Point Checklist
DevOpsOct 7, 2026

Docker Compose in Production: 10-Point Checklist

Docker Compose is fine in production on one server if you pin images, bind ports to 127.0.0.1, add healthchecks, rotate logs, limit memory and back up volumes. Plenty of people will tell you Compose is "only for development". For a single server running a web app, an API, a database and a worker,

Read article →
Self-Host LiveKit on a VPS: Setup, TURN and Tokens
DevOpsOct 7, 2026

Self-Host LiveKit on a VPS: Setup, TURN and Tokens

To self-host LiveKit, point two domains at a VPS, run the livekit/generate Docker image, install what it creates and open the WebRTC UDP port range. LiveKit is the media server I reach for when a client wants video, audio or voice AI inside their own product rather than a ready-made meeting app. It

Read article →
How to Start a Bulk SMS Business: The Tech Stack
DevOpsOct 7, 2026

How to Start a Bulk SMS Business: The Tech Stack

A bulk SMS business needs tested SMPP routes, a gateway like Jasmin for routing and billing, a customer panel like playSMS, and approved sender IDs. I set up SMS platforms for people starting this business, mostly in Africa and the USA, and the technical side is the easy part. The projects that

Read article →
Docker "Permission Denied" on docker.sock: Safe Fix
DevOpsOct 7, 2026

Docker "Permission Denied" on docker.sock: Safe Fix

Docker "permission denied" on docker.sock means your user isn't allowed to use the Docker socket. Join the docker group and log back in, or use rootless Docker. The full error looks like this: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock . You

Read article →
Nginx 504 Gateway Timeout: Causes and How to Fix It
DevOpsOct 7, 2026

Nginx 504 Gateway Timeout: Causes and How to Fix It

A 504 Gateway Timeout means Nginx gave up after waiting 60 seconds for your app. Find the slow step, often a database query, before raising the timeout. A 504 is the quieter cousin of the 502. With a 502 the app is down. With a 504 the app is up and working, just too slowly: Nginx forwards the

Read article →
Docker Container Keeps Restarting? How to Fix It
DevOpsOct 6, 2026

Docker Container Keeps Restarting? How to Fix It

A Docker container that keeps restarting is crashing on start. Run docker logs and docker inspect to get its exit code; that tells you the cause in seconds. docker ps shows Restarting (1) 4 seconds ago , the site is down, and restarting it again changes nothing. The restart policy is doing its job:

Read article →
Certbot Renewal Failed? Fix an Expired Let's Encrypt SSL
DevOpsOct 6, 2026

Certbot Renewal Failed? Fix an Expired Let's Encrypt SSL

If Certbot renewal failed, run sudo certbot renew --dry-run to see the error. Usual causes: port 80 blocked, a redirect hiding the challenge, or wrong DNS. An expired certificate takes a site down as completely as a crashed server: browsers show a full-page "Your connection is not private" warning

Read article →
Slopsquatting: Stop AI From Installing Fake npm Packages
DevOpsOct 5, 2026

Slopsquatting: Stop AI From Installing Fake npm Packages

Slopsquatting is when attackers publish packages under names AI tools hallucinate. Stop it with release-age cooldowns, blocked install scripts and name checks. When an AI coding agent writes npm install for a package that doesn't exist, the command just fails. Unless someone has already registered

Read article →
Lovable App to Production: Host It on Your Own Server
DevOpsOct 5, 2026

Lovable App to Production: Host It on Your Own Server

To run a Lovable app in production on your own server, sync it to GitHub, review security, build it in CI and serve it with Nginx (static) or PM2 (SSR). Lovable, Bolt and similar builders are great at getting a working product in front of people in days. The trouble starts when that product gets

Read article →

Need this done for your project? See my DevOps services →