How kernel-cracker/sakura-print works
Sakura Print is a Linux-hosted home printing and scanning app, with a browser UI usable on the computer or on the same Wi-Fi. The main workflow is to choose or upload content, configure print options, build a printable document, then send it to a printer; phone printing through IPP is a separate entry path. Other major branches cover scanning and editing, printer setup and driver management, printer care, and print history. The graph uses README-documented product flows and the shown server, editor, driver, and IPP excerpts; many Go route implementations were not sampled, so their internal links are omitted.
Main entry points: 01-core.js Web app · ipp_jobs.go IPP print service · server.go HTTP server · pdf_build.go Print document build
Components 27
App and access
- Web app
web/js/01-core.js - HTTP server
server.go - Phone sessions
api_session.go
Print workflow
- Document printing
web/js/04-print.js - Print document build
pdf_build.go - File conversion
convert.go - CUPS printing
cups.go - IPP print service
ipp_jobs.go - IPP printer options
ipp_options.go
Devices and drivers
- First-time setup
web/js/07-setup.js - Driver setup UI
web/js/15-drivers.js - Driver selection
drivers_plan.go - Driver installation
drivers_run.go - Driver packages
drivers_pkg.go - Device discovery
drivers_scan.go
Scan and edit
- Scan and copy
web/js/08-scan.js - Scanning
scan.go - Page editor
web/js/06-editor.js - Image processing
web/develop.js
Care and history
- Printer care
web/js/09-care.js - Print again
web/js/14-again.js - Print history
history.go
Other components
- Computer user
- Phone user
- Other print apps
- Printer
- Scanner
Connections 27
- Computer user → Web app: uses
README.md - Phone user → Web app: opens over Wi-Fi
README.md - Web app → HTTP server: requests app services
README.md - HTTP server → Web app: serves app assets
server.go - Phone user → Phone sessions: logs in with PIN
api_session.go - First-time setup → Driver setup UI: configures printer
README.md - Driver setup UI → Driver selection: requests driver setup
web/js/15-drivers.js - Driver selection → Driver installation: selects install route
- Driver installation → Driver packages: installs packages
- Device discovery → Driver selection: provides device choices
- Web app → Document printing: opens print flow
README.md - Document printing → Print document build: requests print build
README.md - Print document build → File conversion: converts input files
- Print document build → CUPS printing: submits print job
- Other print apps → IPP print service: prints via IPP
README.md - HTTP server → IPP print service: registers print service
server.go - IPP print service → IPP printer options: uses printer options
- IPP print service → Printer: sends print job
README.md - CUPS printing → Printer: prints
README.md - Web app → Scan and copy: opens scan flow
README.md - Scan and copy → Scanning: requests scans
README.md - Scanning → Scanner: scans pages
README.md - Page editor → Image processing: processes image pixels
web/js/06-editor.js - Web app → Page editor: opens page editor
README.md - Web app → Printer care: opens printer care
README.md - Web app → Print again: opens print again
README.md - Print again → Print history: reprints saved jobs