Kasm Workspaces streams containerized desktops and browsers to your own browser, so you can open a disposable Chrome or a full Linux desktop from anywhere. On a VPS Linux Infrawire, the single-server edition is the simplest way to run it. This guide targets Ubuntu 24.04 (Ubuntu 22.04 works the same way).
📋 Prerequisites
- A fresh KVM VPS with Ubuntu, root SSH access and nothing else listening on port 443. From your customer area you will find the VPS IP and the root password.
- Kasm recommends at least 2 CPU cores, 4 GB of RAM and 50 GB of SSD storage for the base install, and each running workspace needs extra memory on top of that. Plan more RAM if several users connect at once.
- A domain such as
kasm.example.compointing toVPS_IPif you want a trusted HTTPS certificate.
🔄 1. Prepare the server
Bashssh root@VPS_IP apt update && apt -y upgrade && apt -y install curl
Kasm installs Docker itself, so do not set up a different container runtime beforehand. Reboot if a new kernel was installed.
⬇️ 2. Download the latest release
The version number changes regularly, so do not copy it from an old tutorial. Open the official download page (https://kasmweb.com/downloads) or the single-server installation guide (https://kasmweb.com/docs/latest/install/single_server_install.html), copy the link of the current release archive for the single-server installer, and use it in place of RELEASE_URL below.
Bashcd /tmp curl -O RELEASE_URL tar -xf kasm_release_*.tar.gz
The archive extracts to a kasm_release directory that contains install.sh.
⚙️ 3. Install with enough swap
Workspaces are memory hungry, and swap protects the server from sudden out-of-memory kills. The installer can create a swap file for you with the --swap-size option (in MB):
Bashsudo bash /tmp/kasm_release/install.sh --swap-size 4096
If port 443 is already taken, add -L 8443 to serve the web interface on 8443 instead. The installation downloads several Docker images and takes 10 to 20 minutes. At the end, the script prints the generated passwords for the default accounts admin@kasm.local and user@kasm.local. Save them immediately; they are shown only once.
🌐 4. Open the web console
Browse to https://VPS_IP (or https://VPS_IP:8443 if you changed the port). Accept the self-signed certificate warning for now. Log in as admin@kasm.local to reach the admin area, and change the generated passwords from the user menu.
If you use a firewall, allow the web port:
Bashufw allow 22/tcp ufw allow 443/tcp ufw enable
Allow SSH before enabling UFW so you do not lock yourself out.
🔒 5. Add a Let's Encrypt certificate
Kasm serves its own certificate through an internal Nginx proxy. Request a certificate with Certbot in standalone mode, which needs port 80 free (Kasm does not use it), then copy it where Kasm expects it:
Bashapt -y install certbot certbot certonly --standalone -d kasm.example.com cp /etc/letsencrypt/live/kasm.example.com/fullchain.pem /opt/kasm/current/certs/kasm_nginx.crt cp /etc/letsencrypt/live/kasm.example.com/privkey.pem /opt/kasm/current/certs/kasm_nginx.key /opt/kasm/bin/stop /opt/kasm/bin/start
Certificates last 90 days, so repeat the copy and restart after each renewal, for example from a Certbot deploy hook in /etc/letsencrypt/renewal-hooks/deploy/.
🚀 6. Launch an isolated browser
Sign in as a normal user (user@kasm.local) and the Workspaces page lists the available images. If the list is empty, log in as admin, open Workspaces > Registry, and install the images you want, such as Chrome, Firefox or an Ubuntu desktop. Then click a workspace to start it: a new tab opens a full desktop or browser streamed to you, with clipboard and file transfer controls in the side panel. When you close the session, the container is destroyed.
✅ 7. Verify
Bashdocker ps --format '{{.Names}}: {{.Status}}' ss -tlnp | grep -E ':(443|8443)\b' free -h
You should see the kasm_* containers running, the web port listening, and swap present in the free -h output.
🧰 Troubleshooting
- The installer stops with a memory or disk error: check
free -handdf -h. Add swap with--swap-sizeand free disk space, then rerun the installer. - A workspace stays on a loading screen: the server is probably short of RAM or the image is not fully pulled. Check
docker ps -aand the logs in/opt/kasm/current/log/, and close other sessions. - Browser warns about the certificate: the files in
/opt/kasm/current/certs/were not replaced or the services were not restarted. Repeat step 5 and use the domain name, not the IP, in the address bar. - Lost admin password: reset it from the admin area with another admin account, or reinstall on a clean VPS if no administrator remains.
🎉 Kasm Workspaces is running: launch browsers and desktops on demand, safely isolated from your own computer.