> For the complete documentation index, see [llms.txt](https://docs.golgothus.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.golgothus.tech/other-research/research-and-misc.-write-ups/kasm-install.md).

# Kasm Install

[Kasm Workspaces | The Container Streaming Platform](https://www.kasmweb.com/)

> Stream your workspace directly to your web browser on any device and from any location.

Kasm was a pretty sweet tool some of my co-workers have occasionally brought up to assist in spinning up / destroying infrastructure with ease. There are plenty of awesome pre-built / configured workspaces that are available, some specific ones to note:

* [Remnux](https://remnux.org)
* [Kali](https://www.kali.org/)
* [Code (VS Code)](https://code.visualstudio.com/)
* [Hunchly](https://hunch.ly/)
* [TraceLabs OSINT Image](https://www.tracelabs.org/initiatives/osint-vm)
* [DOOM (the pièce de résistance)](https://en.wikipedia.org/wiki/Doom_\(franchise\))

There are plenty of other useful workspaces I've not listed. What makes KASM so great is that the workspaces operate within Docker containers so you can also add other images / builds from other known container registries, you can set workspaces to maintain persistence and not be ephemeral as Docker containers tend to be. I will be attending [DEATHCON 2024](https://deathcon.io/), and figured there's no better way to access the lab network than installing TailScale on my Kasm workspaces, beats continuously snapshotting VM's.

### Installation

Installation Guide - [Single Server Installation — Kasm 1.16.0 documentation](https://www.kasmweb.com/docs/latest/install/single_server_install.html#installation-guide) I opted into using [Ubuntu 22.04](https://ubuntu.com/download/alternative-downloads), alternative supported operating systems can be found [here](https://www.kasmweb.com/docs/latest/install/system_requirements.html#id1). Additionally, there are two types of deployments:

* [single server installation](https://www.kasmweb.com/docs/latest/install/single_server_install.html)
* [multi server installation](https://www.kasmweb.com/docs/latest/install/multi_server_install.html) Here I chose the single server installation since I plan to install everything to my Proxmox node. Below are the resources I ended up provisioning (out of no real review):

![Image from Proxmox showing allocated resources](/files/IHJ37SKlJ6C4KQG2ReAj)

| Resource | Value              |
| -------- | ------------------ |
| CPU      | 4 Cores, 8 Threads |
| RAM      | 32 GB              |
| HDD      | 500 GB             |

> note; if you use Ubuntu 22.04 LTS, cURL is not pre-installed, so you will have to install it from apt

```bash
sudo apt install curl
```

or

```bash
sudo snap install curl
```

We can then run the steps from the install.

[Single Server Installation — Kasm 1.16.0 documentation](https://www.kasmweb.com/docs/latest/install/single_server_install.html#installation-guide)

It might be helpful to run the final command and output to a text file if you do a default install, I've had occasional issues with the admin password working properly, probably due to adding an extra character on accident.

```bash
sudo bash kasm_release/install.sh > ~/kasm-install.txt
```

Once Kasm is installed, run:

```bash
ip a
```

To pull the IP of the host you installed Kasm on, you can then use a browser on your physical asset, or the Kasm VM to access the Web portal. Example:

```bash
https://192.168.1.184
```

Signing in with either the Kasm admin or user account.
