mirror of
https://github.com/netbootxyz/webapp.git
synced 2026-04-24 22:55:58 +03:00
NodeJS helper Application for managing local deployments of netboot.xyz
- JavaScript 67.8%
- EJS 27.6%
- Shell 3.4%
- Dockerfile 1.2%
|
|
||
|---|---|---|
| .github | ||
| lib | ||
| public | ||
| root | ||
| tests | ||
| .gitignore | ||
| app.js | ||
| Dockerfile | ||
| jest.config.js | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| renovate.json | ||
netboot.xyz webapp
A modern web interface for editing iPXE boot menus and managing local asset mirrors for the netboot.xyz ecosystem.
✨ Features
- 🔧 Menu Editor: Visual interface for editing iPXE configuration files
- 📦 Asset Management: Download and mirror boot assets locally for faster performance
- 🔄 Real-time Updates: Live menu updates with WebSocket integration
- 📊 System Monitoring: Track download progress and system status
- 🐳 Docker Integration: Seamlessly integrated with docker-netbootxyz
🚀 Quick Start
Prerequisites
- Node.js 18+ for development
- Docker for containerized deployment
Development Setup
-
Clone and setup:
git clone https://github.com/netbootxyz/webapp cd webapp npm install -
Run tests:
npm test # Run unit tests npm run test:coverage # Run with coverage report npm run test:watch # Watch mode for development -
Start development server:
npm start # Start the webapp
Building with Docker
git clone https://github.com/netbootxyz/webapp
cd webapp
git clone https://github.com/netbootxyz/docker-netbootxyz
docker build . -t netbootxyz-webapp
🐳 Docker Deployment
Running the Webapp
docker run -d \
--name=netbootxyz-webapp \
-e MENU_VERSION=2.0.84 # optional: specify menu version \
-p 3000:3000 # webapp interface \
-p 69:69/udp # TFTP server \
-p 8080:80 # NGINX asset server \
-v /local/path/to/config:/config # optional: persistent config \
-v /local/path/to/assets:/assets # optional: asset cache \
--restart unless-stopped \
netbootxyz-webapp
Port Configuration
| Port | Service | Description |
|---|---|---|
3000 |
Webapp | Main web interface for menu editing |
8080 |
NGINX | Static asset hosting and download cache |
69/udp |
TFTP | Serves iPXE boot files to network clients |
Development Builds
For the latest development version with cutting-edge features:
docker run -d \
--name=netbootxyz-webapp-dev \
-e MENU_VERSION=2.0.84 # optional: specify menu version \
-p 3000:3000 # webapp interface \
-p 69:69/udp # TFTP server \
-p 8080:80 # NGINX asset server \
-v /local/path/to/config:/config # optional: persistent config \
-v /local/path/to/assets:/assets # optional: asset cache \
--restart unless-stopped \
ghcr.io/netbootxyz/webapp-dev:latest
🧪 Testing
The webapp includes comprehensive test coverage (90%+ coverage):
# Available test commands
npm test # Run unit tests (fastest)
npm run test:all # Run all tests including integration
npm run test:coverage # Generate coverage report
npm run test:watch # Watch mode for development
npm run test:integration # Integration tests only
npm run test:debug # Debug mode with verbose output
Test Results
- 62 test cases covering core functionality
- 90% code coverage with branch coverage
- Sub-second test execution for rapid development feedback
📊 Project Stats
| Metric | Value |
|---|---|
| Test Coverage | 90% |
| Test Suites | 5 |
| Total Tests | 62 |
| Node.js Version | 18+ |
| License | Apache 2.0 |
🤝 Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Run tests:
npm test - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
📝 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
🔗 Related Projects
- netboot.xyz - Main boot menu system
- docker-netbootxyz - Docker container implementation
- netboot.xyz-docs - Documentation site