Documentation
Surf
The box, from QZ.
- ✅ 2.3 | ✅ 2.2.6+ ...
QZ Surf is a stand-alone print-server hardware for QZ Tray that simplifies the configuration for secure communication to a print-server instance.
Portable, sandboxed devices (such as iPads, iPhones, Android Tablets, Android Phones and Chromebooks) historically have strict requirements for secure-communication to QZ Tray, but this has been historically challenging to support in the field.
- QZ Surf has a small-footprint, yet runs a full-blown instance of QZ Tray, offering 100% feature-parity with the Desktop version.
- To connect to a QZ Surf box, please ask your app team to add a new
connectoption. Your box has a name, such asorcaprinted on the top of the box. You'll need this name to connect to it. - For most devices, QZ Surf is plug-and-play. If your device doesn't show up, scan the QR code on the top of the QZ Surf box and click the "Add CUPS Queue" link.
The interface is a familiar configuration screen with the details that matter most such as uptime, resource usage, network information, printer info, USB devices and QZ Tray status.
Wi-Fi setup is as simple as selecting your network and typing your password.
QZ Surf is powered by a Raspberry Pi 5 8GB model running Raspbian (Debian) OS on ARM64 architecture.
| Hardware | Details/Specification |
|---|---|
| Processor | Broadcom BCM2712 2.4GHz quad-core 64-bit Arm Cortex-A76 |
| RAM | 8GB LPDDR4X-4267 SDRAM |
| Storage | MicroSD card slot |
| Wireless | Dual-band 802.11ac Wi-Fi® & Bluetooth 5.0 / BLE |
| USB Ports | 2 × USB 3.0 (5Gbps simultaneous) & 2 × USB 2.0 |
| Ethernet | Gigabit Ethernet |
| Power | 5V/5A DC via USB-C (Power Delivery supported) |
💡 NOTE: Hardware specifications are subject to change
QZ Surf works by binding an address (e.g orca.qz.surf) to your local network and receiving a certificate for secure communications. This requires:
- Connectivity to a certificate authority server (e.g. LetsEncrypt)
- Connectivity to a DNS registrars (e.g. Cloudflare)
Integration is as simple as providing your users a name field to connect to.
![]()
💡 Note: If you already have a QZ Surf box, you can test your connection right now by visiting https://demo.qz.io and clicking the down arrow on the "Connect" button.
Are you the app developer? That's simple too!
// Each QZ Surf box has its own unique name - qz.websocket.connect(); + qz.websocket.connect({ host: "orca" }); // qz-tray@2.2.6+💡 Note: If you're a developer, the code is as simple as adding the
hostparameter to yourqz.websocket.connect()call.
QZ Surf is available in limited quantities during a beta rollout in the second quarter of 2026. Please inquire at sales@qz.io for pricing and availability.
Compatibility with websites will depend on cooperation from your website maintainer.