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

  1. Open your constitution and click the Deploy button (rocket icon) next to the Export button.
  2. Choose a machine size (Basic to Power).
  3. Choose a region.
  4. Click Deploy Now to start provisioning.

Expected Timeline And Statuses

After deploy, you will see:

  1. PROVISIONING — Droplet is being created (typically 30s to 2m).
  2. CONFIGURING — Cloud-init installs desktop and gateway stack (typically 3m to 10m).
  3. 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

  • 401 from deployment routes: verify you are signed in and auth environment is correct.
  • Stuck in CONFIGURING for a long time: check droplet log /var/log/dictumal-init.log.
  • ACTIVE appears delayed: wait one extra 5s poll cycle or refresh.

Related Pages