All apps · 0 apps
Printbuddy
Docker app from ZappyZap's Repository
Overview
Readme
View on GitHubPrintbuddy
One modern self-hosted dashboard for your 3D printer fleet.
Manage Bambu Lab, Klipper, and Prusa printers from one clean interface.
📚 Wiki · 📦 Latest release · 🚀 Demo
Demo login: admin / printbuddy
Quick Start · Providers · Home Assistant · Screenshots · Printbuddy STL · Development
[!WARNING] This repository is still under active development
Printbuddy is not ready for public production use yet. Features may be incomplete, unstable, or subject to breaking changes without notice.
Use it for testing, development, and tinkering only.
You can check the current status of different features in the projects tab
What is Printbuddy?
Printbuddy is a modern, self-hosted dashboard with a broader goal:
A single, modern, self-hosted dashboard for managing different 3D printer ecosystems.
Printbuddy uses a provider-based architecture for multiple printer platforms.
Current state:
- Initial fork setup on
dev - Bambu Lab support from the original foundation ✅
- Prusa support added via PrusaLink ✅(Prusa Connect not tested)
- Klipper (open fimrware) support being added ⌛ (not officially supported yet)
- Provider architecture in progress ⌛
Features
Current and planned goals include:
- Multi-printer dashboard
- Bambu Lab printer support
- Klipper printer support through Moonraker
- Prusa-compatible environments
- Self-hosted deployment
- Docker-based setup
- Modern web UI
Screenshots
Printbuddy Mascot / STL
Printbuddy also has its own little mascot.
Print your own Printbuddy
Download your Printbuddy here:
- MakerWorld:
https://makerworld.com/de/models/2894134-your-printbuddy#profileId-3234154 - Printables:
https://www.printables.com/model/1746692-your-printbuddy
Repository workflow
Development happens on the dev branch first.
- Commit and push work to
dev. - Test from
dev. - Merge approved changes into
main. - Release from
main.
dev -> active development
main -> stable releases
Docker quick start
For the first test deployment, build directly from the dev branch:
git clone -b dev https://github.com/vmhomelab/Printbuddy.git
cd Printbuddy
docker compose up -d --build
Open Printbuddy in your browser:
http://<docker-host-ip>:8000
Linux host networking
On Linux, the compose file uses:
network_mode: host
This helps with Bambu discovery, camera access, and virtual-printer ports.
Docker Desktop
On Docker Desktop, remove:
network_mode: host
Then enable the commented ports: block in the compose file instead.
Printer provider direction
Printbuddy introduces a provider boundary so printer-specific integrations can evolve without hard-coding every workflow to Bambu MQTT/FTP.
Planned providers:
| Provider | Description | Status |
|---|---|---|
bambu |
Existing Printbuddy / Bambu Lab MQTT + FTP support | Inherited ✅ |
klipper |
Moonraker-backed Klipper printer status and control | In progress ⌛ |
prusa |
PrusaLink support | Implemented ✅ |
elegoo |
CC1 support | In progress ⌛ |
The first implementation step adds the provider and printer metadata to allow printers to be added.
Bambu remains the default provider for backwards compatibility.
Home Assistant
Printbuddy can be used with Home Assistant in two ways:
- Home Assistant add-on: run Printbuddy directly inside Home Assistant with Ingress, persistent add-on storage, and LAN printer access through host networking. Repository: vmhomelab/printbuddy-ha-addon
- Home Assistant custom integration: connect Home Assistant to an existing Printbuddy instance and expose configured printers as Home Assistant devices and telemetry entities. Repository: vmhomelab/ha-printbuddy-integration
Wiki pages:
Development setup
Backend
python3 -m venv venv
./venv/bin/pip install -r requirements.txt -r requirements-dev.txt
ruff check backend/
ruff format --check backend/
cd backend
../venv/bin/python -m pytest tests/ --tb=short
Frontend
cd frontend
npm ci
npm run lint
npx tsc --noEmit
npm run test:run
npm run build
Project status
Printbuddy is currently focused on:
- Cleaning up the project structure
- Adding provider metadata
- Preparing Klipper and Prusa support
- Keeping existing Bambu functionality working during the transition
Contributing
Contributions are welcome once the project structure becomes more stable.
For now, the best way to contribute is:
- Open an issue with your idea or bug report.
- Target pull requests against
dev. - Keep changes focused and easy to review.
- Test both backend and frontend before opening a pull request.
Attribution and license
Printbuddy keeps the upstream AGPL-3.0 license.
Historical upstream documentation and changelog entries are retained only where needed for license and release-history context.
Star History
Printbuddy
Your tiny helper for keeping the printer chaos under control.
Install Printbuddy on Unraid in a few clicks.
Find Printbuddy in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Download Statistics
Related apps
Explore more like this
Explore allLinks
Details
vmhomelabde/printbuddy:latestRuntime arguments
- Web UI
http://[IP]:[Config:PORT]/- Network
host- Shell
sh- Privileged
- false
- Extra Params
--restart=unless-stopped --cap-add=NET_BIND_SERVICE
Template configuration
Set the operational time zone for print logs and scheduled tasks.
- Target
- TZ
- Default
- America/Toronto
- Value
- America/Toronto
The user ID for the container process. This should match the user ID of the Unraid user that owns the appdata folder.
- Default
- 99
- Value
- 99
The group ID for the container process. This should match the group ID of the Unraid user that owns the appdata folder.
- Default
- 100
- Value
- 100
The internal port Printbuddy uses for its web dashboard server. Since Network Mode is locked to 'host', changing this value directly alters the port used on your Unraid host (e.g. http://your-unraid-ip:8000).
- Target
- PORT
- Default
- 8000
- Value
- 8000
Persistent storage location for your SQLite database, custom settings, and print farm configurations.
- Target
- /app/data
- Default
- /mnt/user/appdata/printbuddy/data
- Value
- /mnt/user/appdata/printbuddy/data
Persistent storage folder where application runtime and printer connection logs are saved.
- Target
- /app/logs
- Default
- /mnt/user/appdata/printbuddy/logs
- Value
- /mnt/user/appdata/printbuddy/logs