FlashForge WebUI is a lightweight, standalone web interface for monitoring and controlling FlashForge 3D printers. Designed as a cross-platform alternative to desktop applications, it runs efficiently on low-spec hardware like the Raspberry Pi, making it perfect for dedicated print servers. It supports simultaneous connections to multiple printers, real-time camera streaming, and integrates seamlessly with Spoolman for filament management.
| Feature | Description |
|---|---|
| Multi-Printer Support | Connect to and manage multiple printers simultaneously with isolated contexts |
| Live Monitoring | Real-time tracking of temperatures, print progress, and printer status |
| Camera Streaming | Low-latency video monitoring with RTSP and MJPEG support |
| Printer Control | Full control over print jobs (pause, resume, stop) and printer settings |
| Spoolman Integration | Native integration for filament inventory and usage tracking |
| Responsive Dashboard | Customizable grid-based UI that works on desktop, tablet, and mobile |
| Cross-Platform | Native binaries for Windows, macOS, and Linux (x64, ARM64, ARMv7) |
FlashForge WebUI supports a wide range of FlashForge printers through its adaptable backend architecture.
| Series | Models | API Type |
|---|---|---|
| Adventurer 5M | Adventurer 5M, 5M Pro | New (HTTP API) |
| AD5X | AD5X | New (HTTP API) |
| Legacy | Older FlashForge Models | Legacy (FlashForgeClient) |
| Requirement | Details |
|---|---|
| Node.js | Version 20.0.0 or higher (for source installation) |
| Network | Connection to your printer(s) |
Pre-built Binaries
Download the appropriate binary for your platform from the Releases page:
| Platform | Binary | Notes |
|---|---|---|
| Windows x64 | flashforge-webui-win-x64.exe |
Most Windows PCs |
| macOS x64 | flashforge-webui-macos-x64 |
Intel Macs |
| macOS ARM | flashforge-webui-macos-arm64 |
Apple Silicon (M1/M2/M3) |
| Linux x64 | flashforge-webui-linux-x64 |
Most Linux PCs |
| Linux ARM64 | flashforge-webui-linux-arm64 |
Raspberry Pi 4/5 (64-bit OS) |
| Linux ARMv7 | flashforge-webui-linux-armv7 |
Raspberry Pi 3/4 (32-bit OS) |
Raspberry Pi Users: Use flashforge-webui-linux-arm64 for 64-bit Raspberry Pi OS, or flashforge-webui-linux-armv7 for 32-bit.
# Make the binary executable (Linux/macOS)
chmod +x flashforge-webui-linux-arm64
# Run with auto-connect to last used printer
./flashforge-webui-linux-arm64 --last-used
# Run without auto-connect
./flashforge-webui-linux-arm64 --no-printersRunning from Source
# Clone the repository
git clone https://github.com/Parallel-7/FlashForgeWebUI.git
cd FlashForgeWebUI
# Install dependencies
npm install
# Build the application (required before first run)
npm run build
# Start the server
npm start
# Or start with auto-connect to last used printer
npm start -- --last-usedDevelopment Mode:
# Build and watch for changes with hot reload
npm run devAfter starting the server, open your browser and navigate to:
http://localhost:3000
Or if accessing from another device on your network:
http://<server-ip>:3000
Default Login: The default password is changeme. You should change this in data/config.json or via the --webui-password flag.
| Option | Description |
|---|---|
--last-used |
Connect to the last used printer on startup |
--all-saved-printers |
Connect to all saved printers on startup |
--printers="IP:TYPE:CODE,..." |
Connect to specific printers (TYPE: "new" or "legacy") |
--no-printers |
Start WebUI only, without connecting to any printer |
--webui-port=PORT |
Override the WebUI port (default: 3000) |
--webui-password=PASS |
Override the WebUI password |
The application automatically creates a configuration file at data/config.json on first run.
| Setting | Default | Description |
|---|---|---|
WebUIEnabled |
true |
Enable/disable the web interface |
WebUIPort |
3000 |
Port for the web server |
WebUIPassword |
changeme |
Login password (change this!) |
WebUIPasswordRequired |
true |
Require password to access |
SpoolmanEnabled |
false |
Enable Spoolman integration |
SpoolmanServerUrl |
"" |
Your Spoolman server URL (e.g., http://192.168.1.100:7912) |
CameraProxyPort |
8181 |
Starting port for camera proxies |
# Build for specific platform
npm run build:linux # Linux x64
npm run build:linux-arm # Linux ARM64 (Raspberry Pi 4/5)
npm run build:linux-armv7 # Linux ARMv7 (Raspberry Pi 3)
npm run build:win # Windows x64
npm run build:mac # macOS x64
npm run build:mac-arm # macOS ARM (Apple Silicon)"Cannot GET /" or blank page when accessing WebUI:
- If running from source: Make sure you ran
npm run buildbeforenpm start - If using a pre-1.0.2 binary: Update to version 1.0.2 or later (fixes static file serving bug)
"Permission denied" when running binary:
chmod +x flashforge-webui-linux-*Port already in use:
- Change the port in
data/config.jsonor use--webui-port=3001
Cannot connect to printer:
- Ensure your printer is on the same network as the device running WebUI
- Check that the printer's IP address is correct
- For legacy printers, ensure TCP port 8899 is accessible
Selecting the correct binary for your platform:
- Windows:
flashforge-webui-win-x64.exe - macOS Intel:
flashforge-webui-macos-x64 - macOS Apple Silicon:
flashforge-webui-macos-arm64 - Linux x64:
flashforge-webui-linux-x64 - Raspberry Pi (64-bit OS):
flashforge-webui-linux-arm64 - Raspberry Pi (32-bit OS):
flashforge-webui-linux-armv7 - Check your architecture with
uname -m(x86_64 = x64, aarch64 = ARM64, armv7l = ARMv7)
MIT License
| Project | Role |
|---|---|
| ff-5mp-api-ts | FlashForge API Client Library |
| slicer-meta | Printer Metadata & Model Utilities |
| FlashForgeUI-Electron | Original Desktop Application |
| Spoolman | Filament Management |