randy 66e2e7a5c0
deploy / deploy (push) Successful in 10s
Redesign: clear active nav state, Shipping labels + Receipts get free-text/raw print, shared label repository
- Home page is now just the print server overview, no more unrelated
  network links (3D printers, Cockpit) left over from when this was a
  general landing page.
- Navbar shows which section is active; Brother's per-printer buttons
  now live under a dedicated Brother nav item instead of always-visible.
- Shipping labels: paste raw ZPL directly (no need to save to a file
  first), with a Labelary preview link alongside it.
- Receipts: paste already-formatted ESC/POS text directly, printed as-is.
- Both can save what they just printed into a shared label repository
  (lib/label_repository.rb, one JSON file per label under data/labels/)
  for reprinting later -- saving happens independently of whether the
  print itself succeeds, so a failed/offline printer doesn't lose the
  content.
2026-09-13 11:11:12 +02:00

labelprint

Unified UI for printing labels/stickers:

  • Native ZPL printing to a Datamax-ONeil thermal barcode printer

  • A proxy/switcher in front of three brother_ql_web instances, one per Brother QL printer

Routes

  • / — upload a PDF and print it (ZPL)

  • /upload — upload form

  • /test-print — print the bundled test label

  • /brother — list of Brother QL printers

  • /brother/<printer>/* — proxied to that printer’s brother_ql_web instance (UI and API alike)

Running

bundle install
bundle exec ruby app.rb

Requires config.json (see printer definitions inside) and a .session_secret file (random string, not committed).

Deployment

Runs as sinatra.service (systemd) on rpi-printserver.local, under RVM (rvm default do bundle exec ruby app.rb — always uses whatever ruby is currently the RVM default, no manual bumping needed).

.gitea/workflows/deploy.yaml deploys on every push to main: SSH into rpi-printserver.local, git pull, bundle install, restart the service.

Dependency updates

.gitea/workflows/renovate.yaml runs Renovate on a schedule (Monday 06:00 Europe/Bratislava, or manually) to open PRs for outdated gems and GitHub Actions. See the "Dependency Dashboard" issue for current status.

S
Description
Unified label/sticker printing UI (Datamax ZPL + multiple Brother QL printers)
Readme
211 KiB
0 Stars 1 Watchers 0 Forks
Languages
Ruby 66.7%
HTML 33.3%