What is PM2? PM2 is a production-grade process manager that helps you keep applications running continuously. While it was originally designed for Node.js applications, PM2 can manage any type of application or script including Python, Ruby, PHP, Bash scripts, and binary executables. Important: PM2 is a process manager, not a package...
Continue reading...Linux
Exposing Local Projects to the Web with Cloudflared: A Quick Guide
🚀 Introduction Ever needed to quickly share a local project with someone without deploying it? Cloudflared makes it incredibly easy to expose your local development server to the web temporarily. Whether you’re showing off a new feature, getting feedback on a design, or testing an API, Cloudflared tunnels provide a...
Continue reading...How to Set Up a Powerful, Free Forever Server on Oracle Cloud (Caddy Edition)
Earlier in 2025, I signed up for Oracle’s “Free Forever” cloud offer. It was, and still is, one of the most generous free tiers available, especially for developers and hobbyists. I wrote a post to document my setup, and today I’m updating it with a more modern, simpler stack and...
Continue reading...A SysAdmin’s Complete Guide: From Crisis to Clean Server – The Ultimate Disk Space Recovery Playbook
Updated with advanced techniques and lessons learned from multiple real-world storage crises This is the comprehensive story of how I’ve evolved from reactive firefighting to proactive server management. What started as a “simple” file sync issue revealed a server at 93% disk capacity, leading to a systematic methodology that later...
Continue reading...A Step-by-Step Guide to Installing Portainer with Docker and Caddy on an ARM Server
Managing a server with multiple Docker applications can quickly become a juggling act of docker ps, docker logs, and docker-compose commands. While powerful, the command line isn’t always the most efficient way to get a high-level view of your services. That’s where Portainer comes in. It’s a lightweight, powerful, open-source management UI that gives...
Continue reading...