/docs/quickstart
Documentation Guides1 min prototype v1.0.0

Quickstart & Overview

1-minute launch, zero-database architecture, and Docker Compose deployment for prototype.

Quickstart & Overview

prototype is a lightweight, zero-trust orchestration dashboard for LinuxServer.io Docker Webtop desktop containers.

bash
docker run -d \
  --name prototype \
  --restart unless-stopped \
  -p 127.0.0.1:8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  ghcr.io/mngdlnx/prototype:latest

⚡ 3 Core Pillars

The engine guarantees minimal host daemon overhead and total sandbox isolation out of the box.

PillarArchitectural Guarantee
Stateless Zero-DB100% of instance metadata and presets persist in Docker labels (prototype.managed=true). Zero SQL databases.
Zero-Trust LoopbackThe dashboard (8080) and desktop instances (3000+) bind strictly to 127.0.0.1. Remote LAN/WAN access is blocked.
Single Native BinarySelf-contained Go executable with embedded Vue 3 SPA, consuming < 15MB idle RAM.

⚡ System Architecture Flow

The Go backend separates core management logic from Docker SDK adapters and real-time delivery channels.

Architecture Diagram
Rendering architecture diagram...

🚀 1-Minute Docker Compose Launch

Deploy the controller alongside docker-socket-proxy for least-privilege Docker socket access.

yaml
services:
  docker-socket-proxy:
    image: tecnativa/docker-socket-proxy:latest
    container_name: docker-socket-proxy
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - CONTAINERS=1
      - IMAGES=1
      - NETWORKS=1
      - VOLUMES=1
      - POST=1
      - DELETE=1
      - EXEC=1
      - INFO=1
      - VERSION=1
      - EVENTS=1
      - PING=1
    networks:
      - prototype-net

  prototype:
    image: ghcr.io/mngdlnx/prototype:latest
    container_name: prototype
    restart: unless-stopped
    depends_on:
      - docker-socket-proxy
    ports:
      - "127.0.0.1:8080:8080"
    environment:
      - DOCKER_HOST=tcp://docker-socket-proxy:2375
      - PORT=8080
      - BIND_HOST=0.0.0.0
      - DEFAULT_INSTANCE_BIND_IP=127.0.0.1
      - DEFAULT_NETWORK=prototype-net
      - BASE_PORT=3000
    networks:
      - prototype-net
    security_opt:
      - no-new-privileges:true

networks:
  prototype-net:
    name: prototype-net
    driver: bridge

Start the stack with docker compose up -d and open http://127.0.0.1:8080 in your browser.