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
"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
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
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
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
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
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
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
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
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
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
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
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 →