Bambu Web Helper
Multi-user web application for Bambu Cloud monitoring with Docker, Postgres, user management, and a separate private MQTT broker configuration for every user.
Features
- Web interface on port
3923 - Postgres database through
docker compose - Login, self-service password changes, and admin password resets
- Admin-managed per-user printer limits, initially
1 - Per-printer Bambu Cloud token storage
- Live printer status through Bambu Cloud MQTT
- Per-user MQTT broker with optional authentication, TLS, and certificate-error override
- Per-user Bambu push and MQTT sync intervals
Start with Docker
- Ensure Docker Desktop is running.
- Run
docker compose up --build -d. - Open
http://localhost:3923.
The initial admin is set in .env:
- Username:
bambumin - Password:
ChangeMe123!
Defaults
The .env file supplies defaults for newly created users:
DEFAULT_USER_PRINTER_LIMIT=1DEFAULT_USER_PUSH_INTERVAL_MS=600000DEFAULT_USER_SYNC_INTERVAL_MS=30000BRIDGE_REFRESH_INTERVAL_MS=30000
Private MQTT
After login, every user configures their own MQTT broker in the web interface.
Enter only the hostname or IP address, such as mqtt.example.net; enter the port
separately. Enabling TLS uses mqtts. Enabling the certificate-error option sets
the MQTT client's rejectUnauthorized option to false.
Each printer publishes retained payloads to the configured user broker:
{baseTopic}/{serial}/availability{baseTopic}/{serial}/state{baseTopic}/{serial}/raw{baseTopic}/{serial}/{custom-suffix}for configured individual scalar values
In the printer tab, users can map selected fields from raw or the normalized
state to their own topic suffix. Examples include print.nozzle_temper and
nozzleTemp. Scalar values are published directly as text, number, or boolean,
so subscribers do not need to parse the JSON status payload.
The push interval sends Bambu's pushall request. The MQTT sync interval republishes
the last known state; new live updates are always published immediately.
Bambu Cloud
The integration follows the connection pattern used by Keralots/BambuHelper:
us.mqtt.bambulab.comforUSandEU,cn.mqtt.bambulab.comforCN- TLS on port
8883 - Username
u_{uid}and the access token as password - Status topic
device/{SERIAL}/report - Request topic
device/{SERIAL}/request
The application requests complete status snapshots with pushall. A printer owner
can additionally switch the chamber light and pause, resume, or stop an active print
from the printer page. Stopping always requires a confirmation in the web interface.