Zero-trust web terminal gateway with policy enforcement & session recording for MikroWizard.
641
Copy and paste everything below this line into the Full Description markdown editor on Docker Hub:
MikroWizard+ Terminal Gateway is an enterprise-grade, zero-trust web terminal access gateway and policy enforcement system for MikroWizard. It connects browser sessions to network appliances, servers, and embedded devices (MikroTik RouterOS, Linux, macOS, BSD) with real-time audit logging, multi-user collaboration, and kernel-level command interception.
The Terminal Gateway acts as a secure intermediary between the MikroWizard Web Console and target network infrastructure:
āāāāāāāāāāāāāāāāāāāāāāāāāāā
ā MikroWizard Backend ā (Auth, RBAC, Redis Sessions)
āāāāāāāāāāāāāā¬āāāāāāāāāāāāā
ā Bearer Token REST API (/health, /agent/*)
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā MikroWizard+ Terminal Gateway ā
ā [ mikrowizard/terminal-gateway:latest ] ā
ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā WebSocket Bridge ā āāāāŗ ā Policy & Audit Engine ā ā
ā ā (xterm.js) ā ā (Asciinema .cast logs) ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāā¬āāāāāāāāāāāāā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāā
ā SSH / Telnet / Agent PTY
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Target Infrastructure ā
ā - MikroTik RouterOS ā
ā - Linux / BSD / macOS ā
āāāāāāāāāāāāāāāāāāāāāāāāāāā
xterm.js over secure WebSockets (wss://).execve binaries before execution.Owner, Collaborator, Observer)..cast) format.linux/amd64 and linux/arm64.Run the installer on the host where MikroWizard is installed:
curl -fsSL https://raw.githubusercontent.com/MikroWizard/mikrowizard-terminal-gateway/main/install.sh | sudo bash
docker run -d --name=mikrowizard-terminal-gateway \
--network=host \
-e PORT=8200 \
-e GATEWAY_TOKEN="your_secure_random_64_character_hex_token" \
-e GATEWAY_BIND="127.0.0.1" \
-e AGENT_BIND="127.0.0.1" \
-e PYSRV_CONFIG_PATH="/opt/mikrowizard/server-conf.json" \
-e PYSRV_REDIS_HOST="127.0.0.1:6379" \
-e PYSRV_DATABASE_HOST="127.0.0.1" \
-e PYSRV_DATABASE_PORT="5432" \
-e PYSRV_DATABASE_NAME="MIKROMAN" \
-e PYSRV_DATABASE_USER="mikroman" \
-e PYSRV_DATABASE_PASSWORD="your_db_password" \
-e PYSRV_TERMINAL_RECORDINGS_DIR="/opt/mikrowizard/terminal_recordings" \
-v /opt/mikrowizard:/opt/mikrowizard:rw \
-v /opt/mikrowizard/terminal_recordings:/opt/mikrowizard/terminal_recordings:rw \
--restart=unless-stopped \
mikrowizard/terminal-gateway:latest
version: '3.8'
services:
terminal-gateway:
image: mikrowizard/terminal-gateway:latest
container_name: mikrowizard-terminal-gateway
restart: unless-stopped
network_mode: "host"
environment:
- PORT=8200
- GATEWAY_BIND=127.0.0.1
- AGENT_BIND=127.0.0.1
- GATEWAY_TOKEN=${GATEWAY_TOKEN}
- PYSRV_CONFIG_PATH=/opt/mikrowizard/server-conf.json
- PYSRV_REDIS_HOST=${PYSRV_REDIS_HOST:-127.0.0.1:6379}
- PYSRV_DATABASE_HOST=${PYSRV_DATABASE_HOST:-127.0.0.1}
- PYSRV_DATABASE_PORT=${PYSRV_DATABASE_PORT:-5432}
- PYSRV_DATABASE_NAME=${PYSRV_DATABASE_NAME:-MIKROMAN}
- PYSRV_DATABASE_USER=${PYSRV_DATABASE_USER:-mikroman}
- PYSRV_DATABASE_PASSWORD=${PYSRV_DATABASE_PASSWORD}
- PYSRV_CRYPT_KEY=${PYSRV_CRYPT_KEY}
- PYSRV_TERMINAL_RECORDINGS_DIR=/opt/mikrowizard/terminal_recordings
volumes:
- /opt/mikrowizard:/opt/mikrowizard:rw
- /opt/mikrowizard/terminal_recordings:/opt/mikrowizard/terminal_recordings:rw
| Tag | Architectures | Description |
|---|---|---|
latest | linux/amd64, linux/arm64 | Latest stable production release |
v1.0.0 | linux/amd64, linux/arm64 | Version 1.0.0 release |
| Environment Variable | Default | Description |
|---|---|---|
PORT | 8200 | Gateway WebSocket & HTTP control port |
GATEWAY_BIND | 127.0.0.1 | IP bind address (0.0.0.0 for remote deployments) |
GATEWAY_TOKEN | Required | Shared Bearer token for Backend ā Gateway authentication |
AGENT_PORT | 8201 | HTTP port used by target agents for phone-home verification |
AGENT_BIND | 127.0.0.1 | Agent HTTP bind address |
PYSRV_CONFIG_PATH | /opt/mikrowizard/server-conf.json | Path to shared configuration file |
PYSRV_TERMINAL_RECORDINGS_DIR | /opt/mikrowizard/terminal_recordings | Directory where session recordings (.cast) are saved |
secrets.compare_digest to prevent timing attacks.gateway, uid 10001).Full source code access (including the Python gateway, Go agent sources, and build toolchains) is available to MikroWizard Pro and Enterprise customers under a mutual Non-Disclosure Agreement (NDA) for internal audits, compliance certifications, or air-gapped deployments.
To request source access:
Content type
Image
Digest
sha256:b419a3359ā¦
Size
93.4 MB
Last updated
about 1 month ago
docker pull mikrowizard/terminal-gateway