Install Kasm Workspaces on a Linux VPS (Ubuntu)

3 min
VPS/VDS Hosting

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.com pointing to VPS_IP if you want a trusted HTTPS certificate.

🔄 1. Prepare the server

Bash
ssh 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.

Bash
cd /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):

Bash
sudo 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:

Bash
ufw 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:

Bash
apt -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

Bash
docker 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 -h and df -h. Add swap with --swap-size and 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 -a and 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.

Stay up to date with the latest offers, discounts and special promotions.

View promotions

We use cookies

We use analytics cookies to improve your experience on our site. No data is sold to third parties. Learn more in our privacy policy.