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) |
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) |
# 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-printers# 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-used# Build and watch for changes with hot reload
npm run devhttp://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)| Issue | Solution |
|---|---|
| "Cannot GET /" or blank page when accessing WebUI | If running from source: Make sure you ran npm run build before npm startIf 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 | Run chmod +x flashforge-webui-linux-* to make executable |
| Port already in use | Change the port in data/config.json or 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.exemacOS Intel: flashforge-webui-macos-x64macOS Apple Silicon: flashforge-webui-macos-arm64Linux x64: flashforge-webui-linux-x64Raspberry Pi (64-bit OS): flashforge-webui-linux-arm64Raspberry Pi (32-bit OS): flashforge-webui-linux-armv7Check your architecture with uname -m (x86_64 = x64, aarch64 = ARM64, armv7l = ARMv7) |
| Project | Role |
|---|---|
| ff-5mp-api-ts | FlashForge API Client Library |
| slicer-meta | Printer Metadata & Model Utilities |
| FlashForgeUI-Electron | Original Desktop Application |
| Spoolman | Filament Management |