Printbuddy

Printbuddy

Docker app from ZappyZap's Repository

Overview

Printbuddy is a self-hosted command center for your 3D-printer fleet. Monitor Bambu Lab, Klipper/Moonraker, and PrusaLink printers, track filament, archive print jobs, and understand your print history from one clean interface.

Printbuddy

Printbuddy Logo

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 Dashboard Screenshot

grafik

File Manager of different printers

grafik grafik

Printer Detail Screenshot

grafik

Klipper-based printer with control options

grafik

Panda Breath Support

grafik

Update via the UI

grafik

Printbuddy Mascot / STL

Printbuddy also has its own little mascot.

photo_2026-06-05_21-22-27

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.

  1. Commit and push work to dev.
  2. Test from dev.
  3. Merge approved changes into main.
  4. 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:

  1. Open an issue with your idea or bug report.
  2. Target pull requests against dev.
  3. Keep changes focused and easy to review.
  4. 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

Star History Chart

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.

Open the Apps tab on your Unraid server Search Community Apps for Printbuddy Review the template variables and paths Click Install

Download Statistics

25,623
Total Downloads

Related apps

Details

Repository
vmhomelabde/printbuddy:latest
Last Updated2026-08-28
First Seen2026-08-03

Runtime 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

Time ZoneVariableenv

Set the operational time zone for print logs and scheduled tasks.

Target
TZ
Default
America/Toronto
Value
America/Toronto
PUIDVariableenv

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
PGIDVariableenv

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
Web UI PortVariableenv

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
DataPathrw

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
LogsPathrw

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