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!
- 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
|
|
Plus: Dark/light theme β’ Mobile responsive β’ Keyboard shortcuts β’ Multi-language (EN/DE) β’ Auto updates β’ Database backup/restore β’ System info dashboard
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
- Python 3.10+ (3.11/3.12 recommended)
- Bambu Lab printer with LAN Mode enabled
- Same local network as printer
git clone https://github.com/maziggy/bambuddy.git
cd bambuddy
docker compose up -dOpen 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 --buildUseful Commands:
# View logs
docker compose logs -f
# Stop/Start
docker compose down
docker compose up -d
# Shell access
docker compose exec bambuddy /bin/bashCustom Port:
ports:
- "3000:8000" # Access on port 3000Reverse 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# 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 8000Open http://localhost:8000 and add your printer!
Need detailed instructions? See the Installation Guide
- 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
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
| 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 |
| Component | Technology |
|---|---|
| Backend | Python, FastAPI, SQLAlchemy |
| Frontend | React, TypeScript, Tailwind CSS |
| Database | SQLite |
| 3D Viewer | Three.js |
| Communication | MQTT (TLS), FTPS |
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 devSee CONTRIBUTING.md for guidelines.
MIT License β see LICENSE for details.
- 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