I have an old but reliable Samsung laser printer that works really well but was lacking wifi support. So I plugged it to my home server (an old Lenovo laptop) running Proxmox and added a print server.
I first tried to put it in a container, but CUPS would not see the usb port, probably because of USB device access permissions within the LXC container. I then tried to install it on a VM, which proved quite easy.
In Proxmox
Create a new VM (debian for instance) for the print server, it does not need a lot of CPU and ram. I used an existing OpenMediaVault VM.
Open the new virtual machine settings, then Hardware > Add > Usb device:

Select the usb device corresponding to your printer:

Install CUPS on the print server
You need to install CUPS on the print server VM. Open the VM console
sudo apt update
sudo apt install cups cups-client
# Enable CUPS web interface
sudo cupsctl --remote-any
sudo systemctl restart cups
Install the drivers
Download and install the printer’s drivers on the VM
Set Up the Printer
Access CUPS web interface:
- Find the VM’s IP:
ip addr show - Open web browser to:
http://<ip>:631 - Go to Administration → Add Printer
- Log in as
rootwith VM password
Connect from Other Devices:
- Windows: Add network printer using the VM’s IP address
- macOS: Add printer via System Preferences → Printers & Scanners
- Linux: Use CUPS web interface or
lpadmincommand
Your USB printer is now accessible over the network!