Skip to content

Printer management dashboard and IPP proxy with print job rules and actions.

Notifications You must be signed in to change notification settings

YakirOren/Print-Center

Repository files navigation

Print Center

Printer management dashboard with job automation.

Features   •   Quick Start   •   Screenshots   •   CEL Rules   •   Integrations

Introduction

Print Center is a platform for managing printers and print jobs. It acts as an IPP proxy, intercepting print jobs to apply approval rules and actions before forwarding them to actual printers.

Quick Start

Get Print Center running with Docker:

docker run -d \
  --name print-center \
  -p 8090:8090 \
  -v print-center-data:/app/pb_data \
  ghcr.io/yakiroren/print-center:latest

Open http://localhost:8090 in your browser.

First-Time Setup

  1. Navigate to http://localhost:8090/_/ to access the admin panel
  2. Create your admin account
  3. Return to http://localhost:8090 and log in

Adding Your First Printer

  1. Go to Printers and click Add Printer
  2. Enter the printer name and its IPP URL (e.g., ipp://192.168.1.100:631/ipp/print)
  3. Save the printer

Creating a Token

  1. Go to Tokens and click Create
  2. Select a user and printer
  3. Copy the generated IPP URL and configure it on your client device

Features

  • Printer Management - Configure and monitor multiple printers with live status updates
  • Print Job Tracking - Browse, filter, and manage all print jobs with detailed information
  • Metadata Extraction - Automatically extract page count and generate previews from PDFs, images, and Apple Raster files
  • Rules Engine - Automatically approve, reject, or hold jobs using CEL expressions
  • Job Timeline - Audit trail of job status changes with timestamps
  • Integrations - Trigger S3 uploads, Paperless-ngx archiving, webhooks, and notifications when rules match
  • Printer Tokens - Generate IPP URLs to connect users to specific printers

Screenshots

Job Details

Complete job information with status timeline.

Job Details

Rule Editor

Visual CEL expression editor for creating rules.

Rule Editor

CEL Rules

Print Center uses CEL (Common Expression Language) to define automation rules. When a print job is submitted, rules are evaluated and matching actions are applied.

Actions: Approve • Reject • Hold (for manual approval)

page_count > 100                                 // Hold large jobs
submitter.role == "guest"                        // Require approval for guests
page_count > 50 && submitter.role == "guest"    // Combined conditions

Integrations

Integrations are triggered when a rule evaluates to true. Each rule can be configured to trigger one or more integrations.

  • S3 Storage - Upload print job files to S3-compatible storage
  • Paperless-ngx - Send print jobs to Paperless-ngx for document archiving
  • Webhooks - Send HTTP requests to any URL when a rule matches
  • Notifications - Send alerts via Shoutrrr to 20+ services including Slack, Discord, Teams, Email, Telegram, and more

Development

git clone https://github.com/YakirOren/Print-Center
cd printer-dashboard
npm install
npm run dev
./generate-types.sh # generate types from the sqlite db

Stack

Frontend: React 19 • TypeScript • Vite • Refine • shadcn/ui • Tailwind CSS Backend: Go • PocketBase • CEL

About

Printer management dashboard and IPP proxy with print job rules and actions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages