youtube.nixfred.com nixfred.com

Install Kasm Workspaces in 10 Minutes (Docker + Remote Desktops in Your Browser)

Sonoran Tech makes the case for disposable computing and then builds it: Kasm Workspaces runs containerized apps and full Linux desktops on a server in your home lab and streams them into a browser tab, so the link you do not trust and the bank session both run somewhere that is not your machine and neither one survives being closed. He demos a Chrome workspace and a whole Ubuntu desktop in a tab, then builds a fresh Proxmox VM (Ubuntu Server, eight cores, modest disk), pastes the single server install block straight off the Kasm docs, catches live that the install script needs sudo, and is emphatic that you write down the credentials the installer prints because recovering them means going into the database. The last third is the part quick starts skip: persistent profiles, which take one host directory at /mnt/kasm_profiles owned 1000:1000 with mode 700, a profile path configured per workspace rather than globally, and path variables that segment the data by user and image. He proves it by touching a file in an Ubuntu session, deleting the session outright, and finding the file waiting in the next one. The hard limit he states plainly: profiles persist your home directory, not apt installs, so the moment you need package changes to stick you are back on a full VM or building a custom workspace image.

Published Feb 23, 2026 15:21 video 29 min read Added Aug 8, 2026 Open on YouTube →

At a glance

Sonoran Tech opens with the two moments that make a person want disposable computing: you hover over a link you do not fully trust, and you sit down to check a bank account on the same machine that has everything else on it. His answer is Kasm Workspaces, a self hosted platform that runs containerized apps and full Linux desktops on a server in your home lab and streams them into a browser tab. You launch a workspace, use it, close it, and it is gone. Nothing was ever installed on your machine and nothing survives the session unless you deliberately ask it to.

The video is deliberately ordered demo first, install second. He shows Chrome running in a tab, then a whole Ubuntu desktop in a tab, then explains where disposable stops being enough and persistent profiles take over. Only then does he build a fresh Proxmox virtual machine, install Ubuntu Server on it, paste the single server install command straight off the Kasm documentation, and get a working console in one script run.

The last third is the part most quick start videos skip. He enables persistent profiles, which is the feature that turns Kasm from a novelty into something you use daily. That means creating one directory on the host, setting ownership to uid and gid 1000, locking it to mode 700, and then configuring a profile path per workspace, because there is no global switch. He proves it by touching a file inside an Ubuntu session, destroying the session outright, launching a fresh one, and finding the file still there.

This page rebuilds all of it in the video's order: every command, every port, every version string, the exact VM he sizes, the credentials warning he is emphatic about, the access management screens he detours into, and the one gotcha that bit him live on camera. A reader who never plays the video can go from an empty hypervisor to a Kasm install with working persistent profiles.

Nothing runs on your machine. Only pixels come back. Your machine a browser tab and nothing else no install no cache no leftover state keys + mouse pixel stream Kasm host in the home lab Ubuntu Server VM on Proxmox, Docker underneath Chrome workspace its own cookies its own cache its own egress Ubuntu desktop full Linux GUI terminal, VS Code clone a repo, work Delete the session the container is destroyed and every byte inside it goes with it unless a persistent profile is mounted (see Figure 5)

This is why the bank tab and the sketchy link can both be safe: neither one ever touches the machine you are sitting at, and neither one outlives the session.

Figure 1. The whole security argument of the video in one picture. A Kasm workspace is a Docker container on a server you own; your laptop is a thin client receiving a video stream. The sketchy link opens in a container's browser, not yours, and when you close the session the container and all of its state are destroyed. That is what he means by disposable.

The pitch: computers you can throw away (0:00)

He starts with a question rather than a product. Have you ever paused before opening a link, or before browsing to something like your bank account, and worried what if something goes wrong, what if I get hacked? Or have you ever wanted a clean Linux desktop set up just for one task, and then wanted it gone like it never happened? That is what Kasm is for, and he notes he has covered it more than once in previous videos.

The plan for this one is stated up front: show Kasm in action first, then walk through the installation using Docker Compose so you can get it running in your own home lab.

Then the definition. Kasm Workspaces is a platform that streams containerized apps and even full desktop environments right into your browser. The framing he gives it is a comparison against the reflex most home labbers have, which is to spin up a whole virtual machine just to test something. Instead of that, you launch a workspace, and the workspace can be Chrome, Firefox, Ubuntu, or whatever else. You use it, and when you close it, it is completely gone.

His verdict on why that matters is the thesis of the entire video: that disposable nature is the whole point of it. Fast, clean, and very useful.

The demos (0:56)

Demo one: a Chrome session that is not on your computer

He logs in to a running Kasm instance and lands on a catalog of workspaces. He picks Chrome. Kasm offers two ways to open it: right inside the current window, or in another tab. With a couple of clicks he has a Chrome session running in a web browser.

Then comes the sentence that matters. It is not running on his machine. It is running on a server inside a container on his home lab, and he is just streaming the UI in the browser.

Two use cases follow immediately from that fact:

And that is the key part. When he is done he just closes the session and it is gone. No leftover browser state, no cache junk.

Demo two: an entire Linux desktop in a browser tab

Back to the workspaces screen, he opens Ubuntu. What appears is a full Linux desktop in a browser tab, running on the Kasm server.

He lists what that buys him. If he needs a quick Linux environment to run a tool, test a script, or even do some coding, he opens this. He can open VS Code inside it, clone a Git repository, do some work, let his AI agents handle the coding for him, and then dispose of it when it is done.

The alternative he is rejecting is explicit: he does not need to remote into a VM or keep a bunch of VMs around just in case. He launches this, uses it, and gets rid of it.

The obvious objection: what if I want to keep something

He raises the objection himself. Disposable is very cool, but what if you want to persist some stuff? With Kasm you can do both. You keep it disposable, or you enable persistent profiles so your settings and files stick between sessions. He calls that combination the sweet spot: disposable compute, with convenience when you want it.

Then he draws a boundary that is easy to miss and expensive to learn the hard way. Persistent profiles persist user data, and only user data. Think bookmarks. On an Ubuntu desktop workspace, it persists what is in the home directory. But:

If you start to do things like install applications or even run something like apt update, those changes will not persist.

For that you need a different workspace, and potentially a custom workspace built for your use case, which he explicitly says he is not covering in this demo.

 Disposable workspaceWorkspace + persistent profileFull VM
What survives closing itNothing at allThe home directory and user data onlyEverything, it is a real machine
Installed packages surviveNoNo. apt update and installs are lostYes
Can you change the OSNot meaningfullyNot meaningfully, you need a custom workspace imageYes, that is the point of a VM
How you reach itA browser tabA browser tab, with a toggle at launchSSH, RDP, or a hypervisor console
Time to a usable desktopA couple of clicksA couple of clicksProvision, install, configure
Where he uses itLinks he does not trust, one off testsEveryday browsing with his bookmarks, quick Ubuntu sessions for codingWhen he needs to change the operating system or hold a particular configuration, on his Proxmox server
Figure 2. The three tier model he actually runs. The row that decides everything is the second one: a persistent profile keeps your files, not your system. The moment you need apt install to stick, you have left Kasm's territory and you are back on a VM, or you are building a custom workspace image.

Where he personally draws the line

He describes his real usage honestly, and it is more restrained than a product pitch would be. Kasm sits between two poles for him: needing a full VM where he really has to interact with the operating system and make changes, and wanting something very lightweight that he can throw away or persist just a little state in and come back to later.

In practice, most of his Kasm usage is the browser. He persists his bookmarks and a bit of other state, and then when he needs to open a link he is unsure about, or wants complete confidence that he is hitting a website from a completely clean machine, that is what he reaches for. Occasionally he opens the Ubuntu desktop as well, where he will open VS Code, clone his local Git repository, and work on it while using his own machine for something else.

But when he needs an actual full VM, when he has to make operating system changes or wants a particular configuration, he goes back to a full VM running on his Proxmox server. His summary: Kasm really fills a great sweet spot there.

Installation (4:22)

Build the host: a virtual machine on Proxmox

He drops into his Proxmox dashboard. He already has a Kasm VM running, the one he uses at home, but the point of the exercise is to build one from scratch, so he creates a new VM and names it Kasm 2.

The sizing decisions, exactly as he makes them:

 Kasm documented minimumWhat he builds in the video
CPU2 cores8 cores, on an older slow server
Memory4 GBRaised above the Proxmox default, exact figure not narrated
Storage50 GB SSDBumped up a little, deliberately modest
Operating systemUbuntu 22.04 or 24.04, Debian 11 or 12, RHEL, Oracle Linux, AlmaLinux, Rocky Linux, Raspberry Pi OSUbuntu Server
Web port443Default, reached by IP over HTTPS
RDP gateway port3389, optionalNot used
Figure 3. His VM against the requirements Kasm publishes. Note the shape of the gap: he is generous on cores and stingy on disk, which is exactly right for this workload. Every workspace is a container that gets scheduled onto those cores, while the disk mostly holds images. Sources: Kasm system requirements and single server install.

He starts the VM, goes off camera to get Ubuntu Server installed, and comes back when it is done.

Get the command from the documentation

With the server up, he goes to install Kasm, and his framing is that this step is barely a step: installing this is literally as easy as going to their website and following the directions. The directions are dead simple.

The path he takes through the site:

  1. Go to the Kasm site and open Resources.
  2. Work with the Community Edition, the free self hosted tier. (If you want the full tier breakdown, the Learn Linux TV getting started page on this site covers the pricing table in detail; Community is $0 per user per month for self hosted use.)
  3. Scroll to the bottom and find Documentation, which opens in another window.
  4. In the docs, choose the single server installation. That is the simple path and it is what this video does.

He notes the docs also offer an offline install. He is honest that he has not tried it, but observes that it looks like it just predownloads everything.

The single server install is the following block, copied straight from the docs. The version string moves with each Kasm release, so take the current one off the install page rather than pasting a stale tag:

cd /tmp
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.17.0.7f020d.tar.gz
tar -xf kasm_release_1.17.0.7f020d.tar.gz
sudo bash kasm_release/install.sh

The offline variant, the one he skipped, pulls the service, workspace, and network plugin images ahead of time and feeds them to the installer by flag:

cd /tmp
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.17.0.7f020d.tar.gz
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_service_images_amd64_1.17.0.7f020d.tar.gz
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_workspace_images_amd64_1.17.0.7f020d.tar.gz
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_plugin_images_amd64_1.17.0.7f020d.tar.gz
tar -xf kasm_release_1.17.0.7f020d.tar.gz
sudo bash kasm_release/install.sh --offline-workspaces /tmp/kasm_release_workspace_images_amd64_1.17.0.7f020d.tar.gz --offline-service /tmp/kasm_release_service_images_amd64_1.17.0.7f020d.tar.gz --offline-network-plugin /tmp/kasm_release_plugin_images_amd64_1.17.0.7f020d.tar.gz

Run it, and yes, it needs sudo

He copies the command block, switches to the terminal on the new machine, and pastes it in straight from the website. It does not go cleanly on the first attempt, and he catches it live: it probably needs sudo. He puts it in with sudo and lets it do its thing.

This is worth calling out because it is the only friction in the entire install. The install script writes to system paths and drives Docker, so the final line has to run as root. The documented block already carries sudo on the install.sh line; if you retype the commands from memory instead of copying them, that is the line you will drop.

When it finishes, his report is short and accurate. It took a little while, but it was that simple. Run one script and it takes care of everything.

Write down the credentials. He means it.

The installer finishes by printing the default UI credentials to the terminal. He stops the video to be emphatic about this:

I highly suggest writing them down because you're not going to be able to get them back after seeing them here.

Then the war story that gives the warning teeth. He actually misplaced his admin credentials on one of his Kasm instances once. There is a way to reset it by going into the database, but it is non trivial. His recommendation: just save them.

  • 4:22 Create the VM on Proxmox. Name it, pick the Ubuntu Server image, raise the disk a little, set eight CPU cores, raise the memory.
  • 4:55 Install Ubuntu Server on the new VM. Off camera, ordinary, no Kasm specifics.
  • 5:20 Go to the Kasm site, Resources, Community Edition, scroll to Documentation.
  • 5:40 Choose the single server installation path in the docs. Note but skip the offline install.
  • 6:00 Copy the command block verbatim off the docs page and paste it into the server's terminal.
  • 6:15 It balks. Add sudo and run it again. The only stumble in the whole install.
  • 6:30 The script runs unattended. It downloads images, stands up the Docker services, and configures everything.
  • 6:42 The credentials print. Copy them down now. Recovering them later means going into the database and it is non trivial.
  • 7:05 Browse to the server and log in as admin, because that is where workspaces and everything else get configured.
Figure 4. The install as a sequence, with the two moments that actually require a human: adding sudo, and saving the generated credentials before they scroll away forever. Everything between them is one unattended script. Timestamps are approximate within the Installation chapter.

Workspace setup (7:23)

The admin console, and the empty workspaces list

With the install done, he goes back to the browser, hits the server, and logs in. He starts with the admin account, because that is where you configure workspaces and everything else, and he promises to show the user account view afterwards.

The admin console appears. At the top there is a toggle that switches between the admin view and the workspaces view. Down the left side is the navigation. He clicks Workspaces and finds exactly what you would expect on a fresh install: none.

There is an Add button, and that is where you build a custom workspace. He is not going through that today.

Install from the registry

Instead of building anything, he uses the registry of available workspaces, which are predefined by Kasm. You click the ones you want and set them up. He installs four:

While scrolling the registry, he points out how wide the catalog is. There are all kinds of applications on there, including Slack and Signal, and there are entire distributions, not just individual apps.

The installs download and set up in the background. He goes back to the workspaces list and can see them in the process of installing.

The detour: sessions, maintenance, and access management

While the images pull, he tours the rest of the admin console.

Active sessions on the left shows any session currently running. If another user is logged in and running sessions, you see them here. Past that there is a stack of general maintenance screens.

But the section he flags as the important thing is Access Management, specifically Users. Two jobs live there:

  1. Adding users. Normal users or additional admin users.
  2. Controlling which workspaces a user gets access to. This is the one he wants you to notice.

He demonstrates by opening the default user and clicking Edit. There is a pile of parameters on that screen, but the interesting one is the Workspaces tab, where you can see that by default this user can use any of the four workspaces just configured. You can customize that per user, or for entire groups. If you want a particular group that only has a certain set of workspaces, you can divide things up that way.

His own posture is much simpler, and he says so. That kind of granularity is for a more complicated configuration. For a home lab environment he has just stuck with a couple of users for the folks in the house and let them get at everything.

Back to the workspace installs: Chrome is done. He lets the rest finish before switching views.

The user view

Once the workspaces are installed he switches over. You can either click the tab to move to the normal view, or, as he did, log out and log back in as a normal user. He mentions he threw a couple of extra workspaces in while he was at it.

The user view is the catalog: the user picks one of these workspaces and opens it. He launches Firefox and, when Kasm offers the choice, opens it in a new tab.

Running, pausing, and destroying a session

Going back to the workspaces view as the user, the running Firefox session is now visible with controls on it. You can pause it, stop it, or whatever else you want to do.

And then the line that sets up the entire last chapter:

If you delete it, this is where all your state is gone.

He deletes it.

Persistent profiles (10:53)

This is the payoff section, and the reason to watch past the install.

The problem statement is precise. With the demonstrations he just gave, if you bookmark something in a Chrome tab, or in Ubuntu you write something to your home directory, that is just gone when you get rid of the session. There is a way to persist some data across sessions, and, as he repeats, it is mainly just user data.

Step one: create the profile directory on the host

You log back in to your Kasm host and create a directory where the local data will live, then set a couple of permissions on it. His example directory is /mnt/kasm_profiles, owned by uid and gid 1000, mode 700:

sudo mkdir -p /mnt/kasm_profiles
sudo chown 1000:1000 /mnt/kasm_profiles
sudo chmod 700 /mnt/kasm_profiles

His assessment of that: it is that simple.

The reason for those two specific values is worth spelling out, because the video does not. Uid 1000 is the unprivileged user inside a Kasm workspace container, so the mount has to be owned by 1000 for the container to write to it. Mode 700 keeps every other account on the host out of other people's profile data. Kasm's own persistent profiles documentation confirms the shape of this: /mnt/kasm_profiles/ is the only directory an administrator has to create, and every subdirectory beneath it is generated on workspace launch.

Step two: point each workspace at the directory, one at a time

Now back to the admin UI. You configure the persistent profile path for each workspace, and here is the trap:

This isn't some global setting. You need to go workspace by workspace and configure it.

He goes into his workspaces, picks Chrome as the example, and edits it. Scrolling down the workspace form there is a field labelled Persistent Profile Path.

He recommends not hardcoding a plain directory. There are variables you can put into the path that get filled out at launch, which lets the data be segmented by both user and image. For Chrome he sets it to the directory he created, then a subdirectory by user, and then by image, so the same user can have different data for each of the different images. Then he saves.

The tokens Kasm supports in that field, per the documentation, are:

Token What it expands to
{username} the Kasm username
{user_id} the unique user identifier
{image_id} the workspace image identifier

Which makes a path of this shape, segmented exactly the way he describes:

/mnt/kasm_profiles/{username}/{image_id}

The docs' own recommendation puts the image first for uniqueness, /mnt/kasm_profiles/{image_id}/{user_id}, and offers /mnt/kasm_profiles/firefox/{username} as the human readable variant. Either ordering satisfies the rule that matters: every workspace gets its own profile path, so two different apps never fight over the same application configuration files.

The container dies. The directory does not. /mnt/kasm_profiles/{username}/{image_id} on the Kasm host disk owner 1000:1000 · mode 700 bind mount bind mount Session 1 container mounted as the home directory touch f then the session is deleted Session 2 container brand new, launched later the file is still there profile enabled at launch container destroyed everything outside the mount is lost

What survives: the home directory. What does not: installed packages, apt updates, and anything else written outside the mounted profile.

Figure 5. Why the file survives. The persistent profile is a host directory bind mounted in as the container's home directory. Deleting the session destroys the container, but the mount is on the host, so the next session mounts the same bytes. This is also exactly why apt install does not stick: package installs write to the container filesystem, which is outside the mount.

Step three: choose per launch

Once persistence is enabled on a workspace, launching it changes. He notes he set it up for Chrome on camera, but demonstrates on the Ubuntu desktop, which he had configured slightly differently. It is basically the same thing.

You get a dropdown when you go to launch the workspace, and you choose whether to enable the persistent profile or not for that session. He picks enabled and launches.

That detail is the design that makes the whole feature work. Persistence is not a mode you are stuck in. The disposable behavior is still one dropdown away every single time you launch, so the same workspace can be your everyday browser with bookmarks on Monday and a scorched earth sandbox on Tuesday.

Step four: prove it

He jokes that he could show you how it does not work, but that would take a long time. So he goes straight to the proof.

Inside the launched Ubuntu session he opens a terminal in the home directory and creates a single empty file:

touch f

The file appears. Now the destructive part. He closes the session window, goes back to the workspaces view, and does not merely stop the workspace, he deletes it outright. His own reasoning, said out loud as he does it: this makes sense, because they created a directory where this state is stored, and that state will persist across the session even after it is gone, because remember, this is basically running in a container.

Then he opens a new one, with persistent profile enabled, in a new tab, and looks in the home directory.

The file is there. It persisted between sessions. And, as he points out, you can imagine doing exactly that with bookmarks or anything else in these workspaces.

Where the video stops, on purpose

He is upfront that this is a super quick introduction, and it is worth being clear about what that leaves on the table, because each of these is a real thing you will hit next:

His closing assessment is the one he has earned by this point in the video: he personally finds Kasm very useful for creating environments that are easily disposable. Installation is a breeze, and your basic setup is a breeze as well. He signs off asking whether you are using it and how it is helping you.

Key takeaways

Chapters

Notable quotes

"Have you ever paused when opening a link or even browsing to something like your bank account and worried, what if something goes wrong? What if I get hacked?" Sonoran Tech, 0:03, opening on the problem instead of the product.

"Kasm Workspaces is a platform that streams containerized apps and even full desktop environments right into your browser." Sonoran Tech, 0:31, the definition in one sentence.

"And that disposable nature is the whole point of it. It's fast, clean, and very useful." Sonoran Tech, 0:50, the thesis of the video.

"It's not running on my machine. It's running on a server inside a container on my home lab and I'm just streaming the UI in the browser." Sonoran Tech, 1:22, the architecture, stated while a Chrome session is open in a tab.

"When I'm done, I just close the session and it's gone. No leftover browser state, no cache junk." Sonoran Tech, 1:44.

"This is a full Linux desktop in a browser tab running on the Kasm server." Sonoran Tech, 2:02, opening Ubuntu.

"I don't need to remote into a VM or keep a bunch of VMs around just in case. I just launch this, use it, and get rid of it." Sonoran Tech, 2:33, the alternative he is rejecting.

"This ends up being the sweet spot: disposable compute but with convenience when you want it." Sonoran Tech, 2:45, on combining disposable sessions with persistent profiles.

"If you start to do things like install applications or even run like apt update, those changes will not persist." Sonoran Tech, 3:06, the single most important limitation in the video.

"Installing this is literally as easy as going to their website and following the directions. And the directions are dead simple." Sonoran Tech, 5:26.

"It is all done. Took a little while, but it was that simple. Run one script and it takes care of everything." Sonoran Tech, 6:35, after the installer finishes.

"I highly suggest writing them down because you're not going to be able to get them back after seeing them here." Sonoran Tech, 6:42, on the credentials the installer prints.

"I actually did misplace my admin credentials on one of my Kasm instances once. And there is a way to reset it by going into the database, but it's non trivial." Sonoran Tech, 6:56.

"This is also where you can control which workspaces a user gets access to." Sonoran Tech, 9:07, in Access Management.

"And then if you delete it, this is where all your state is gone." Sonoran Tech, 10:50, deleting a Firefox session.

"We'll just put the directory in /mnt/kasm_profiles and then you set this to 1000 as the user and group and chmod to 700. It's that simple." Sonoran Tech, 11:43, the entire host side setup for persistent profiles.

"So this isn't some global setting. You need to go workspace by workspace and configure it." Sonoran Tech, 12:01, the gotcha that costs people an afternoon.

"There's actually variables that you can put into the path that will get filled out that allows the data to be segmented by both user and the image." Sonoran Tech, 12:20.

"And you can see it persisted. Yeah, it persisted between sessions." Sonoran Tech, 14:31, after deleting the session and launching a fresh one.

"Installation is a breeze, and your basic setup is a breeze as well." Sonoran Tech, 15:09, signing off.

Resources mentioned

The software

Infrastructure he runs it on

Workspaces he installs or names

The creator

Related pages on this site

A note on the transcript below. YouTube's automatic captions do not know the product. Throughout the transcript panel, "Kasm" is transcribed as "Chasm" and "Ubuntu" appears variously as "Abuntu", "Auntu", and "iuntu". The audio is correct; the captions are not. Quotes on this page use the correct spellings.

Full transcript
======================================== Welcome back. Have you ever paused when opening a link or even browsing to something like your bank account and worried, "What if something goes wrong? What if I get hacked?" Or have you ever wanted a clean Linux desktop setup just for one task and then you want it to be gone like it never happened? That's what Chasm is for. And I've talked about this more than once in my previous videos. So in this video I'm going to show you Chasm in action first and then I'll take you through the installation process you using Docker Compose so you can get it running in your home lab. So what is Chasm exactly? So Chasm Workspaces is a platform that streams containerized apps and even full desktop environments right into your browser. Think of it like this. Instead of spinning up a whole VM just to test something, you launch a workspace like Chrome, Firefox, Abuntu or whatever. You use it and when you close it, it's completely gone. And that disposable nature is the whole point of it. It's fast, clean, and very useful. So, let me show you. So, let me take you through some demos. Here's Chasm running. You log in and you get a catalog of workspaces. And what I'm going to do is I'm going to launch Chrome. And as you can see, I can choose to launch Chrome right in this window or I can open it in another tab. But just like that, with a couple clicks, I have a Chrome session that's running in a web browser. It's not running on my machine. It's running on a server inside a container on my home lab and I'm just streaming the UI in the browser. So if I wanted to open something question questionable, I do it here. Or you can imagine if I wanted to go to a bank account where I don't risk mixing other data on my machine with my banking stuff, I can do it right here and then it's the disposed of when I'm done. And that's the key part. When I'm done, I just close the session and it's gone. No leftover browser state, no cache junk. So let's try another demo. We'll go back to the screen here and open Auntu. And here you go. This is a full Linux desktop in a browser tab running on the Chasm server. So if I need a quick Linux environment to run a tool, test a script, even doing some coding. I can open up VS Code in this. I could clone a Git repository, do some work, let my AI agents handle the coding for me, and then when it's done, I can just dispose of it, and that's it. I don't need to remote into a VM or keep a bunch of VMs around just in case. I just launch this, use it, and get rid of it. And the obvious question, when you start using Chasm, like disposable is very cool, but if I what if I want to persist some stuff? With Chasm, you can do both. You can keep it disposable or you can enable persistent profiles so your settings and files stick between sessions. This ends up being the sweet spot disposable compute but with convenience when you want it. Now I want to be clear when it comes to persistent profiles. It'll persist your user data. So think of it as you might be persisting bookmarks or if you set up if you're using an iuntu desktop, it's going to persist what's in the home directory. If you start to do things like install applications or even run like app update, those changes will not persist. For that, you actually need to set up a different workspace and potentially create a custom workspace for your use case, which I'm not going to go into in this demo. So, I personally have found Chasm to be that sweet spot between needing a full VM where I really need to be able to interact with the operating system, make changes, etc., And when I want something very lightweight where I can throw it away or just persist a little bit of state to go back and use it later, where I use it typically is mostly for the browser usage. You know, I'll persist my bookmarks and other stuff and then if I need to open a link I'm not sure about or I want, you know, complete confidence that when I go to a website that I'm doing it on a completely m clean machine, that's what I use Chasm for. Occasionally I'll open up the Iuntu desktop as well and like I said I can just open up VS Code uh clone my local Git repository and do some work on it while I use my machine for something else. But then when I do need like a actual full VM and like I said if I need to make changes to an operating system or I want a particular configuration I do go back to like a full VM running on my Proxmox server. So Chasm really fills a great sweet spot there. All right let's get it set up. All right. So, here is my Proxmox dashboard and we're just going to go create a new VM to use for our Chasm installation. Actually, here you can see I already have it running and this is the one I use for my home home use. But what we'll do is we'll create a new one and set it up for from scratch and I'll just call it Chasm 2. And for the image, I'm just going to use Abuntu server. That is fine. And I'll increase the disk a little bit. I'm not planning on putting a lot on this. So don't need a huge disc. For CPUs, I will just give it eight cores. Mind you, this is on a a big old slow server, so eight is actually not that much. And for memory, we'll give it this. All right, so we'll get this started. And what we'll do is I will go get Abuntu server set up. And we'll come back when that's all done. Now that we have the server set up, let's install Chasm. And you can see my server is done. And installing this is literally as easy as going to their website and following the directions. And the directions are dead simple. So you want to come over here. You can go to resources. And we're going to be working with the community edition. And just come down to the bottom. And let's find it. See if I can find it. There you go. Documentation. And it's going to open another window and walk you through all of this. We're going to keep it simple and show you how to do a single server installation. And all you need to do is run this set of commands right here. That's it. So, they do have the offline install. I'll be honest, I have not tried this, but it looks like it just pre-downloads everything. Um, but we will just do the standard install. So, I will So, I will just copy this and then we'll get the window over to that machine. Here we go. All right. And we will just paste in the command right from the website. It wouldn't surprise. Oh, yeah. I I was like, it probably needs pseudo. Yep. So, we'll put this in and we'll let it do its thing. All right, it is all done. Took a little while, but it was that simple. Run one script and it takes care of everything. Now, in front of us are the default uh UI credentials you will need. I highly suggest writing them down because you're not going to be able to get them back after seeing them here. And I actually did misplace my admin credentials on one of my chasm instances once. And uh there is a way to reset it by going into the database, but it's non-trivial. I recommend just saving them. So what we'll do is now that this is all set, we will kind of go back to the browser and let's take a look at the website. All right. So we will log in and there we go. So, what we'll do is we'll start by logging in using the admin account because that is where you configure workspaces and everything else. And then I'll show you what it looks like to log in with a user account. All right. And here we go. This is the admin uh console. And you can see up here you can toggle between the admin view and the workspaces. Now, we haven't set up any workspaces at this point. So, let's go ahead and do that. And on the left side here, what you can do is just go down, click on workspaces. And you can see you don't have any. You can go ahead and add one. And now this is where you set up a custom workspace. We're not going to go through that today. What we're going to do is just use the registry of available workspaces. These are already predefined by Chasm. So you can just go ahead and click the ones you want and set them up. So I will just we'll install Chrome. I will do why not? We'll do Firefox. And by the way, you can see there's all kinds of different applications on here. There's Slack, Signal, and then there's entire distribution. So, if you want to do, we'll just do at Abuntu since I talked about that as well in the beginning, and why not uh VS Code. So, we install all these. These get uh downloaded in the background and installed. And we come over here and you can see these are in the process of installing. While we're working on that, let me come over and show you something else. Obviously, here on the left, you can see any active sessions that are happening. So, if you have another user logged in and they're running sessions, you'll see that here. Um, you can go through a bunch of uh just basically maintenance stuff here. But the important thing is under access management, take a look at users. And this is where you can add other uh normal users or admin users if you want. But this is also where you can control which workspaces a user gets access to. Now you remember we just went through and added four workspaces quickly. And if we go into this default user and click edit, obviously there's a bunch of parameters here you can add. But interestingly enough, you can go to workspaces and you can see by default this user can use any of the workspaces we configured. You could go ahead and customize this for the user or for entire groups. Right? If you want to make a particular group that only has a certain set of workspaces, you can start to uh divide things up that way. I guess if you have a more complicated configuration, but I think for a home lab environment, I've just stuck with a couple users for the folks in the house and let them get at everything. So, let's see if these are done installing. Okay, looks like Chrome is done. So, what we'll do is we'll just let these finish up and then uh we'll go over to the user view and see what it looks like. So after those workspaces installed, you can either click the tab to go over to the the normal view or what I did is I just logged out and logged in as a normal user. And you can see while I was at it, I threw a couple other workspaces there. So this is what the user view looks like. And this is where the user can pick to open up one of these workspaces. So let me just show you what this looks like. We saw this earlier in the demo, but right if you jump Firefox, you like, yep, I'm going to open it in a new tab. So there you go. And and then so if we go back to the the workspaces view as the user, you can see you have a Firefox session running. You can pause it, stop it, whatever you want to do. And then if you delete it, this is where all your state is gone. So we'll just go ahead and delete that. So one other thing I want to show you is how to enable persistent profiles. And so this is basically how you can store user data between sessions. So with the demonstrations we just gave you if you say bookmark something in your Chrome tab or in iuntu if you wrote something to your home directory like that's just gone when you get rid of the session. So there is a way to persist some data across sessions and like I said this is mainly just user data. And so what we're going to do is you need to go log back in to your chasm host and first create a directory where you want that local data to be stored. And then you need to set a couple permissions on those directories. So I'll show you what that looks like. So basically here's what you need to do. Um we'll just put the directory in mnt chasm profiles and then you set this to 1 1000 as the uh user and group and chimatada to 700. It's that simple. So then once you've created the the path for the profiles, you need to come back to the admin UI and what you need to do is configure the persistent profile path for each workspace. So this isn't some global setting. You need to go workspace by workspace and configure it. So what we'll do is I'll go into my workspaces. We'll pick Chrome as an example and we'll go in and we'll edit it. And if you come down here, here is the persistent profile path. Now, what I'd recommend doing is there's actually variables that you can put into the path that will get filled out that allows the data to be segmented by both user and the image. So here's what we'll put put in as an example. So for Chrome, we'll set it to the directory we created and then a subdirectory by user and then by image. So, this would allow the same user to have different data for all the different images. And we'll just click save. All right. So, now that persistent profiles are enabled, let me show you what that looks like. And I know I showed you how to set up for Chrome. Uh I actually went to a slightly different setup and I'm going to show you what this looks like on Auntu desktop, but it's basically the same. So, first let me show you. Well, I could show you how it doesn't work, but that'll take a long time. What I'll do is once you enable it on a particular workspace, you will get this dropdown when you go to launch it. And basically you can choose to enable the persistent profile or not. In this case, I will say enabled and we will launch the session. So all I'm going to do is I'm going to open up a terminal and I'm going to touch a file. Now you would expect in the normal behavior that once I delete this session, it would be gone. But I will show you how it persists across. So here we go. I will just Here we go. Simple home directory. I will just touch a file name. F. That's it. And there you can see it. So I'm going to go ahead and close this. I'm going to go back here and I'm not even going to stop this workspace. I'm going to delete So and like this makes sense, right? Because if you think about we created a directory where this state is stored and that state will persist across this session even after it's gone because remember this is basically running in a container. So, we'll delete that. And I'll just open another one. And yes, with persistent profile enabled, we will open a new tab. And if everything works as it should, we will see that file there. And let's take a look. And there it is. There is our FU file. And you can see it persisted. Yeah, it persisted between sessions. So you can imagine doing that with like bookmarks or anything else uh in these workspaces. So you know there's a whole bunch to look at in chasm and setting it up. But you know outside of the the normal setup I think understanding persistent profiles is probably the next you know most important thing to figure out in your chasm setup. So what we're going to do is we'll wrap it up here and leave it as a super quick introduction to chasm. As you can see, personally, I find it very useful for just creating environments that are easily disposable. Installation is a breeze, and your basic setup is a breeze as well. So, let me know if you're using it and how it's helpful for you down in the comments below.