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

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages