Recipe - Run Rock Cloud Print in a Docker Container (Linux / Raspberry Pi / NAS )
Skill level: Advanced
Organization: The Ark Church
Requires Rock: 17.0
{# strip images & classes from the HTML but otherwise leave structure #}
Hey Rock community! 👋
If you're using Rock's Cloud Print Proxy for check-in label printing and your server is cloud-hosted, you know the challenge: the official Rock Cloud Print app is Windows-only. That's fine if you have a Windows machine on your network, but it's overkill if you just want something small, always-on, and low-maintenance.
We've been running a community-maintained Docker port at our church and wanted to share it in case it helps anyone else.
What it does
Rock Cloud Print is a lightweight proxy that sits between your Rock server and local network printers. Rock sends print jobs over a WebSocket, and the proxy forwards them as raw TCP data (ZPL, etc.) to the printer on port 9100.
Rock Server ──WebSocket──▶ This container ──TCP:9100──▶ Local Zebra/TSC Printer
The official Windows app handles this perfectly — this Docker version does the exact same thing, we repackaged it to run headlessly on any Linux box. We run it on Raspberry Pi's 4/5 that we already had(a few of them). It will also work on most NAS systems who support containers.
What's different from the original
|
Original |
This version |
| Windows Service |
Docker container (Linux, ARM64/AMD64) |
| WPF desktop app |
Browser-based web UI on port 8080 |
| Named pipe IPC |
REST API |
| EventLog |
`docker compose logs` / in-app log panel |
| Windows installer |
`docker compose up --build` |
The core WebSocket/TCP proxy logic is untouched — we only replaced the Windows-specific shell around it.
Requirements
- Linux server / Raspberry Pi / NAS with Docker Support **on the same network as your printers**
- Docker and the Compose plugin
- Rock v17+ with a Cloud Print Proxy device record
No desktop Docker Support Mac or Windows
Web UI
The browser UI lives at port 8080. It has three tabs:
Dashboard — connection status (green/amber/grey dot), uptime, labels printed counter
Logs — live service log stream, color-coded by level, auto-scrolling
Settings — Rock server URL, Proxy ID, Proxy Name, and an optional PIN for web UI protection
There's also a
Restart button in the header that gracefully restarts the container (Docker's `restart: unless-stopped` policy brings it right back).
Where to find it
Docker Hub:
https://hub.docker.com/r/asdfinit/rock-cloudprintGit Hub:
https://github.com/TheArkChurch/rock-cloud-print-dockerWould love to hear if anyone else has a setup like this or has any idea for improvements(I have a few ideas). Happy to answer questions in the repo.
— Jonathan / The Ark Church
Screenshots
- /GetImage.ashx?guid=b300cf9c-3fa1-4901-91d4-80a3ca906cec
- /GetImage.ashx?guid=268f6d9e-20e0-4289-9928-056e134fa9d8
- /GetImage.ashx?guid=74dc3b50-e642-4c82-8ae9-11da663268fd