Installs and manages KASM Workspaces, a container-based VDI platform for streaming desktops to browsers. Supports Ubuntu ARM64, desktop streaming, isolated browser sessions, and remote workspace access. Use when: installing KASM on Ubuntu ARM64, setting up VDI, configuring browser-based desktops, deploying on OCI instances. Keywords: kasm workspaces, VDI, virtual desktop, browser streaming, ARM64, kasm port 8443, container desktop
This skill inherits all available tools. When active, it can use any tool Claude has access to.
README.mdassets/env-templateinput-schema.jsonlib/kasm-api.shlib/prompts.shlib/utils.shmodules/03-backup-configuration.shreferences/INSTALLATION.mdreferences/QUICKSTART.mdreferences/README-WIZARD.mdreferences/cloudflare-tunnel.mdreferences/post-installation-interview-spec.mdPurpose: Install KASM Workspaces on a single Ubuntu server and configure secure browser-based desktops.
STOP. Before ANY installation commands, collect ALL parameters from the user.
Copy this checklist and confirm each item:
Required Parameters:
- [ ] KASM_SERVER_IP - Target server IP address
- [ ] SSH_USER - SSH username (default: ubuntu)
- [ ] SSH_KEY_PATH - Path to SSH private key (default: ~/.ssh/id_rsa)
- [ ] KASM_ADMIN_PASSWORD - Admin password (minimum 12 characters)
- [ ] KASM_ADMIN_EMAIL - Admin email (default: admin@kasm.local)
Resource Parameters:
- [ ] Server RAM - Minimum 8GB (4GB KASM + 4GB per concurrent session)
- [ ] SWAP_SIZE_GB - Swap file size (default: 8GB, recommended for ARM64)
Conditional Parameters (ask user):
- [ ] Using Cloudflare Tunnel for HTTPS? (Y/N)
If Y: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID, TUNNEL_HOSTNAME
- [ ] Custom KASM port? (default: 443 after install, 8443 during install)
DO NOT proceed to Step 1 until ALL required parameters are confirmed.
Based on user answers, follow the appropriate workflow:
Use when: New server, no existing KASM installation.
references/INSTALLATION.mdUse when: KASM already installed, need to configure modules.
references/QUICKSTART.mdDetermine access method based on Step 0 answers:
| Scenario | Action |
|---|---|
| Cloudflare Tunnel = Yes | Read references/cloudflare-tunnel.md (uses noTLSVerify: true) |
| Direct IP only (dev) | Access via https://SERVER_IP (accept self-signed cert) |
Run this verification checklist:
Verification:
- [ ] KASM UI accessible at https://SERVER_IP (or tunnel hostname)
- [ ] Login with admin credentials works
- [ ] At least 8 KASM containers running (docker ps | grep kasm)
- [ ] If tunnel: HTTPS working at TUNNEL_HOSTNAME
If login fails: Extract credentials from install_log.txt - see references/INSTALLATION.md section "Get Admin Credentials".
Detailed references (one level deep):
references/INSTALLATION.mdreferences/cloudflare-tunnel.mdreferences/QUICKSTART.mdreferences/README-WIZARD.mdreferences/post-installation-interview-spec.mdlog_admin "SUCCESS" "installation" "Installed KASM Workspaces" "version=1.x server=$SERVER_ID"
log_admin "SUCCESS" "operation" "Ran KASM post-install wizard" "modules=$MODULES"
admin-devops for inventory and provisioning.admin-infra-* for OCI/Hetzner/etc server setup.