v1.0.0 Stable Release·Clean Architecture Go

Self-Hosted Linux Desktops.
Zero Database. Zero Trust.

A lightweight, self-hosted web GUI & lifecycle manager for LinuxServer.io Docker Webtop containers. Features strict 127.0.0.1 localhost binding, real-time SSE telemetry, in-browser WebSocket terminal, and two-tier storage.

$docker run -d -p 127.0.0.1:8080:8080 -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/mngdlnx/webtop-manage:latest
< 15 MB
Idle RAM Footprint
100%
Stateless Architecture
127.0.0.1
Strict Loopback Security
127.0.0.1:8080
webtop-manage Workstation Orchestrator UI
Click to Enlarge
Workstations3 Running
Zero Trust127.0.0.1
TelemetrySSE Live
Docker Socket Connected Stateless: 0 DB
Workstation Orchestrator UI

A Clean, Powerful Dashboard for Every Container

Monitor resource usage in real time, launch web desktop sessions, and manage container lifecycles from a single high-performance web console.

http://127.0.0.1:8080/
webtop-manage Workstation Orchestrator Web GUI Interface
Click to expand full resolution
3 Active Workstations
SSE Stream2.4% CPU · 1130 MB RAM

Real-Time Telemetry & Gauges

Live CPU % usage and memory consumption (MB & %) streamed via low-latency Server-Sent Events with zero database polling overhead.

Zero Trust127.0.0.1:32770

Strict 127.0.0.1 Loopback Ports

Every container is bound exclusively to local 127.0.0.1 host ports (e.g. 127.0.0.1:32768+), preventing unauthorized access across local networks.

Instant GUIZero client installs needed

1-Click In-Browser Desktop Launch

Launch directly into your isolated Ubuntu or Debian XFCE / KDE desktop environment in a new browser tab with full sound, clipboard, and file transfer.

Safe StorageNamed Volumes & Host Binds

Two-Tier Storage & Volume Guard

Decoupled persistent volume storage separates browser profile settings from project workspace repositories to prevent accidental data loss.

Core Capabilities

Engineered for Performance & Total Isolation

Everything you need to orchestrate containerized Linux desktop environments with zero overhead and rock-solid defense-in-depth defaults.

Dual-Track

Dual-Track Provisioning Wizard

Quick Launch curated templates or Custom Blueprint with distro matrix, custom image validation, port conflict scanning, and hardware GPU toggles.

127.0.0.1 Only

Zero-Trust Localhost Binding

Strict 127.0.0.1 loopback isolation ensures zero accidental LAN or WAN exposure on daemon (8080) and workstation ports (3000+).

< 15MB Daemon

Real-Time SSE Telemetry

Low-overhead Server-Sent Events stream live CPU % and RAM MB metrics without polling. Update CPU and RAM limits on the fly with zero downtime.

WebSocket TTY

In-Browser Interactive Terminal

Full-featured WebSocket PTY root shell powered by xterm.js with dynamic window resizing and CSWSH origin security validation.

Storage Picker

Visual Host Directory Browser

Interactive host filesystem explorer modal with drive shortcuts and security containment preventing access to sensitive system paths.

Zero Database

100% Stateless Zero-DB Engine

Docker container labels serve as the atomic single source of truth. No SQLite or PostgreSQL needed. Zero migrations, zero corruption risk.

Curated Presets

Tailored for Every Workflow & Distro

Compare pre-tuned configurations with calibrated Shared Memory (/dev/shm) and hardware acceleration.

PopularRecommendedFastLow RAM
Ubuntu Workstation (XFCE)

Ubuntu Workstation (XFCE)

Popular • Fast • Lowest Memory (~250MB Idle)

Base OSUbuntu 24.04 LTS (Noble)
Desktop EnvironmentXFCE 4.18
SHM Recommendation1024 MB (/dev/shm)
RAM Footprint1 GB - 2 GB
Recommended Use Cases:

General software development, Python/Node.js scripting, lightweight browsing, minimal host overhead

POST/api/instances
Blueprint Schema
{
  "name": "sonic-ubuntu-850",
  "preset": "ubuntu-xfce",
  "image": "lscr.io/linuxserver/webtop:ubuntu-xfce",
  "host_ip": "127.0.0.1",
  "host_port": 3000,
  "internal_port": 3000,
  "custom_user": "abc",
  "shm_size_mb": 1024,
  "auto_start": true
}
Auto-creates workstation-<name>-config & workstation-<name>-data API docs ↗
Defense-in-Depth

Security & Network Isolation Architecture

Designed from the ground up for strict local-first security. Click nodes in the diagram to inspect security guarantees.

Public LAN / WAN Boundary (Blocked)
0.0.0.0 Binding: BLOCKEDNo Default WAN Exposure
127

Strict Loopback Host Interface

127.0.0.1:8080 & 127.0.0.1:3000-3050
Click to inspect
Go

webtop-manage Go Daemon (Clean Arch)

Domain Models · Ports · Docker Socket Adapter
Click to inspect
Bridge Networks

Dedicated subnet per instance or airgapped isolated sandbox.

Two-Tier Storage

Separate /config from /workspace.

Security Focus

Strict 127.0.0.1 Loopback Isolation

Every workstation published port (e.g. 3000, 3001) and the management daemon port (8080) explicitly bind to 127.0.0.1 rather than 0.0.0.0.

  • Cannot be scanned by unauthorized devices on local WiFi or LAN.
  • Protects against accidental open firewall ports on VPS deployments.
  • Pair with Caddy, Nginx, or Cloudflare Tunnel for authenticated remote access.
Production Ready

Launch in Seconds with Docker Compose

Deploy the management engine with zero database dependencies. The single lightweight Go binary handles container provisioning, SSE telemetry, and WebSockets.

✓

Strict 127.0.0.1 Binding: Guarantees zero unintended LAN or public exposure.

✓

Isolated Bridge Network: Creates dedicated sandbox bridges (`workstation-<name>-net`) with Kernel Air-Gap support.

✓

Visual Host Directory Browser: Read-only `/:/host:ro` mount enables secure interactive folder selection.

docker-compose.yml
services:
  webtop-manage:
    # Use official pre-built multi-arch image (or build: . from source)
    image: ghcr.io/mngdlnx/webtop-manage:latest
    container_name: webtop-manage
    restart: unless-stopped
    ports:
      # Strict 127.0.0.1 loopback binding for security
      - "127.0.0.1:8080:8080"
    volumes:
      # Docker daemon socket passthrough to manage sibling containers
      - /var/run/docker.sock:/var/run/docker.sock
      # Host root filesystem mount (read-only) for visual folder browsing
      - /:/host:ro
      # Optional: Custom Presets, Themes & Config files
      # - ./presets.json:/app/presets.json:ro
      # - ./themes.json:/app/themes.json:ro
      # - ./config.json:/app/config.json:ro
    environment:
      - PORT=8080
      - BIND_HOST=0.0.0.0
      - APP_TITLE=webtop-manage
      - DEFAULT_INSTANCE_BIND_IP=127.0.0.1
      - DEFAULT_NETWORK=webtop-net
      - DEFAULT_TZ=Etc/UTC
      - DEFAULT_KEYBOARD=en-us-qwerty
      - DEFAULT_SHM_SIZE_MB=1024
      - BASE_PORT=3000
      - DEFAULT_EGRESS_POLICY=full
    networks:
      - webtop-net

networks:
  webtop-net:
    name: webtop-net
    driver: bridge
Clean Architecture

Ready to supercharge your Linux workstation workflows?

Explore complete developer guides, protocol specifications, SSE telemetry math, and REST API documentation.