FastAPI service that controls a Bambu Lab 3D printer. It syncs .3mf files from S3 to the printer's cache via FTP and exposes endpoints for printer status and file management.
GET /status- Health checkGET /printer/status- Printer state, bed temperature, and Wi-Fi signalGET /files- List files on the printerGET /files/cache- List cached files on the printerPOST /files/cache- Download files from S3 and upload to printer cachePOST /print- Start a print (WIP)
Requires Python 3.14+ and uv. A Nix flake is provided for dev tooling.
uv sync
cp .env.example .env # fill in printer and S3 credentials
python wsgi.py # runs on port 18000A reverse SSH tunnel exposes the local API (port 18000) on the remote Docker host (port 19001) so containers can reach it. See tunnel.md for server configuration details.