Goodbye Heroku: How I Built My Own PaaS on Linode for $5
Source: Dev.to
Overview
We all love the “git push to deploy” magic of platforms like Vercel, Netlify, and Heroku. But once your hobby project scales or you need a backend database, the pricing tiers can get scary fast. I recently decided to take back control: the developer experience of a PaaS without the price tag of a raw VPS.
Enter the power couple: Linode (for the hardware) and Coolify (for the magic). Linode is reliable, straightforward, and Linux‑centric. A standard “Shared CPU” Nanode starts at $5/month, which is plenty for a few containerized apps and a small database.
Coolify is an open‑source, self‑hostable Heroku alternative. It provides a beautiful dashboard to manage applications, databases, and services, handling:
- Reverse proxies (Traefik) automatically
- SSL certificates (Let’s Encrypt) automatically
- Databases (Postgres, Redis, MySQL) with one click
- Deployments from GitHub/GitLab
- Optional self‑hosted Gitea
The Setup Process
Step 1: Spin up the Server
- Image: Ubuntu 24.04 LTS (always bet on LTS).
- Region: Choose the location closest to your users.
- Plan: Nanode 1 GB (or higher if you plan to host heavy apps).
Step 2: DNS Configuration
Create a DNS A record (e.g., paas.yourdomain.com) pointing to your new Linode IP address. This will be the dashboard for your Coolify instance.
Step 3: Secure the Server
SSH into the new Linode instance (add your SSH key during creation for password‑less login):
ssh root@
Update the package repositories:
apt update && apt upgrade -y
Configure the firewall (UFW) to allow only the required ports:
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw allow 8000/tcp # Coolify dashboard (can be closed later)
ufw allow 6001/tcp # Optional: real‑time service feature
ufw enable
Press y when prompted.
Step 4: Install Coolify
Coolify works best on a fresh server; ensure no other web server (Nginx/Apache) is listening on port 80.
Run the official install script:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
What the script does
- Installs Docker Engine (if missing).
- Creates a data directory at
/data/coolify. - Pulls the necessary Docker images for Coolify’s database and API.
- Sets a restart policy so the PaaS survives reboots.
The installation usually takes 2–5 minutes depending on your Linode plan.
Step 5: Verify Installation
Check that the containers are running:
docker ps
You should see coolify, coolify-db, and coolify-proxy listed.
Step 6: The Dashboard
Open http://:8000 (or the DNS name you configured) to access the Coolify dashboard.
- Select your repository (GitHub, GitLab, etc.).
- Choose a build pack (Node, Docker, Rust, Go, …).
- Click Deploy.
Coolify will pull the code, build the container, set up internal networking, generate an SSL certificate, and expose the app to the internet.
Pros & Cons
| Pros | Cons |
|---|---|
| Fixed monthly cost (Linode) regardless of bandwidth spikes | You become the sysadmin; downtime is your responsibility |
| Full data ownership and privacy | Initial setup takes 15–30 minutes vs. a few seconds on managed services |
| No limits on build minutes or bandwidth beyond your VPS resources | Ongoing maintenance (updates, security patches) required |
Building your own PaaS might sound like overkill, but tools like Coolify have lowered the barrier to entry significantly. For the price of a coffee, you get a powerful, private, and professional deployment environment.
If you have a spare domain and $5, give it a try—you might never go back to managed hosting again.