Skip to content
/ suso.ch Public

CLI focused node.js WebApp that spawns temporary docker VMs

License

Notifications You must be signed in to change notification settings

run2go/suso.ch

Repository files navigation

suso.ch suso.ch

Interactive Cross-Platform WebApp

CLI focused WebApp which temporarily spawns and attaches container terminals

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.

Tech

The suso.ch WebApp makes use of the following tools & software:

Setup

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

Usage

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.

Container Tools

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.

Session Map Structure

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"
        }
    ]
]

License

MIT

About

CLI focused node.js WebApp that spawns temporary docker VMs

Resources

License

Stars

Watchers

Forks