A disposable remote desktop, one command away.
Spin up a full XFCE4 desktop and reach it from any browser — no port forwarding, no VPS, no static IP, no account setup. QuickDesk wires together Xvfb, x11vnc, and noVNC, then exposes it to the internet through a Cloudflare Tunnel.
QuickDesk was built for environments where a traditional desktop isn't available — a Termux session on a phone, a headless VPS, a minimal container — but a full graphical workspace is still occasionally needed. Run the script, pick Start, and get back a public HTTPS link to a live desktop within seconds. Close it down just as fast.
There is nothing to configure on a router, no domain to buy, and no cloud account required — Cloudflare's quick tunnels handle the public exposure for free.
Browser <-- HTTPS --> Cloudflare Tunnel <-- WS --> noVNC/websockify <--> x11vnc <--> Xvfb + XFCE4
| Component | Role |
|---|---|
Xvfb |
Virtual framebuffer — a display with no physical monitor attached |
XFCE4 |
The desktop environment rendered on that virtual display |
x11vnc |
Serves the display over the VNC protocol |
websockify / noVNC |
Bridges VNC to a browser-compatible WebSocket + HTML client |
cloudflared |
Opens an outbound-only tunnel and issues a public trycloudflare.com URL |
Because the tunnel is outbound-only, nothing needs to be exposed or forwarded on your local network.
- Single script, interactive menu — no flags or config files to hand-edit
- Installs and configures the entire stack in one step, with architecture detection for
cloudflared(amd64 / arm64 / armv7) - Optional VNC password, set once during install and reused on every start
- Configurable screen resolution
- Live Status view — check what's running and recover the current access link without restarting anything
- Per-service logs for troubleshooting instead of output being discarded
- Clean Stop and Uninstall paths that leave no orphaned processes
- A Debian- or Ubuntu-based environment (native Linux, WSL, or Termux with a proot/chroot distro)
sudoprivileges for package installation- Outbound internet access
git clone https://github.com/MRX7014/QuickDesk.git
cd QuickDesk
chmod +x quickdesk.sh
./quickdesk.shSelect 1) Install from the menu.
This installs xvfb, x11vnc, novnc, websockify, xfce4, and downloads the appropriate cloudflared binary for your architecture.
You'll be prompted to optionally set a VNC password and choose a screen resolution.
./quickdesk.sh| # | Option | Description |
|---|---|---|
| 1 | Install | One-time setup of all dependencies |
| 2 | Start | Launches the full stack and prints your access URL |
| 3 | Stop | Terminates all QuickDesk processes |
| 4 | Status | Shows per-service state and the current access link |
| 5 | Uninstall | Removes cloudflared and QuickDesk's config/logs (system packages are left untouched) |
| 6 | Exit | Quits the menu |
On Start, once the tunnel is up you'll see something like:
Open in browser:
https://random-words-here.trycloudflare.com/vnc.html
Open that link on any device to reach the desktop.
Settings persist in ~/.quickdesk/config after the first install:
RES="1280x720x24"
VNC_PORT="5900"
WEB_PORT="6080"
VNC_PASSWORD_ENABLED="no"Edit this file directly to change defaults, or re-run Install to be prompted again.
Per-service logs are written to ~/.quickdesk/logs/ (xvfb.log, xfce.log, x11vnc.log, websockify.log, cloudflared.log) — check these first if a service fails to start.
Cloudflare quick-tunnel URLs are randomly generated and not indexed, but they are public: anyone who obtains the link can connect. For anything beyond quick, supervised sessions:
- Enable a VNC password during install
- Run Stop as soon as you're done
- Avoid leaving QuickDesk running unattended on sensitive systems
Issues and pull requests are welcome. If you're adding a feature, please keep the single-file, dependency-light philosophy of the script intact.
