Example Path: examples/Configuration/Web/CustomWebConfigSystem
Custom System Config Server
A NetBurner RTOS-based embedded web application that demonstrates how to customize the device's system configuration server interface.
Overview
This application shows how to create a custom system configuration interface that runs on NetBurner's network port 20034, separate from the main application web interface on port 80. Unlike typical configuration examples that integrate configuration pages into the application's web interface, this example demonstrates how to customize the device's built-in system configuration server with custom branding, logos, and web page content.
- Note
- You can have both a custom System Configuration Page on port 20034 and a custom Web Configuration Page on port 80 active at the same time.
Features
- Dual Web Interfaces:
- Main application web server on port 80 (styled with a clean, modern stylesheet)
- Custom system configuration server on port 20034
- Custom Branding: Ability to customize logos and web page content
- System Configuration: Access to device configuration through customized interface
- File Override System: Uses NetBurner's overload procedure for customization
- System Diagnostics: Integrated diagnostic capabilities for system monitoring
- Network Management: Automatic network initialization and connection handling
- Real-Time Operation: Built on NetBurner RTOS for reliable real-time performance
Hardware Requirements
- NetBurner embedded module/board
- Network connectivity (Ethernet)
- Compatible with NetBurner NNDK (NetBurner Network Development Kit)
Software Dependencies
- NetBurner RTOS
- NetBurner Network Development Kit (NNDK)
- Required NetBurner libraries:
Usage
- Build and deploy the application to your NetBurner device. It ships with custom LOGO.gif, ROOT.html, RAW.html, and UI.html under
overload/nbrtos/source/, so the customization is in effect as soon as it runs.
- Browse the two interfaces:
- Port 80 - the main application page (modern responsive styling).
- Port 20034 - the custom-branded system configuration server. It runs automatically:
StartHttp() brings up port 80 and the built-in system config server is enabled by default, so no code is needed to start it.
- Customize by editing the files under
overload/nbrtos/source/ (or dropping in your own LOGO.gif), then rebuild and reload (see "How the Overload Works" below).
Application Flow
- Initialization: System and network stack initialization
- Diagnostics: Enables system diagnostic features
- HTTP Server: Starts the web server on the default ports (application interface on 80, built-in system config server on 20034)
- Network Wait: Waits up to 5 seconds for active network connection
- Status Display: Shows application name and NNDK revision information
- Main Loop: Continuous operation with 1-second intervals
Customizable System Files
The system configuration interface is customized by overloading these files (the stock versions live in nbrtos/source). This example ships custom copies of all four under overload/nbrtos/source/:
- LOGO.gif - Custom logo displayed on the configuration pages
- ROOT.html - Main JavaScript configuration UI (custom carbon header bar, dark-blue top-level and light-blue second-level section headers, custom title)
- RAW.html - Low-level recovery page with links to UI.html (custom heading)
- UI.html - Raw JSON configuration editor (custom heading)
How the Overload Works
This application uses NetBurner's overload mechanism. The build prepends the local overload/ directory to its VPATH, so any file placed under overload/<sdk-relative-path> is compiled in place of the SDK's default. To override a system config file, mirror its SDK path under overload/:
overload/nbrtos/source/LOGO.gif # replaces nbrtos/source/LOGO.gif
overload/nbrtos/source/ROOT.html
overload/nbrtos/source/RAW.html
overload/nbrtos/source/UI.html
- Note
- The directory must be named
overload (the build's LOCAL_OVERLOAD_DIR variable), NOT override. No application code is required - the SDK's library.mak compiles these files into the firmware automatically (via compfile), and the config server on port 20034 serves them.
Try your own branding
- Edit the files in
overload/nbrtos/source/ (or drop in your own LOGO.gif)
- Rebuild and reload
- Browse to port 20034 to see your changes
Development Notes
- Production Deployment: Consider removing
EnableSystemDiagnostics() for production builds
- Network Timeout: 5-second network connection timeout is configured
- Main Loop: 1-second delay in main loop for efficient resource usage
- File Compilation: Logo and HTML files are converted to .cpp files and compiled into the application
- Branding Strategy: You can combine both custom application and custom system configuration for complete product branding
- Demo Ready: The example ships custom LOGO.gif, ROOT.html, RAW.html, and UI.html in
overload/nbrtos/source/, so it runs as-is with the customization already applied
Build Information
The application displays:
- Application name: "Custom System Config Server"
- NNDK revision information at startup
Try It From the Command Line
Replace 10.1.1.x with your device's IP address.
The application page on port 80:
The custom logo served by the config server on port 20034 (this is the overloaded LOGO.gif, not the stock one):
The branded config pages on port 20034 (look for the custom titles/headings):
curl http:
curl http:
curl http:
- Note
- In production, protect the configuration server (port 20034) with the config user and password so only authorized clients can read or change settings; the demo leaves it open.