2026-08-11 23:37:44 +02:00
2026-08-11 23:37:44 +02:00
2026-08-11 23:37:44 +02:00
2026-08-11 23:37:44 +02:00
2026-08-11 23:37:44 +02:00
2026-08-11 23:37:44 +02:00
2026-08-11 23:37:44 +02:00
2026-08-11 23:37:44 +02:00
2026-08-11 23:37:44 +02:00

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

  1. Ensure Docker Desktop is running.
  2. Run docker compose up --build -d.
  3. 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=1
  • DEFAULT_USER_PUSH_INTERVAL_MS=600000
  • DEFAULT_USER_SYNC_INTERVAL_MS=30000
  • BRIDGE_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.com for US and EU, cn.mqtt.bambulab.com for CN
  • 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.

S
Description
No description provided
Readme
98 KiB
Languages
HTML 57.4%
JavaScript 42.5%
Dockerfile 0.1%