deploy / deploy (push) Successful in 9s
Drops /brother/select and the session-based "active printer" state: the printer key now lives in the path (/brother/<printer>/*), so the proxy is stateless and any path under it -- including brother_ql_web's API, not just its UI -- is reachable without a prior "activation" step.
35 lines
1.3 KiB
Plaintext
35 lines
1.3 KiB
Plaintext
= labelprint
|
|
|
|
Unified UI for printing labels/stickers:
|
|
|
|
* Native ZPL printing to a Datamax-ONeil thermal barcode printer
|
|
* A proxy/switcher in front of three https://github.com/DL6ER/brother_ql_web[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
|
|
|
|
[source,shell]
|
|
----
|
|
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.
|