Secure Sandbox Environment Manager is a full-stack web application designed to provide users with on-demand, isolated environments for dynamic analysis and secure application testing. This platform leverages Docker containerization to create ephemeral "virtual machines," offering a controlled space for users to execute and observe applications without risk to their local systems.
- Dynamic Docker-based Sandbox Provisioning: Create, start, stop, and remove Docker containers on-demand.
- Secure User and Session Management: User registration and login with bcrypt password hashing and JWT for API authentication.
- RESTful API: Backend built with Node.js and Express.js.
- SQLite Database: Persistent storage for user and environment metadata.
- Responsive Frontend: Built with React, Vite, and TypeScript, styled with TailwindCSS.
git clone https://github.com/MatricalDefunkt/ssem
cd ssemNavigate to the backend directory:
cd backendInstall dependencies:
npm installCreate a .env file in the backend directory and add the following environment variables. Replace your-secret-key with a strong, unique secret.
PORT=5000
JWT_SECRET=your-secret-keyBuild the backend (if you plan to use npm start):
npm run buildRun the backend development server:
npm run devAlternatively, to run the built version:
npm startThe backend server will start, typically on http://localhost:5000.
Open a new terminal and navigate to the frontend directory:
cd frontendInstall dependencies:
npm installRun the frontend development server:
npm run devThe frontend development server will start, typically on http://localhost:5173 (Vite's default) or another port if 5173 is in use. Open this URL in your browser.
Ensure Docker Desktop (or Docker Engine on Linux) is running. The application will attempt to build a Docker image named ssem-vm-image using the Dockerfile in the project root and then create containers from this image.
- Backend: Node.js, Express.js, SQLite, JWT (jsonwebtoken), bcryptjs, TypeScript, Bun
- Frontend: React, Vite, TypeScript, TailwindCSS, Axios
- Database: SQLite
A brief overview of the main API endpoints (all prefixed with /api):
POST /register: Register a new user.POST /login: Log in an existing user, returns a JWT.GET /vms: (Authenticated) Get a list of VMs for the logged-in user.POST /vms: (Authenticated) Create a new VM.PUT /vms/:id/status: (Authenticated) Update VM status (start/stop).DELETE /vms/:id: (Authenticated) Delete a VM.
(More details can be added here or linked to API documentation if available)



