Skip to main content
Version: Developer

Uninstall

This guide covers fully removing Kasm Workspaces from your environment. Follow the section that matches how Kasm was deployed.

Single- and Multi-Server

Use these steps to remove a Kasm installation that was deployed directly to a host using the Kasm installer.

Stop Kasm services

sudo systemctl stop kasm.service
sudo systemctl stop kasm-network-plugin.service

Remove the Kasm systemd service units

sudo systemctl disable kasm.service
sudo systemctl disable kasm-network-plugin.service
sudo rm /etc/systemd/system/kasm.service
sudo rm /etc/systemd/system/kasm-network-plugin.service
sudo systemctl daemon-reload

Remove Kasm session containers

sudo docker rm -f $(sudo docker container ls -qa --filter="label=kasm.kasmid")
Note

If there are no session containers to remove, you will get an error that "docker rm requires at least 1 argument", which means that the command ran successfully.

Remove Kasm service containers

export KASM_UID=$(id kasm -u)
export KASM_GID=$(id kasm -g)
sudo -E docker compose -f /opt/kasm/current/docker/docker-compose.yaml rm

Remove the Kasm Docker network

sudo docker network rm kasm_default_network

Remove the Kasm sidecar Docker network plugin

plugin_name=$(sudo docker network inspect kasm_sidecar_network --format '{{.Driver}}')
sudo docker network rm kasm_sidecar_network
sudo docker plugin disable $plugin_name
sudo docker plugin rm $plugin_name
sudo rm -rf /var/log/kasm-sidecar
sudo rm -rf /var/run/kasm-sidecar

Remove the Kasm database Docker volume

sudo docker volume rm kasm_db_1.19.0

Remove the Kasm Docker images

sudo docker rmi postgres:14-alpine
sudo docker rmi kasmweb/nginx:latest
sudo docker rmi kasmweb/share:1.19.0
sudo docker rmi kasmweb/agent:1.19.0
sudo docker rmi kasmweb/manager:1.19.0
sudo docker rmi kasmweb/api:1.19.0

sudo docker rmi $(sudo docker images --filter "label=com.kasmweb.image=true" -q)

Remove the Kasm installation directory

sudo rm -rf /opt/kasm/

Remove Kasm user accounts

sudo deluser kasm_db
sudo deluser kasm

Kubernetes

Use these steps to remove a Kasm deployment installed with the Kasm Helm chart. helm uninstall removes the chart's managed resources but leaves a few items behind that must be cleaned up separately.

Uninstall the Helm release

helm uninstall {RELEASE_NAME} -n {NAMESPACE}

Remove the Kasm secret

The {RELEASE_NAME}-secrets secret holds the admin password, database password, and service tokens. It is not managed by Helm and is not removed by helm uninstall:

kubectl delete secret {RELEASE_NAME}-secrets -n {NAMESPACE}

(Optional) Remove the database PVC

If you used the built-in PostgreSQL database, the PVC backing it may still be present depending on your storage class's reclaim policy. List remaining PVCs and delete as needed:

kubectl get pvc -n {NAMESPACE}
kubectl delete pvc {PVC_NAME} -n {NAMESPACE}
This destroys your Kasm data

Deleting the database PVC permanently removes all Kasm state, including user accounts, session history, and configuration. Back it up first if you may want to restore later.

Delete the namespace (nuclear option)

To clean up the secret, any leftover PVCs, and anything else still in the namespace in a single step, delete the namespace itself:

kubectl delete namespace {NAMESPACE}