Makes use of Express.js with Socket.io as WebApp Framework, node-pty along with xterm.js for terminals and dockerode to dynamically control docker containers.
The suso.ch WebApp makes use of the following tools & software:
- Node.js (JavaScript Runtime Environment)
- Express.js (Node.js Webserver Framework)
- Socket.io (Library for Realtime WebApps)
- xterm.js (JavaScript Frontend Terminal)
- node-pty (Fork pseudoterminals in Node.js)
- dockerode (Docker Remote API)
Download the repository using git
git pull https://github.com/run2go/suso.ch.git
Switch into the suso.ch directory
cd suso.ch
Build the WebApp image
docker build --tag webapp:latest .
Run a container using the WebApp image
docker run -it -d --name suso -p 80:3000 --cap-add=NET_ADMIN webapp:latest
Attach the console
docker attach suso
Detach the console using: CTRL P CTLR Q
Enter "help
" into the console to get an overview of the available serverside CLI commands.
The dynamically spawned containers come with default tools like these:
Programs | Description |
---|---|
tunnel |
Handle cloudflared quick tunnels |
docker |
Containerization software |
htop |
Interactive Task Manager |
nano |
Simple text editor |
Additionally, there is the "net-tools
" package included, providing various networking utilities.
Sample sessionMap.json containing the variables per sessionId:
[
[
"<UUID>",
{
"sessionIp": "1.1.1.1",
"containerId": null,
"containerName": null,
"isDebug": false,
"isAdmin": false,
"isLoggedIn": false,
"screenWidth": 1920,
"screenHeight": 1080,
"timestamp": "1970-01-01T00:00:00.000Z"
}
]
]
MIT