A modern web interface for editing iPXE boot menus and managing local asset mirrors for the netboot.xyz ecosystem.
- π§ 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
 
- Node.js 18+ for development
 - Docker for containerized deployment
 
- 
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 
git clone https://github.com/netbootxyz/webapp
cd webapp
git clone https://github.com/netbootxyz/docker-netbootxyz
docker build . -t netbootxyz-webappdocker 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 | 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 | 
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:latestThe 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- 62 test cases covering core functionality
 - 90% code coverage with branch coverage
 - Sub-second test execution for rapid development feedback
 
| Metric | Value | 
|---|---|
| Test Coverage | 90% | 
| Test Suites | 5 | 
| Total Tests | 62 | 
| Node.js Version | 18+ | 
| License | Apache 2.0 | 
- 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
 
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- netboot.xyz - Main boot menu system
 - docker-netbootxyz - Docker container implementation
 - netboot.xyz-docs - Documentation site