{"id":14155458,"url":"https://github.com/netbootxyz/webapp","last_synced_at":"2025-07-26T00:14:41.946Z","repository":{"id":39675254,"uuid":"225530802","full_name":"netbootxyz/webapp","owner":"netbootxyz","description":"NodeJS helper Application for managing local deployments of netboot.xyz","archived":false,"fork":false,"pushed_at":"2025-07-14T03:32:35.000Z","size":509,"stargazers_count":63,"open_issues_count":17,"forks_count":16,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-14T06:05:37.586Z","etag":null,"topics":["hacktoberfest","ipxe","netbootxyz","nodejs","webapp"],"latest_commit_sha":null,"homepage":"https://netboot.xyz/docs/docker/overview","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netbootxyz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"netbootxyz"}},"created_at":"2019-12-03T04:29:46.000Z","updated_at":"2025-07-14T03:32:39.000Z","dependencies_parsed_at":"2023-11-16T04:26:01.610Z","dependency_job_id":"16f00e48-ceb3-4641-a116-10296f1cc1d2","html_url":"https://github.com/netbootxyz/webapp","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/netbootxyz/webapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbootxyz%2Fwebapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbootxyz%2Fwebapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbootxyz%2Fwebapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbootxyz%2Fwebapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netbootxyz","download_url":"https://codeload.github.com/netbootxyz/webapp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbootxyz%2Fwebapp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267092277,"owners_count":24034741,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","ipxe","netbootxyz","nodejs","webapp"],"created_at":"2024-08-17T08:03:24.443Z","updated_at":"2025-07-26T00:14:41.925Z","avatar_url":"https://github.com/netbootxyz.png","language":"JavaScript","funding_links":["https://opencollective.com/netbootxyz"],"categories":["webapp"],"sub_categories":[],"readme":"# netboot.xyz webapp\n\n[![Build Status](https://github.com/netbootxyz/webapp/workflows/build/badge.svg)](https://github.com/netbootxyz/webapp/actions/workflows/build.yml)\n[![Test Coverage](https://codecov.io/gh/netbootxyz/webapp/branch/master/graph/badge.svg)](https://codecov.io/gh/netbootxyz/webapp)\n[![Node.js Version](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nA modern web interface for editing iPXE boot menus and managing local asset mirrors for the netboot.xyz ecosystem.\n\n## ✨ Features\n\n- **🔧 Menu Editor**: Visual interface for editing iPXE configuration files\n- **📦 Asset Management**: Download and mirror boot assets locally for faster performance\n- **🔄 Real-time Updates**: Live menu updates with WebSocket integration\n- **📊 System Monitoring**: Track download progress and system status\n- **🐳 Docker Integration**: Seamlessly integrated with [docker-netbootxyz](https://github.com/netbootxyz/docker-netbootxyz)\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- **Node.js 18+** for development\n- **Docker** for containerized deployment\n\n### Development Setup\n\n1. **Clone and setup**:\n   ```bash\n   git clone https://github.com/netbootxyz/webapp\n   cd webapp\n   npm install\n   ```\n\n2. **Run tests**:\n   ```bash\n   npm test              # Run unit tests\n   npm run test:coverage # Run with coverage report\n   npm run test:watch    # Watch mode for development\n   ```\n\n3. **Start development server**:\n   ```bash\n   npm start             # Start the webapp\n   ```\n\n### Building with Docker\n\n```bash\ngit clone https://github.com/netbootxyz/webapp\ncd webapp\ngit clone https://github.com/netbootxyz/docker-netbootxyz\ndocker build . -t netbootxyz-webapp\n```\n\n## 🐳 Docker Deployment\n\n### Running the Webapp\n\n```bash\ndocker run -d \\\n  --name=netbootxyz-webapp \\\n  -e MENU_VERSION=2.0.84             # optional: specify menu version \\\n  -p 3000:3000                       # webapp interface \\\n  -p 69:69/udp                       # TFTP server \\\n  -p 8080:80                         # NGINX asset server \\\n  -v /local/path/to/config:/config   # optional: persistent config \\\n  -v /local/path/to/assets:/assets   # optional: asset cache \\\n  --restart unless-stopped \\\n  netbootxyz-webapp\n```\n\n### Port Configuration\n\n| Port | Service | Description |\n|------|---------|-------------|\n| `3000` | **Webapp** | Main web interface for menu editing |\n| `8080` | **NGINX** | Static asset hosting and download cache |\n| `69/udp` | **TFTP** | Serves iPXE boot files to network clients |\n\n### Development Builds\n\nFor the latest development version with cutting-edge features:\n\n```bash\ndocker run -d \\\n  --name=netbootxyz-webapp-dev \\\n  -e MENU_VERSION=2.0.84             # optional: specify menu version \\\n  -p 3000:3000                       # webapp interface \\\n  -p 69:69/udp                       # TFTP server \\\n  -p 8080:80                         # NGINX asset server \\\n  -v /local/path/to/config:/config   # optional: persistent config \\\n  -v /local/path/to/assets:/assets   # optional: asset cache \\\n  --restart unless-stopped \\\n  ghcr.io/netbootxyz/webapp-dev:latest\n```\n\n## 🧪 Testing\n\nThe webapp includes comprehensive test coverage (90%+ coverage):\n\n```bash\n# Available test commands\nnpm test                 # Run unit tests (fastest)\nnpm run test:all         # Run all tests including integration\nnpm run test:coverage    # Generate coverage report\nnpm run test:watch       # Watch mode for development\nnpm run test:integration # Integration tests only\nnpm run test:debug       # Debug mode with verbose output\n```\n\n### Test Results\n- **62 test cases** covering core functionality\n- **90% code coverage** with branch coverage\n- **Sub-second test execution** for rapid development feedback\n\n## 📊 Project Stats\n\n| Metric | Value |\n|--------|-------|\n| **Test Coverage** | 90% |\n| **Test Suites** | 5 |\n| **Total Tests** | 62 |\n| **Node.js Version** | 18+ |\n| **License** | Apache 2.0 |\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/amazing-feature`\n3. Run tests: `npm test`\n4. Commit changes: `git commit -m 'Add amazing feature'`\n5. Push to branch: `git push origin feature/amazing-feature`\n6. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## 🔗 Related Projects\n\n- [netboot.xyz](https://github.com/netbootxyz/netboot.xyz) - Main boot menu system\n- [docker-netbootxyz](https://github.com/netbootxyz/docker-netbootxyz) - Docker container implementation  \n- [netboot.xyz-docs](https://github.com/netbootxyz/netboot.xyz-docs) - Documentation site\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetbootxyz%2Fwebapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetbootxyz%2Fwebapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetbootxyz%2Fwebapp/lists"}