Skip to content

netbootxyz/webapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

235 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

netboot.xyz webapp

Build Status Test Coverage Node.js Version License

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

  1. Clone and setup:

    git clone https://github.com/netbootxyz/webapp cd webapp npm install
  2. Run tests:

    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:

    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

  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 file for details.

πŸ”— Related Projects

About

NodeJS helper Application for managing local deployments of netboot.xyz

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors