Hi all π
I built a small AAPanel plugin that manages Cloudflare Tunnel (cloudflared)
end-to-end from the panel UI β useful if your server has no public IP, sits
behind NAT/CGNAT, or you'd rather not open 80/443 directly.
GitHub: https://github.com/fdciabdul/Cloudflare-Tunnel-aaPanel

What it does
The UI walks you through 4 steps and most of them auto-fill:
- cloudflared binary β one click downloads the latest release from GitHub
- Cloudflare credentials β browser login or API token. If the
cloudflare_manage plugin is already set up, it reuses those creds
automatically (no need to paste anything)
- Tunnel β create a new tunnel or pick an existing one
- Hostnames β type
app.example.com β http://127.0.0.1:8080,
tick "Auto-create CNAME", click Add. Plugin:
- upserts the public CNAME on Cloudflare (proxied)
- writes
/etc/cloudflared/config.yml
- installs + restarts the systemd service
- rolls back the ingress row if anything fails (atomic add)
Advanced section has service start/stop/restart and a live journalctl viewer.
Why I built it
- Existing
cloudflare_manage plugin handles DNS/CDN but not tunnels
- The Zero Trust dashboard works, but I wanted the workflow next to my sites
- Got tired of editing
config.yml and running cloudflared service install
by hand every time I added a hostname
Install
- Grab
cloudflare_tunnel-1.0.7.zip from the GitHub release
- AAPanel β App Store β Third Party Plugin top-right Import β pick the zip
- Open the plugin β Step 1 β click Install cloudflared β follow the wizard
Supports x86_64 and arm64. Tested on AAPanel 7.x with Python 3.12.
Source / issues / PRs
https://github.com/fdciabdul/Cloudflare-Tunnel-aaPanel
License: MIT
Feedback / bug reports welcome π