Skip to content

ichwars/PrintOps

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,548 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PrintOps logo

PrintOps

From printer control to complete 3D-print operations.
A local, self-hosted platform for hobbyists, print farms, small businesses, and developers.

Latest release CI status CodeQL status Security audit status AGPL-3.0 license

Origin · Comparison · Capabilities · Direction · Quick start · Documentation

PrintOps brings the operational work around 3D printing into one place. It combines a proven Bambu printer-management foundation with projects, inventory, procurement, costing, customer, order, and document workflows. You can start with one printer at home and keep the same platform as the work grows into a farm or a business.

Built on bambuddy

PrintOps stands on the foundation created by maziggy. His idea, creativity, and sustained work turned Bambu printer management into a capable self-hosted platform with bambuddy. We are sincerely grateful for that foundation.

PrintOps is an independent fork. It preserves bambuddy's proven printer-management core while pursuing a broader goal: connecting printing with materials, costing, customers, orders, and business documents in one coherent operations platform.

The repositories now evolve independently, so their releases, migrations, interfaces, and feature compatibility can diverge over time.

bambuddy and PrintOps

The projects share a technical lineage but follow different product directions. This comparison is about focus, not about declaring a winner.

Area bambuddy PrintOps
Core purpose A self-hosted command center for Bambu printers and print farms A broader operations platform built around 3D-print production
Code lineage The original project and upstream foundation An independent fork whose domain models, migrations, APIs, and workflows evolve separately
Printer workflows The primary product focus Retained as the operational production core
Operational scope Deep printer control, automation, queues, archives, files, and fleet workflows Extends printer operations with warehouse, procurement, costing, customer, order, and document workflows
Interface A feature-rich printer command center A separate PrintOps identity and navigation organized around Printers, Projects, Warehouse, and Orders
Best fit Users primarily seeking deep Bambu printer control and automation Hobbyists, farms, businesses, and developers who want production connected to the work around it
Direction Continued depth in printer management and automation An end-to-end flow from model and material to production, delivery, and compliant documents

PrintOps is more than a visual rebrand, but that does not make bambuddy the wrong choice. bambuddy remains a strong, focused project for users whose primary need is printer control and automation.

Who PrintOps is for

  • Hobbyists get local control, useful automation, organized projects, and an inventory that can grow with the workshop.
  • Print-farm operators get a shared view of printers, queues, files, materials, maintenance, and production work.
  • Small businesses get the foundation for connecting stock, purchasing, costing, customers, quotations, orders, and documents.
  • Developers get an AGPL-licensed, self-hosted Python and TypeScript codebase with automated tests, API-oriented services, and room for integrations.

Available today

Printer and production operations

  • Real-time printer monitoring and control, queues, scheduling, archives, profiles, maintenance, cameras, and notifications.
  • Projects and file-library workflows, including optional server-side slicing and reusable slicing pipelines.
  • Multi-printer and print-farm workflows carried forward from the shared bambuddy foundation and adapted as PrintOps evolves.

Warehouse and procurement

  • Filament inventory plus structured storage locations and stock visibility.
  • Material inventory for purchased parts, hardware, and consumables.
  • Physical and reserved stock tracking, opening balances, minimum-stock signals, and auditable stock movements.
  • Central supplier records with preferred and alternative procurement offers, package quantities, prices, links, and lead times for material and filament.

Commercial foundation

  • Business profiles, customer records, and permissions.
  • Costing workspaces that connect project, material, machine, labor, and overhead data.
  • Foundations for quotations, orders, reservations, and related commercial workflows.

Platform

  • Local, self-hosted operation with persistent data under your control.
  • A Python/FastAPI backend and React/TypeScript frontend with REST and real-time interfaces.
  • Modular printer API routers with CI-enforced Python size budgets, keeping the printer-control surface maintainable as the fork grows.
  • Role-based permissions, API keys, integrations, responsive layouts, and a multilingual interface.

Where PrintOps is going

This is product direction, not a claim that every workflow below is complete in the current release.

  • One connected operating flow: enquiry → costing → quotation → order → purchasing and reservation → production → delivery → invoicing.
  • Complete business documents: quotations, order confirmations, delivery notes, invoices, corrections, credit notes, reminders, and related records.
  • Standards-compliant electronic invoicing: structured formats and validation for increasingly digital accounting workflows.
  • Safer self-hosted secrets: TOTP and OIDC client secrets are encrypted at rest by default, and new plaintext secret writes require an explicit recovery opt-in.
  • Deeper planning and traceability: purchasing, production capacity, material demand, document history, reporting, and auditability.
  • A coherent product experience: consistent workflows and visual language across printer operations, projects, warehouse, orders, and settings.

Quick start

The supported installers configure PrintOps, persistent data, and logs. Docker is the recommended deployment method.

Linux or macOS:

curl -fsSL https://raw.githubusercontent.com/ichwars/PrintOps/main/install/docker-install.sh -o docker-install.sh
chmod +x docker-install.sh
./docker-install.sh

Windows PowerShell:

powershell -ExecutionPolicy Bypass -Command "iwr -useb https://raw.githubusercontent.com/ichwars/PrintOps/main/install/docker-install.ps1 -OutFile docker-install.ps1; .\docker-install.ps1"

Open http://localhost:8000 after installation. Docker Desktop cannot provide LAN printer auto-discovery, so Windows and macOS users may need to add printers by IP. See the complete installation guide for Docker, native installation, custom ports, updates, and troubleshooting.

Document Layouts and PDF Evidence

Settings -> Order Management -> Format & Preview provides a versioned, structured editor for all commercial-document layouts. It renders genuine multi-page A4 or Letter PDFs on the left and keeps the compact layout controls on the right. Draft changes autosave; only blocker-free, validated versions can be published.

The same offline renderer is used for previews, final PDFs and external snapshot exports. Final commercial PDFs are PDF/A-3u. ZUGFeRD keeps the PDF as the original with validated XML attached; XRechnung keeps the XML as the original and labels its PDF as a separate visual copy. Layout assets, issued artifacts, XML evidence and validation reports are included in local and private-Git backups with SHA-256 receipts.

WeasyPrint and veraPDF are pinned build/runtime components. Production and installer builds must stage them before startup; PrintOps never downloads a renderer or validator while processing a document. The readiness endpoint /api/v1/document-render/readiness reports the installed versions and blocks final release when a required component is unavailable.

Development

The backend uses Python, FastAPI, and SQLAlchemy. The frontend uses React, TypeScript, and Vite.

# Backend
python -m venv .venv
# Activate .venv for your shell, then:
pip install --require-hashes -r requirements-dev.lock.txt
uvicorn backend.app.main:app --reload --host 0.0.0.0 --port 8000 --loop asyncio

# Frontend, in a second shell
cd frontend
npm install
npm run dev

The frontend development server runs on http://localhost:5173 and proxies API requests to the backend. The production frontend build is written to static/, where the backend serves it.

Read CONTRIBUTING.md for prerequisites, issue and pull-request workflow, code style, internationalization, permissions, tests, and required documentation updates.

Project status

PrintOps is under active development. The printer-management foundation is broad and proven; the warehouse and commercial domains are evolving quickly. Sections under Available today describe shipped capabilities. Sections under Where PrintOps is going describe intended outcomes and must not be read as a promise that every workflow is finished in the current release.

Documentation and contributing

Contributions are welcome. Start with an issue so scope and direction can be agreed before implementation.

License, origin, and independence

PrintOps is licensed under the GNU Affero General Public License v3.0. When you distribute a modified version or provide access to it over a network, the corresponding source must be made available under the terms of the AGPL.

PrintOps is an independent fork of bambuddy. It is not affiliated with, maintained by, or endorsed by Bambu Lab. Bambu Lab, Bambu Studio, MakerWorld, and related names are trademarks of their respective owners.

About

Self-hosted operations platform for 3D printing workflows, built from Bambuddy.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages