Domains & SSL
DevPanel uses Cloudflare Tunnels to expose services to the internet — no inbound ports, no static IP required. SSL is handled automatically by Cloudflare.
Quick Tunnel
Get a free temporary *.trycloudflare.com URL with one click. No Cloudflare account needed. Great for testing.
Custom Domain
Map your own domain (e.g. app.example.com) via a persistent Cloudflare Tunnel. Requires Cloudflare account + API credentials.
Using a Quick Tunnel
Quick tunnels are zero-config — no Cloudflare account required. They are ideal for sharing a service temporarily or verifying connectivity.
- 1Open a service and go to the Domains tab.
- 2Make sure the service has a host port configured (set it in the Overview tab).
- 3Click Start Tunnel — DevPanel starts a cloudflared process and returns a *.trycloudflare.com URL.
- 4The URL is valid while the tunnel is running. Click Stop Tunnel to tear it down.
Note: Quick tunnel URLs change every time you start the tunnel. For a permanent address, use a custom domain.
Prerequisites for custom domains
- ✓A domain managed in Cloudflare
- ✓A Cloudflare API token with DNS + Tunnel edit permissions
- ✓Your Cloudflare Account ID
- ✓A Cloudflare Tunnel ID (created in Zero Trust → Networks → Tunnels)
How to get a Cloudflare API Token
DevPanel needs an API token to manage DNS records and tunnel ingress rules on your behalf.
- 1
Log in to Cloudflare
Go to
dash.cloudflare.comand sign in. - 2
Go to API Tokens
Click your profile avatar (top right) → My Profile → API Tokens.
- 3
Create a Custom Token
Click Create Token → scroll to the bottom → Get started next to Create Custom Token.
- 4
Add the following permissions
Scope Resource Access Account Account Settings Read Account Cloudflare Tunnel Edit Zone Zone Read Zone DNS Edit - 5
Copy the token immediately
Click Continue to summary → Create Token. Cloudflare shows the token only once — copy it now.
How to find your Account ID
- 1Log in to dash.cloudflare.com.
- 2Click on any domain in your account.
- 3In the right-hand sidebar, scroll down to the API section — your Account ID is listed there.
How to create a Cloudflare Tunnel
The tunnel is a persistent outbound connection from your server to Cloudflare — no open inbound ports required.
- 1
Log in to Cloudflare
Go to
dash.cloudflare.comand sign in. - 2
Go to Zero Trust
In the left sidebar click Zero Trust. Select your account if prompted.
- 3
Navigate to Networks → Tunnels
In the Zero Trust sidebar, expand Networks and click Tunnels.
- 4
Click "Create a Tunnel"
Choose Cloudflared as the connector type and click Next.
- 5
Name your tunnel and save
Enter a name (e.g.
devpanel-prod) and click Save tunnel. - 6
Copy the Tunnel ID
After saving, the tunnel detail page shows a Tunnel ID (UUID format). Copy it — you will need it in DevPanel settings.
Configure Cloudflare in DevPanel
- 1Open the DevPanel dashboard and go to Settings → Cloudflare.
- 2Enter your API Token, Account ID, and Tunnel ID.
- 3Click Save — DevPanel validates the credentials immediately.
Assigning a custom domain to a service
- 1Open the service and go to the Overview tab. Set a host port (e.g. 8080) — the tunnel routes traffic to this port.
- 2Go to the Domains tab.
- 3Click Add Domain, enter a hostname (e.g. app.example.com), and confirm.
- 4DevPanel updates the tunnel ingress config and creates a proxied CNAME DNS record pointing to your tunnel.
- 5The domain is live within seconds. Cloudflare handles SSL automatically — no Let's Encrypt or Certbot needed.
How it works
Cloudflare Tunnel (cloudflared)
The cloudflared daemon runs on your server and maintains an outbound connection to Cloudflare's edge. No inbound ports 80 or 443 need to be open.
Ingress routing
When you add a domain, DevPanel calls the Cloudflare API to append an ingress rule: incoming requests for that hostname are forwarded to http://localhost:<hostPort> on your server.
DNS (CNAME, not A record)
DevPanel creates a proxied CNAME record pointing your hostname at {tunnelId}.cfargotunnel.com. Traffic reaches Cloudflare first, then travels through the tunnel to your server.
SSL / TLS
Because the DNS record is Cloudflare-proxied, TLS is terminated at Cloudflare's edge. There is no Certbot or Let's Encrypt involved — HTTPS just works automatically.
Quick tunnels
For testing without a custom domain, DevPanel can start a temporary *.trycloudflare.com tunnel per service. These are free, ephemeral, and require no Cloudflare account.