Run PrintStation locally¶
The repositories contain enough information for an AI coding agent such as Claude Code or Codex to work out the build and local orchestration. This page only supplies the access and environment details that are not reliably discoverable from the source.
What you need¶
- Docker Desktop and Git
- GitHub access to the PopSockets organization
- Cato VPN access to the sandbox MySQL network
- Sandbox database credentials, supplied separately through a secure channel
Use a MySQL 8 client for the database export. Newer clients do not necessarily support the sandbox account's authentication plugin.
Current repositories and branches¶
| Repository | Branch | Purpose |
|---|---|---|
PopSockets/popsockets-printstation-backend |
sandbox2 |
PrintStation API |
PopSockets/popsockets-printstation-webapp |
sandbox2 |
Operator UI |
PopSockets/popsockets-nodejs-server |
printstation-proxy-2 |
UI proxy |
PopSockets/popsockets-batching-backend |
sandbox2 |
BatchStation API |
The BatchStation dev branch is stale and does not match the current sandbox
database schema.
Minimum local stack¶
The useful core is:
- MySQL 8 with complete snapshots of
batching-sandboxandprintstation-sandbox-2.7 - PrintStation backend
- BatchStation backend
- PrintStation webapp and its Node proxy
The schemas have cross-database dependencies. Import the BatchStation base tables first, then PrintStation, then the BatchStation views.
Image Maker, ItemSync, Standard Item Manager, NFC, uploads, physical printers, and shared sandbox image volumes are not required to get the core application running.
Local configuration¶
- Point both applications at local MySQL, not the sandbox server.
- Export the database directly through Cato. Do not create a relay on a server, pod, or shared environment.
- Disable Service Bus consumers and producers, Camel and OMS callbacks, Azure Blob startup, scheduled uploads, WebSockets, and browser/proxy authentication.
- Keep credentials, dumps, and local-only configuration out of Git.
- Use clearly labelled local test orders only.
If Cato routing or database access is unavailable, get that access fixed rather than working around it through shared infrastructure.
What working looks like¶
- The webapp loads locally without redirecting to Microsoft authentication.
- The PrintStation health endpoint returns HTTP 200 locally and through the proxy.
- BatchStation accepts a current order payload, persists it to local MySQL, and returns it through the proxy.
A local order may finish at ERROR / FILE_NOT_FOUND during image validation.
The database snapshot contains paths to files on shared sandbox volumes, but the
files themselves are not part of the database export. That does not prevent the
core order intake, fulfillment lookup, persistence, status handling, or UI from
running locally.
For system behavior after startup, see PrintStation & BatchStation.