mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
Bumps the npm_and_yarn group with 1 update in the /dockerterminal/frontend directory: [next](https://github.com/vercel/next.js). Bumps the npm_and_yarn group with 1 update in the /exploded-diagrams directory: [next](https://github.com/vercel/next.js). Bumps the npm_and_yarn group with 1 update in the /frontends/dbal directory: [next](https://github.com/vercel/next.js). Bumps the npm_and_yarn group with 1 update in the /frontends/nextjs directory: [next](https://github.com/vercel/next.js). Bumps the npm_and_yarn group with 2 updates in the /gameengine/packages/materialx/javascript/MaterialXTest directory: [lodash](https://github.com/lodash/lodash) and [js-yaml](https://github.com/nodeca/js-yaml). Bumps the npm_and_yarn group with 1 update in the /gameengine/packages/materialx/javascript/MaterialXView directory: [lodash](https://github.com/lodash/lodash). Bumps the npm_and_yarn group with 1 update in the /packagerepo/frontend directory: [next](https://github.com/vercel/next.js). Bumps the npm_and_yarn group with 1 update in the /packages/geocities-app directory: [next](https://github.com/vercel/next.js). Bumps the npm_and_yarn group with 1 update in the /pastebin directory: [lodash](https://github.com/lodash/lodash). Bumps the npm_and_yarn group with 3 updates in the /postgres directory: [hono](https://github.com/honojs/hono), [lodash](https://github.com/lodash/lodash) and [next](https://github.com/vercel/next.js). Bumps the npm_and_yarn group with 1 update in the /storybook directory: [lodash](https://github.com/lodash/lodash). Bumps the npm_and_yarn group with 1 update in the /workflow/plugins/ts/integration/smtp-relay directory: [nodemailer](https://github.com/nodemailer/nodemailer). Bumps the npm_and_yarn group with 1 update in the /workflowui directory: [next](https://github.com/vercel/next.js). Updates `next` from 16.1.1 to 16.1.5 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.5) Updates `next` from 15.3.4 to 16.1.5 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.5) Updates `next` from 16.1.1 to 16.1.5 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.5) Updates `next` from 16.1.4 to 16.1.5 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.5) Updates `lodash` from 4.17.21 to 4.17.23 - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23) Updates `js-yaml` from 4.1.0 to 4.1.1 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) Updates `lodash` from 4.17.21 to 4.17.23 - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23) Updates `next` from 14.2.35 to 16.1.5 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.5) Updates `next` from 14.2.35 to 16.1.5 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.5) Updates `lodash` from 4.17.21 to 4.17.23 - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23) Updates `next` from 15.1.3 to 16.1.6 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.5) Updates `hono` from 4.11.4 to 4.11.7 - [Release notes](https://github.com/honojs/hono/releases) - [Commits](https://github.com/honojs/hono/compare/v4.11.4...v4.11.7) Updates `lodash` from 4.17.21 to 4.17.23 - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23) Updates `next` from 16.1.1 to 16.1.6 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.5) Updates `lodash` from 4.17.21 to 4.17.23 - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23) Updates `nodemailer` from 6.10.1 to 7.0.13 - [Release notes](https://github.com/nodemailer/nodemailer/releases) - [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodemailer/nodemailer/compare/v6.10.1...v7.0.13) Updates `next` from 14.2.35 to 16.1.5 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.5) --- updated-dependencies: - dependency-name: next dependency-version: 16.1.5 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: next dependency-version: 16.1.5 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: next dependency-version: 16.1.5 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: next dependency-version: 16.1.5 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: lodash dependency-version: 4.17.23 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: lodash dependency-version: 4.17.23 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: next dependency-version: 16.1.5 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: next dependency-version: 16.1.5 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: lodash dependency-version: 4.17.23 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: next dependency-version: 16.1.6 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: hono dependency-version: 4.11.7 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: lodash dependency-version: 4.17.23 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: next dependency-version: 16.1.6 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: lodash dependency-version: 4.17.23 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: nodemailer dependency-version: 7.0.13 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: next dependency-version: 16.1.5 dependency-type: direct:production dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com>
Docker Swarm Container Terminal WebUI
A modern, secure web interface for managing Docker containers with interactive terminal access.
Features
- 🔐 Secure Authentication - Username/password authentication to protect container access
- 📦 Container Management - View all active containers with real-time status updates
- 💻 Interactive Terminal - Execute commands directly in running containers
- 🎨 Modern UI - Built with Material UI and Next.js for a polished experience
- 🐳 Docker Native - Direct integration with Docker API
- 📱 Responsive Design - Works seamlessly on desktop and mobile devices
Tech Stack
Frontend
- Next.js 14+ - React framework with App Router
- Material UI (MUI) - Modern component library
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
Backend
- Flask - Python web framework
- Docker SDK - Python Docker integration
- Flask-CORS - Cross-origin resource sharing
Deployment
- Docker - Containerized deployment
- Docker Compose - Multi-container orchestration
- GHCR - GitHub Container Registry for images
Quick Start
Using Docker Compose (Recommended)
- Clone the repository:
git clone https://github.com/johndoe6345789/docker-swarm-termina.git
cd docker-swarm-termina
- Start the application:
docker-compose up -d
- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- Login with default credentials:
- Username:
admin - Password:
admin123
Manual Setup
Backend Setup
- Navigate to the backend directory:
cd backend
- Install Python dependencies:
pip install -r requirements.txt
- Create
.envfile (optional):
cp .env.example .env
# Edit .env to set custom credentials
- Run the Flask application:
python app.py
The backend will be available at http://localhost:5000
Frontend Setup
- Navigate to the frontend directory:
cd frontend
- Install Node.js dependencies:
npm install
- Create
.env.localfile:
cp .env.local.example .env.local
# Edit if backend is running on a different URL
- Run the development server:
npm run dev
The frontend will be available at http://localhost:3000
Configuration
Backend Environment Variables
ADMIN_USERNAME- Admin username (default:admin)ADMIN_PASSWORD- Admin password (default:admin123)FLASK_ENV- Flask environment (default:development)
Frontend Environment Variables
NEXT_PUBLIC_API_URL- Backend API URL (default:http://localhost:5000)
API Endpoints
Authentication
POST /api/auth/login- Authenticate userPOST /api/auth/logout- Logout user
Containers
GET /api/containers- List all containersPOST /api/containers/<id>/exec- Execute command in container
Health
GET /api/health- Health check endpoint
Docker Images
Images are automatically built and pushed to GitHub Container Registry on every push to main:
- Backend:
ghcr.io/johndoe6345789/docker-swarm-termina-backend - Frontend:
ghcr.io/johndoe6345789/docker-swarm-termina-frontend
Security Considerations
⚠️ Important Security Notes:
- Change Default Credentials - Always change the default admin credentials in production
- Docker Socket Access - The backend requires access to Docker socket (
/var/run/docker.sock) - Network Security - Use proper firewall rules and network isolation
- HTTPS - Use HTTPS in production (reverse proxy recommended)
- Session Management - Current implementation uses simple token-based auth; consider implementing JWT or OAuth for production
Development
Project Structure
.
├── backend/ # Flask backend
│ ├── app.py # Main Flask application
│ ├── requirements.txt # Python dependencies
│ └── Dockerfile # Backend Docker image
├── frontend/ # Next.js frontend
│ ├── app/ # Next.js app directory
│ ├── components/ # React components
│ ├── lib/ # Utility functions and API client
│ └── Dockerfile # Frontend Docker image
├── docker-compose.yml # Docker Compose configuration
└── .github/
└── workflows/
└── docker-publish.yml # GHCR publishing workflow
Building for Production
Build Docker Images
docker-compose build
Push to GHCR
Images are automatically pushed when code is merged to main. To manually push:
docker tag docker-swarm-termina-backend ghcr.io/johndoe6345789/docker-swarm-termina-backend:latest
docker tag docker-swarm-termina-frontend ghcr.io/johndoe6345789/docker-swarm-termina-frontend:latest
docker push ghcr.io/johndoe6345789/docker-swarm-termina-backend:latest
docker push ghcr.io/johndoe6345789/docker-swarm-termina-frontend:latest
License
MIT License - see LICENSE file for details
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For issues, questions, or contributions, please open an issue on GitHub.