https://github.com/netbootxyz/webapp
NodeJS helper Application for managing local deployments of netboot.xyz
https://github.com/netbootxyz/webapp
hacktoberfest ipxe netbootxyz nodejs webapp
Last synced: 11 months ago
JSON representation
NodeJS helper Application for managing local deployments of netboot.xyz
- Host: GitHub
- URL: https://github.com/netbootxyz/webapp
- Owner: netbootxyz
- License: apache-2.0
- Created: 2019-12-03T04:29:46.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-07-14T03:32:35.000Z (11 months ago)
- Last Synced: 2025-07-14T06:05:37.586Z (11 months ago)
- Topics: hacktoberfest, ipxe, netbootxyz, nodejs, webapp
- Language: JavaScript
- Homepage: https://netboot.xyz/docs/docker/overview
- Size: 497 KB
- Stars: 63
- Watchers: 5
- Forks: 16
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# netboot.xyz webapp
[](https://github.com/netbootxyz/webapp/actions/workflows/build.yml)
[](https://codecov.io/gh/netbootxyz/webapp)
[](https://nodejs.org/)
[](https://opensource.org/licenses/Apache-2.0)
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](https://github.com/netbootxyz/docker-netbootxyz)
## ๐ Quick Start
### Prerequisites
- **Node.js 18+** for development
- **Docker** for containerized deployment
### Development Setup
1. **Clone and setup**:
```bash
git clone https://github.com/netbootxyz/webapp
cd webapp
npm install
```
2. **Run tests**:
```bash
npm test # Run unit tests
npm run test:coverage # Run with coverage report
npm run test:watch # Watch mode for development
```
3. **Start development server**:
```bash
npm start # Start the webapp
```
### Building with Docker
```bash
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
```bash
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:
```bash
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):
```bash
# 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
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Run tests: `npm test`
4. Commit changes: `git commit -m 'Add amazing feature'`
5. Push to branch: `git push origin feature/amazing-feature`
6. Open a Pull Request
## ๐ License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
## ๐ Related Projects
- [netboot.xyz](https://github.com/netbootxyz/netboot.xyz) - Main boot menu system
- [docker-netbootxyz](https://github.com/netbootxyz/docker-netbootxyz) - Docker container implementation
- [netboot.xyz-docs](https://github.com/netbootxyz/netboot.xyz-docs) - Documentation site