Kasm Workspaces with Docker

Kasm Workspaces with Docker

What is Kasm?

Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections.

In simple term, you can run a full desktop or browser on your web-browser on-demand

What we need?

Kasm Services and end user sessions are Docker containers. Access to the Docker registry is required for installation. Please refer for detailed requirement list here in Official guide

Let's see minimum requirement

  1. CPU : 2 cores
  2. Memory: 4GB
  3. Storage: 50GB

You can run the Kasm on a raspberry-pi as well

We need to install docker on the host machine, I am not going to explain the steps here, you can follow below guide.

How to install Docker and Docker Compose on Raspberry Pi
What is Docker? Docker Engine is an open source containerization technology for building and containerizing your applications. Docker Engine acts as a client-server application with Docker Engine installation overviewLists the installation methodsDocker Documentation Install Docker on Raspberry…

Install Kasm with Docker

I am going to use docker-compose file for this project, we will be using linuxserver.io image

nano docker-compose.yml
version: "2.1"
services:
  kasm:
    image: lscr.io/linuxserver/kasm:latest
    container_name: kasm
    privileged: true
    environment:
      - KASM_PORT=8443
    volumes:
      - ./data:/opt
      - ./profiles:/profiles #optional
      - /dev/input:/dev/input #optional
      - /run/udev/data:/run/udev/data #optional
    ports:
      - 3000:3000
      - 8443:443
    restart: unless-stopped
  • Port : You can always change the port number 8443 based on your enviroment.
  • Port 3000 will used for Kasm installation.

start the container with below command.

docker compose up

Kasm Installation

Once the container is started, navigate to the server address with the port number

in my case, the server address is https://10.10.11.23:3000

Accept and continue the KASM license agreement

KASM WORKSPACES END USER LICENSE AGREEMENT

Set the initial password for [email protected] and [email protected]

Note: If you wish to use GPU, Please enable the same from the dropdown.

Select the relevant applications from the list, and hit Install

Application Selection

Please note that installation time will vary based on the application selection, you will always have option to install these application in late phase.

Application download logs

Persistant profiles

In order to use persistant profiles in Workspaces you will need to mount in a folder to use from your host to /profiles. From there when configuring a workspace you can set the Persistant Profile Path to IE /profiles/ubuntu-focal/{username}/, more infomation can be found HERE

Using Kasm Workspace

Once the container images downloaded, you can navigate to the server address with port 4443 to access Kasm workspace.

Use the admin/user login to access the workspace

You can start any application from the dashboard.

Image Loading Error

If you see below error, you may need to wait for some time to complete the image download.

This image is not currently available. Agent may still be downloading Image.