-
-
Notifications
You must be signed in to change notification settings - Fork 1
Virtual Printer
Printbuddy's Virtual Printer feature lets a supported slicer send jobs to Printbuddy as if it were a Bambu Lab printer. Printbuddy can then archive the file, hold it for review, add it to the queue, or proxy it to a real printer.
Use a virtual printer when you want slicer uploads to go through Printbuddy instead of sending directly to the physical printer.
Typical workflows:
- Archive — store the uploaded file immediately.
- Review — keep the upload pending until you approve it in Printbuddy.
- Queue — archive the upload and add it to the Printbuddy queue.
- Proxy — relay the upload to a real printer while Printbuddy remains in the path.
- Printbuddy must be reachable from the slicer machine on your LAN.
- The Docker host or native host should have a stable IP address or DNS name.
- Host firewall rules must allow the virtual-printer ports.
- Bambu Studio / OrcaSlicer must trust the Virtual Printer CA certificate shown in Printbuddy.
- Docker users should prefer
network_mode: hoston Linux. Docker Desktop users must publish the listed ports manually.
The compose file in the Printbuddy repository documents the required port block. Keep these open between the slicer and the Printbuddy host:
-
3000/tcpand3002/tcp— virtual-printer bind/detect services -
8883/tcp— MQTT over TLS -
990/tcp— FTPS control -
6000/tcp— file transfer tunnel -
322/tcp— RTSP camera proxy where applicable -
2024-2026/tcp— A1/P1S proprietary compatibility ports -
50000-50100/tcp— FTP passive data ports
For Docker bridge mode, also set VIRTUAL_PRINTER_PASV_ADDRESS to the Docker host IP so passive FTP advertises an address the slicer can actually reach.
On Linux, the default compose file uses host networking:
services:
printbuddy:
image: docker.io/vmhomelabde/printbuddy:latest
network_mode: host
cap_add:
- NET_BIND_SERVICEFor macOS or Windows Docker Desktop, comment out network_mode: host, uncomment the ports: block from docker-compose.yml, and set VIRTUAL_PRINTER_PASV_ADDRESS=<docker-host-ip>.
- Open Settings → Virtual Printer.
- Set an Access Code. Use the same code later in the slicer.
- Select the virtual-printer mode: Archive, Review, Queue, or Proxy.
- If using Proxy mode, select the target printer.
- Download the Virtual Printer CA certificate from Printbuddy.
- Import/trust that CA on the machine running the slicer.
- Enable the virtual printer.
- Add a new Bambu Lab compatible printer connection in Bambu Studio or OrcaSlicer.
- Use the Printbuddy host IP or DNS name as the printer address.
- Use the access code configured in Printbuddy.
- Send a small test print/upload.
- Confirm the job appears in Printbuddy according to the selected mode.
If Printbuddy can access the host Tailscale socket, the Tailscale toggle can expose the virtual printer through the host's Tailscale/MagicDNS address and request a trusted certificate for that name.
This does not remove the need for slicer connectivity. The slicer still has to reach the advertised host/ports.
- Slicer cannot find the virtual printer: verify host firewall rules, Docker networking, and that the slicer can reach the Printbuddy host IP.
-
Upload starts but file transfer fails: check
990/tcpand50000-50100/tcp; in bridge mode verifyVIRTUAL_PRINTER_PASV_ADDRESS. - Certificate/trust errors: import the CA certificate from Printbuddy on the slicer machine and restart the slicer.
-
Privileged port errors: keep
cap_add: NET_BIND_SERVICEfor Docker, or run the native service with the required bind capability. - Proxy mode does not relay: confirm the selected target printer is reachable from the Printbuddy host.