Printer management dashboard with job automation.
Features • Quick Start • Screenshots • CEL Rules • Integrations
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.
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:latestOpen http://localhost:8090 in your browser.
- Navigate to http://localhost:8090/_/ to access the admin panel
- Create your admin account
- Return to http://localhost:8090 and log in
- Go to Printers and click Add Printer
- Enter the printer name and its IPP URL (e.g.,
ipp://192.168.1.100:631/ipp/print) - Save the printer
- Go to Tokens and click Create
- Select a user and printer
- Copy the generated IPP URL and configure it on your client device
- 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
Complete job information with status timeline.
Visual CEL expression editor for creating 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 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
git clone https://github.com/YakirOren/Print-Center
cd printer-dashboard
npm install
npm run dev./generate-types.sh # generate types from the sqlite dbFrontend: React 19 • TypeScript • Vite • Refine • shadcn/ui • Tailwind CSS Backend: Go • PocketBase • CEL

