Deploying
Launch a streaming cloud desktop from your constitution and open it in your browser.
Overview
Dictumal creates a DigitalOcean droplet, runs cloud-init, and brings up XFCE + TigerVNC + Guacamole + HTTPS. Deployment does not require per-instance DNS setup.
What Gets Deployed
- XFCE Desktop — A lightweight Linux desktop environment.
- TigerVNC + Apache Guacamole — VNC provides the desktop session and Guacamole streams it to your browser over HTTPS.
- Nginx + HTTPS — Reverse proxy for
/guacamole/using a self-signed certificate. - Firewall (UFW) — Allows ports 22, 80, 443.
Deploying Step by Step
- Open your constitution and click the Deploy button (rocket icon) next to the Export button.
- Choose a machine size (Basic to Power).
- Choose a region.
- Click Deploy Now to start provisioning.
Expected Timeline And Statuses
After deploy, you will see:
- PROVISIONING — Droplet is being created (typically 30s to 2m).
- CONFIGURING — Cloud-init installs desktop and gateway stack (typically 3m to 10m).
- ACTIVE — HTTPS Guacamole endpoint is ready and desktop launch buttons are enabled.
Polling runs every 5 seconds, so final UI updates can lag by one poll cycle after backend status changes.
Accessing Your Desktop
Once active, click Open Desktop. This calls /api/deployments/[id]/launch, which redirects to Guacamole with a short-lived encrypted token.
If a shared gateway host is configured, you may also see Direct IP for fallback launch.
Gateway Host Behavior
- Default preferred host:
stream.the-next-lab.com. - Override with
NEXT_PUBLIC_STREAM_GATEWAY_HOST. - Fallback: deployment IP is used when gateway host is blank or launch target is explicitly set to
ip.
Destroying a Deployment
Click Destroy in the deploy dialog or instances page. The app calls DELETE /api/deployments/[id], attempts DO droplet deletion, and marks the deployment as DESTROYED.
Troubleshooting Quick Hits
401from deployment routes: verify you are signed in and auth environment is correct.- Stuck in
CONFIGURINGfor a long time: check droplet log/var/log/dictumal-init.log. - ACTIVE appears delayed: wait one extra 5s poll cycle or refresh.