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-cloudprint
Git Hub: https://github.com/TheArkChurch/rock-cloud-print-docker

Would 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