From cd3cdad11c20bad83c2621488d703f792e96ab16 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Thu, 12 Feb 2026 17:55:10 +0100 Subject: [PATCH] docs(containers): add Shell In A Box host service Add shellinabox web-based terminal emulator running on port 4200, accessible via https://shell.schweitz.net through NPM reverse proxy. Co-Authored-By: Claude Opus 4.5 --- CONTAINERS.md | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/CONTAINERS.md b/CONTAINERS.md index e2e96a4..4c3fa85 100644 --- a/CONTAINERS.md +++ b/CONTAINERS.md @@ -1,7 +1,7 @@ # Container Reference - tower-of-joy Infrastructure -> **Last Updated:** 2026-01-31 -> **Total Services:** 34 containers across 21 stacks +> **Last Updated:** 2026-02-12 +> **Total Services:** 35 containers across 21 stacks > **System:** Intel i7-6700, RTX 2080 Ti (11GB VRAM), 64GB RAM, Zorin OS 16.3 --- @@ -40,6 +40,7 @@ | **Paperless-ngx** | 8091 | https://documents.schweitz.net | Internet | No | 8 | ✅ Running | | **Penpot** | 9001 | https://penpot.schweitz.net | Internet (SSO) | No | 10 | ✅ Running | | **ClamAV** | 3310 | N/A (host service) | No | No | - | ✅ Running | +| **Shell In A Box** | 4200 | https://shell.schweitz.net | Internet (host service) | No | - | ✅ Running | | **AdGuard Home** | 53, 3053 | http://dns.schweitz.internal | LAN (DNS) | No | - | ✅ Running | | **Tatlock UI** | 9999 | https://home.schweitz.net | Internet | No | - | ✅ Running | @@ -51,6 +52,7 @@ - **auth.schweitz.net** → Authentik SSO - **api.schweitz.net** → Core API - **code.schweitz.net** → Code-Server (host service) +- **shell.schweitz.net** → Shell In A Box (host service) - **amp.schweitz.net** → AMP Game Server - **housekeeping.schweitz.net** → Home Assistant - **documents.schweitz.net** → Paperless-ngx @@ -287,6 +289,31 @@ Code-Server provides a browser-based Visual Studio Code IDE running directly on --- +### Shell In A Box + +Shell In A Box is a web-based terminal emulator that provides secure shell access to the host system through a browser, enabling command-line administration from any device without requiring an SSH client. It runs as a lightweight systemd service on the host, exposing a terminal interface via HTTP that is secured externally through Nginx Proxy Manager with SSL encryption. The service provides a quick way to access the host shell for system administration, troubleshooting, and maintenance tasks when a full IDE like Code-Server is not needed. + +| Property | Value | +|----------|-------| +| **Deployment Type** | Host-based systemd service (NOT containerized) | +| **Binary Location** | `/usr/bin/shellinaboxd` | +| **Service Name** | `shellinabox.service` | +| **Access URL (LAN)** | http://192.168.86.149:4200 | +| **Access URL (Public)** | https://shell.schweitz.net | +| **External Access** | Yes (via NPM reverse proxy with SSL) | +| **Port Binding** | 0.0.0.0:4200 (HTTP) | +| **User/Group** | `shellinabox:shellinabox` (daemon), login as any system user | +| **Restart Policy** | `on-failure` (systemd) | +| **Config Location** | `/etc/default/shellinabox` | +| **Resource Limits** | None (native host process) | +| **GPU Required** | No | +| **Dependencies** | NPM (reverse proxy) | +| **Authentication** | System login (PAM), SSL via NPM | +| **Typical Memory** | ~5-10MB | +| **Features** | Web-based terminal, color themes, multiple sessions, copy/paste support | + +--- + ## Networking Layer ### Headscale @@ -834,6 +861,7 @@ Gitea is a lightweight, self-hosted Git service providing repository hosting, is | **Redis Shared** | redis-shared:6379 | No (internal) | Shared cache/session store | | **NPM** | http://192.168.86.149:81 | Yes (admin) | Reverse proxy admin | | **Code-Server** | https://code.schweitz.net | Yes | Browser-based IDE | +| **Shell In A Box** | https://shell.schweitz.net | Yes | Web-based terminal | | **Ollama** | http://192.168.86.149:11434 | No | ML model API | | **Headscale** | http://192.168.86.149:8085 | No | VPN control server | | **Open WebUI** | https://webui.schweitz.net | Yes (SSO) | LLM chat interface |