Release Notes for 0.1.5 Highlights This release focuses on stability improvements and bug fixes, with major fixes for browser freezing and UI responsiveness issues. Bug Fixes - Browser freeze on print completion - Fixed a critical issue where the browser would freeze when a print completed with the camera stream open. The fix uses buffered camera frames instead of spawning duplicate ffmpeg processes. - Printer status "timelapse" effect - Fixed an issue where navigating to the printer page after a print completed showed metrics animating slowly from mid-print values to the final state. Printer status messages now bypass the throttled queue for immediate updates. - Timelapse auto-download - Complete rewrite with retry mechanism and support for multiple storage paths. - Timelapse detection for H2D - Fixed detection using the correct ipcam.timelapse field instead of xcam.timelapse. - Reprint from archive - Fixed bug where the print button sent the slicer source file instead of the sliced gcode. - Import shadowing bugs - Fixed ArchiveService import shadowing causing "cannot access local variable" errors. New Features - Failure reason detection - Automatically detects failure reasons from HMS errors (filament runout, layer shift, clogged nozzle) - Hide failed prints filter - Toggle to hide failed/aborted prints with localStorage persistence - Docker test suite - Comprehensive tests for build, backend, frontend, and integration - Pre-commit hooks - Ruff linter and formatter for code quality - Code quality tests - Static analysis to catch import shadowing bugs automatically Changes - Timelapse viewer default playback speed changed from 0.5x to 2x - Archive badges now show "cancelled" for aborted prints - WebSocket throttle reduced to 100ms for smoother updates - Added ffmpeg to Docker image Upgrading cd bambuddy && git pull && docker compose up -d --build Or use the auto-update feature in Settings.
Bambuddy
Self-hosted print archive and management system for Bambu Lab 3D printers
Features • Screenshots • Quick Start • Documentation • Contributing
Testers Needed! I only have X1C and H2D devices. Help make Bambuddy work with all Bambu Lab printers by reporting your experience!
Why Bambuddy?
- Own your data — All print history stored locally, no cloud dependency
- Works offline — Uses LAN Mode for direct printer communication
- Full automation — Schedule prints, auto power-off, get notified when done
- Multi-printer support — Manage your entire print farm from one interface
✨ Features
📦 Print Archive
📊 Monitoring & Stats
⏰ Scheduling & Automation
📁 Projects
|
🔔 Notifications
🔧 Integrations
🛠️ Maintenance
🎛️ Printer Control
|
Plus: Dark/light theme • Mobile responsive • Keyboard shortcuts • Multi-language (EN/DE) • Auto updates • Database backup/restore • System info dashboard
📸 Screenshots
Click to expand screenshots
Real-time printer monitoring with AMS status
Print archive with 3D preview and project assignment
Group related prints into projects
Print scheduling and queue management
Customizable statistics dashboard
Maintenance tracking per printer
Configure maintenance types and intervals
Pressure advance (K-factor) profiles
Edit K-factor profile settings
General configuration and integrations
Smart plug control and energy monitoring
🚀 Quick Start
Requirements
- Python 3.10+ (3.11/3.12 recommended)
- Bambu Lab printer with LAN Mode enabled
- Same local network as printer
Installation
Docker (Recommended)
git clone https://github.com/maziggy/bambuddy.git
cd bambuddy
docker compose up -d
Open http://localhost:8000 in your browser.
Docker Configuration & Commands
Environment Variables:
| Variable | Default | Description |
|---|---|---|
TZ |
UTC |
Your timezone (e.g., America/New_York, Europe/Berlin) |
DEBUG |
false |
Enable debug logging |
LOG_LEVEL |
INFO |
Log level: DEBUG, INFO, WARNING, ERROR |
Data Persistence:
| Volume | Purpose |
|---|---|
bambuddy.db |
SQLite database with all your print data |
archive/ |
Archived 3MF files and thumbnails |
logs/ |
Application logs |
Updating:
cd bambuddy && git pull && docker compose up -d --build
Useful Commands:
# View logs
docker compose logs -f
# Stop/Start
docker compose down
docker compose up -d
# Shell access
docker compose exec bambuddy /bin/bash
Custom Port:
ports:
- "3000:8000" # Access on port 3000
Reverse Proxy (Nginx):
server {
listen 443 ssl http2;
server_name bambuddy.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400;
}
}
Note: WebSocket support is required for real-time printer updates.
Network Mode Host (for easier printer discovery):
services:
bambuddy:
build: .
network_mode: host
Manual Installation
# Clone and setup
git clone https://github.com/maziggy/bambuddy.git
cd bambuddy
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Run
uvicorn backend.app.main:app --host 0.0.0.0 --port 8000
Open http://localhost:8000 and add your printer!
Need detailed instructions? See the Installation Guide
Enabling LAN Mode
- On printer: Settings → Network → LAN Mode
- Enable LAN Mode and note the Access Code
- Find IP address in network settings
- Find Serial Number in device info
📚 Documentation
Full documentation available at wiki.bambuddy.cool:
- Installation — All installation methods
- Getting Started — First printer setup
- Features — Detailed feature guides
- Troubleshooting — Common issues & solutions
- API Reference — REST API documentation
🖨️ Supported Printers
| Series | Models | Status |
|---|---|---|
| H2 | H2C, H2D, H2S | ✅ Tested (H2D) |
| X1 | X1, X1 Carbon | ✅ Tested (X1C) |
| P1 | P1P, P1S | 🧪 Needs testing |
| A1 | A1, A1 Mini | 🧪 Needs testing |
🛠️ Tech Stack
| Component | Technology |
|---|---|
| Backend | Python, FastAPI, SQLAlchemy |
| Frontend | React, TypeScript, Tailwind CSS |
| Database | SQLite |
| 3D Viewer | Three.js |
| Communication | MQTT (TLS), FTPS |
🤝 Contributing
Contributions welcome! Here's how to help:
- Test — Report issues with your printer model
- Translate — Add new languages
- Code — Submit PRs for bugs or features
- Document — Improve wiki and guides
# Development setup
git clone https://github.com/maziggy/bambuddy.git
cd bambuddy
# Backend
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
DEBUG=true uvicorn backend.app.main:app --reload
# Frontend (separate terminal)
cd frontend && npm install && npm run dev
See CONTRIBUTING.md for guidelines.
📄 License
MIT License — see LICENSE for details.
🙏 Acknowledgments
- Bambu Lab for amazing printers
- The reverse engineering community for protocol documentation
- All testers and contributors
Made with ❤️ for the 3D printing community
Report Bug •
Request Feature •
Documentation




