---
title: "Deploy gregarious-laughter"
description: "Kali Linux desktop in your browser, via KasmVNC."
category: "Other"
url: https://railway.com/deploy/gregarious-laughter
---

# Deploy gregarious-laughter

Kali Linux desktop in your browser, via KasmVNC.

**[Deploy gregarious-laughter on Railway](https://railway.com/template/gregarious-laughter)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/gregarious-laughter/manifest.json

- **Creator:** fawastajudeen516-lgtm's Projects
- **Category:** Other

## Template content

### proxy https://github.com/caddyserver.png?size=460

- **Image:** caddy:2-alpine
- **Start command:** `sh -c 'printf "%s" "$CADDYFILE" > /etc/caddy/Caddyfile && exec caddy run --config /etc/caddy/Caddyfile --adapter caddyfile'`
- **Health check:** /proxy-healthz
- **Public domain:** Yes

### kali https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/kali-linux.svg

- **Image:** kasmweb/kali-rolling-desktop:1.19.0-rolling-weekly
- **Start command:** `bash -c 'set -eif [ ${#VNC_PW} -lt 6 ]; then echo "FATAL: VNC_PW must be at least 6 characters (KasmVNC requirement). Set a longer password and redeploy." >&2; exit 1; fiecho "kasm-user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/kasm-userchmod 0440 /etc/sudoers.d/kasm-userchown -R 1000:1000 /home/kasm-usersetcap -r /usr/lib/nmap/nmap 2>/dev/null || truecat > /usr/bin/nmap <<"NMAPEOF"#!/usr/bin/env shexec /usr/lib/nmap/nmap --unprivileged "$@"NMAPEOFchmod 755 /usr/bin/nmapXFCEDIR=/home/kasm-user/.config/xfce4/xfconf/xfce-perchannel-xmlif [ ! -f $XFCEDIR/xfce4-desktop.xml ]; then  mkdir -p $XFCEDIR  cat > $XFCEDIR/xfce4-desktop.xml <<"XFCEEOF"<?xml version="1.0" encoding="UTF-8"?><channel name="xfce4-desktop" version="1.0">  <property name="backdrop" type="empty">    <property name="screen0" type="empty">      <property name="monitorVNC-0" type="empty">        <property name="workspace0" type="empty">          <property name="last-image" type="string" value="/usr/share/backgrounds/kali/kali-cubes-16x9.jpg"/>          <property name="image-style" type="int" value="5"/>        </property>      </property>    </property>  </property></channel>XFCEEOF  chown -R 1000:1000 /home/kasm-user/.configfised -i "s|function wait_for_network_devices() {|function wait_for_network_devices() { return 0;|" /dockerstartup/vnc_startup.shgrep -q "wait_for_network_devices() { return 0;" /dockerstartup/vnc_startup.sh || { echo FATAL: Kasm startup changed, wait_for_network_devices patch no longer applies >&2; exit 1; }exec setpriv --reuid=1000 --regid=1000 --init-groups /dockerstartup/kasm_default_profile.sh /dockerstartup/vnc_startup.sh /dockerstartup/kasm_startup.sh --tail-log'`

## Documentation

# Kali Linux Web Desktop

A full Kali Linux XFCE desktop that runs in your browser. It is a real desktop, not just a terminal.

## Deploy and Host
Deploy this template, then open the proxy service's public domain and log in with the VNC_PW value from the kali service's variables.

## About Hosting
The kali service runs the Kali desktop through KasmVNC. The proxy service is the only public entry point and routes web traffic to the desktop. The home folder at /home/kasm-user is persistent and backed up daily.

## Why Deploy
Get a working Kali desktop without installing anything on your own machine.

## Common Use Cases
- Security labs and practice
- Running Kali tools from a browser
- Testing in an isolated environment

## Dependencies for Kali Linux Web Desktop
- Two services: proxy (Caddy) and kali (kasmweb/kali-rolling-desktop)
- VNC_PW must be at least 6 characters. It is generated automatically.
- Only the proxy is public. Do not expose the kali service directly.

## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/gregarious-laughter
