Kasm – Docker containers in your browser!

blog

Written by:

I just discovered Kasm, an amazing little tool that lets you run Docker containers on a remote server in a client browser. From their web site:

Streaming containerized apps and desktops to end-users. The Workspaces platform provides enterprise-class orchestration, data loss prevention, and web streaming technology to enable the delivery of containerized workloads to your browser.

 

Want to load a suspicious web site in a sandboxed browser? Fire up a Chromium, Edge or Brave window in your desktop browser. Need a desktrop environment? Centos and Ubuntu come loaded out of the box. Want to run The Gimp, Teams, Zoom or other apps in an isolated container? Done.

Kasm Workspaces environment is available in a community edition with limitations (perfectly usable in a home lab environment) or in professional/enterprise editions that include support and additional features for $5 per user per month and $10 per user per month, respectively.

Installation was simple. SSH into my docker app host, a virtual machine in my home lab running in a Proxmox VE host.

I needed to create a swap file, since I didn’t have one in place.

sudo dd if=/dev/zero bs=1M count=1024 of=/mnt/1GiB.swap
sudo chmod 600 /mnt/1GiB.swap
sudo mkswap /mnt/1GiB.swap
sudo swapon /mnt/1GiB.swap
cat /proc/swaps
echo '/mnt/1GiB.swap swap swap defaults 0 0' | sudo tee -a /etc/fstab
cd /tmp
wget https://kasm-static-content.s3.amazonaws.com/kasm_release_1.10.0.238225.tar.gz
tar -xf kasm_release*.tar.gz
sudo bash kasm_release/install.sh -L <Port Number>

You'll want to capture the page of usernames/passwords, then go to a browser and load
https://<your ip address>:<your port>

This loads the admin page by default. Go to the Workspaces” tab to see the available environments. More are available from their GitHub page.

 

I’m looking forward to playing with Kasm and using it for creating sandbox environments in a browser without a lot of effort.

Leave a Reply

Your email address will not be published. Required fields are marked *