How to Run Coolify on Local VM and Expose it Publicly
- Mustafa Ramadan
- 7 days ago
- 4 min read

Recently I tried running Coolify on my local machine (for testing and playing with it). And now I personally use this local Coolify setup as my staging, development or home server environment. It allows me for FREE to quickly test new app deployments, monitor services, and experiment with configurations — all without touching my production server. Running Coolify on a local VM is the perfect balance between flexibility and control, especially for developers building self-hosted platforms or SaaS projects.
Here’s a simple guide — anyone can do it. You can install Ubuntu on any VM platform you like:
• Parallels Desktop (what I used)
• Hyper-V
• VirtualBox
• VMware Fusion Player
• UTM
• … any other you prefer
Setup your VM
Install Ubuntu (I used latest 24.04 LTS).
Important: use Bridged Network — this will give your VM an IP like 192.168.1.x from your router. Example: 192.168.1.110.
This is very important — makes exposing your VM to public much easier.
Install Coolify
SSH into your VM or open terminal.
Switch to root:
sudo -i
Make sure you server is up to date:
apt update && apt upgrade -y
Run Coolify install:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Done! Coolify is now running:
Access: http://192.168.1.110:8000 (your VM IP).
Directly you need to access the Coolify admin panel and create your admin user details.

Expose your Coolify to Public
Now you want your VM to be reachable from public internet:
Forward ports 80 and 443 from your router to your VM IP (example 192.168.1.110).
Every router has different UI, but usually under Port Forwarding or NAT, Virtual server.
Tp-link example:

That’s it! Now your Coolify should be accessible on your public IP (check via whatismyip.com).
You can also use Cloudflare Tunnel if you don’t want to deal with router.
Coolify is Public by Default (via sslip.io)
One cool thing: Coolify gives you public access out of the box — no domain config, no DNS setup needed.
When you deploy an app, Coolify auto-generates a domain using:
http://[your-app].[your-public-ip].sslip.io
For example, my VM public IP was 111.177.46.125, and my app was called uptime,
so Coolify gave me this public link automatically:
How it works?
Coolify uses sslip.io, a smart wildcard DNS service that resolves any [subdomain].[ip].sslip.io to the actual IP.
So no domain needed — you get a working public URL instantly.
You can use this to test apps immediately, or even share it with teammates.
Works great for quick staging or demo environments.
Just make sure your router has 80/443 open and forwarded to your VM, and it will work globally.
Configure Coolify
Go to your Coolify dashboard.
Configure your email, timezone, and create your first team/project.
For more about Coolify configuration check this article: Configure Coolify: Deploy and Manage Your First Project (Production Ready)
Deploy a test app: Uptime Kuma on coolify
In Coolify, add new project.
Deploy Uptime Kuma from the ready services:

Coolify will handle it for you.
Double check your app configuration and your public IP is correctly added in service domains like this:

Now you can test that your public Coolify works by visiting your deployed Uptime Kuma.
Very easy — now I can test apps locally and expose them to public for real-world testing.
Give it a try
Can’t access your server from outside?
Some home internet providers block ports 80 and 443 to prevent public hosting from home!
So even if you forward ports correctly, your Coolify might still be unreachable from the outside.
Solution: Use Cloudflare Tunnel for coolify — no port forwarding, works even behind strict ISPs.
I'm publishing a full guide on this soon — stay tuned ;)
About Security — Important!
This setup is great for local testing or private demo apps, but once your server is public, you must secure it:
Public IP + open ports = visible to attackers
The default Coolify setup is not hardened
sslip.io URLs are public — anyone can scan & find them
To protect your apps and server from abuse, I recommend installing:
CrowdSec Firewall (with free IP ban list)
Optionally enable Traefik AppSec WAF (Web App Firewall)
Check this:
Full guide 👉 Secure your Coolify server & websites with CrowdSec and Traefik
Secure coolify with Cloudflare Tunnel
If you’ve followed this guide and Coolify is working inside your local network but not accessible from the internet, your ISP is probably blocking ports 80 and 443 (very common in places like Australia 🇦🇺).
Don’t worry — we’ve got you covered 😉
Check out this guide to securely expose Coolify (and any app) to the internet using Cloudflare Tunnel — no port forwarding needed, works even behind strict ISPs:
Need Help?
If you want a fully secured Coolify server, I offer consulting & setup services:
CrowdSec Firewall + AppSec WAF
Traefik optimization
Hardening SSH & system
Monitoring & alerts
Installing Coolify and managing it
📩 Contact me down below 👇 happy to help you secure your server