No description
Find a file
maziggy ff53e62ef8 Add comprehensive automated testing infrastructure
Backend:
  - pytest configuration with async support and coverage
  - Unit tests for notification service (23 tests)
  - Unit tests for smart plug manager (12 tests)
  - Unit tests for archive service (16 tests)
  - Integration tests for API endpoints
  - Fix: notifications now send immediately (digest is summary only)

  Frontend:
  - Vitest configuration with jsdom and coverage
  - MSW for API mocking
  - Component tests for Toggle, Button, Card, ConfirmModal (77 tests)
  - Test utilities with custom render wrapper

  CI/CD:
  - GitHub Actions workflow for automated testing
  - Backend lint, unit tests, integration tests
  - Frontend lint, type-check, unit tests, build
2025-12-11 10:03:40 +01:00
.github Add comprehensive automated testing infrastructure 2025-12-11 10:03:40 +01:00
backend Add comprehensive automated testing infrastructure 2025-12-11 10:03:40 +01:00
docs Updated README; Added new screenshots 2025-12-10 17:27:10 +00:00
frontend Add comprehensive automated testing infrastructure 2025-12-11 10:03:40 +01:00
icons Moved documentation to it's own repository 2025-12-09 14:41:05 +00:00
mockup/icons Completely removed control page and all it's related code 2025-12-07 10:19:25 +00:00
scripts Completely refactored k-profile module 2025-12-01 15:17:49 +01:00
static Added notification module for AMS humidity and temperature 2025-12-10 20:02:22 +01:00
tests Add comprehensive automated testing infrastructure 2025-12-11 10:03:40 +01:00
._.DS_Store Added filament spool fill levels to printer card 2025-12-10 08:47:12 +00:00
.coverage Add comprehensive automated testing infrastructure 2025-12-11 10:03:40 +01:00
.dockerignore Added Docker support 2025-12-09 17:06:54 +00:00
.env.example Added configurable logging; Major improvements and bugfixes 2025-11-30 12:55:00 +01:00
.gitignore Cleanup 2025-12-09 08:58:36 +00:00
build_docker.sh Added Docker support 2025-12-09 17:25:17 +00:00
CHANGELOG.md Added CHANGELOG.md 2025-12-10 12:53:44 +00:00
docker-compose.yml Added Docker support 2025-12-09 17:06:54 +00:00
Dockerfile Added Docker support 2025-12-09 17:25:17 +00:00
LICENSE Initial commit 2025-11-28 10:21:08 +01:00
PLAN.md Renaming app to Bambuddy 2025-12-09 08:55:59 +00:00
README.md Updated README; Added new screenshots 2025-12-10 17:41:37 +00:00
requirements.txt ## New Features 2025-12-10 17:06:43 +00:00
test_backend.sh Add comprehensive automated testing infrastructure 2025-12-11 10:03:40 +01:00
test_frontend.sh Add comprehensive automated testing infrastructure 2025-12-11 10:03:40 +01:00

Bambuddy Logo

Bambuddy

Self-hosted print archive and management system for Bambu Lab 3D printers

Release License Stars Issues

FeaturesScreenshotsQuick StartDocumentationContributing


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

  • Automatic 3MF archiving with metadata
  • 3D model preview (Three.js)
  • Duplicate detection & full-text search
  • Photo attachments & failure analysis
  • Re-print to any connected printer
  • Archive comparison (side-by-side diff)

📊 Monitoring & Stats

  • Real-time printer status via WebSocket
  • HMS error monitoring
  • Print success rates & trends
  • Filament usage tracking
  • Cost analytics & failure analysis
  • CSV/Excel export

Scheduling & Automation

  • Print queue with drag-and-drop
  • Scheduled prints (date/time)
  • Smart plug integration (Tasmota)
  • Auto power-on before print
  • Auto power-off after cooldown

📁 Projects

  • Group related prints (e.g., "Voron Build")
  • Track progress with target counts
  • Color-coded project badges
  • Assign archives via context menu

🔔 Notifications

  • WhatsApp, Telegram, Discord
  • Email, Pushover, ntfy
  • Custom webhooks
  • Quiet hours & daily digest
  • Customizable message templates

🔧 Integrations

  • Spoolman filament sync
  • Bambu Cloud profile management
  • K-profiles (pressure advance)
  • External sidebar links
  • Webhooks & API keys

🛠️ Maintenance

  • Maintenance scheduling & tracking
  • Interval reminders (hours/days)
  • Print time accuracy stats
  • File manager for printer storage

Plus: Dark/light theme • Mobile responsive • Keyboard shortcuts • Multi-language (EN/DE) • Auto updates


📸 Screenshots

Click to expand screenshots

Printers
Real-time printer monitoring with AMS status

Archives
Print archive with context menu and project assignment

Projects
Group related prints into projects

Queue
Print scheduling and queue management

Statistics
Customizable statistics dashboard

Maintenance Status
Maintenance tracking per printer

Maintenance Overdue
Overdue maintenance alerts

Maintenance Settings
Configure maintenance types and intervals

Profiles Create
Create new filament presets

Profiles Edit
Edit filament preset settings

K-Profiles
Pressure advance (K-factor) profiles

Settings
Configuration and integrations

Smart Plugs
Smart plug control and automation

Notifications
Multi-provider notification system

API Keys
API keys and webhook endpoints


🚀 Quick Start

Requirements

  • Python 3.10+ (3.11/3.12 recommended)
  • Bambu Lab printer with LAN Mode enabled
  • Same local network as printer

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

  1. On printer: SettingsNetworkLAN Mode
  2. Enable LAN Mode and note the Access Code
  3. Find IP address in network settings
  4. Find Serial Number in device info

📚 Documentation

Full documentation available in the Wiki:


🖨️ 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:

  1. Test — Report issues with your printer model
  2. Translate — Add new languages
  3. Code — Submit PRs for bugs or features
  4. 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 BugRequest FeatureDocumentation