CUPS Web 是一个基于 CUPS 的开源网页打印管理工具,可以让你通过浏览器上传文件、选择打印机,并把任务提交到局域网里的打印队列。
它适合解决一个很常见的小麻烦:家里或办公室有一台还能正常使用的老 USB 打印机,但手机、平板、Mac、Windows 想一起用时,总要折腾驱动、共享设置和网络发现。要把 USB 打印机变网络打印机,CUPS Web 提供的是一种更偏自托管的做法。
你可以用 NAS、树莓派或闲置小主机接住打印机,在局域网里跑一个网页打印入口。以后其他设备只要能打开浏览器,就可以把 PDF、照片、Word 或 OFD 文件传上去打印。
它不是让打印机凭空变智能,底层仍然依赖 CUPS 和打印机驱动。更准确地说,CUPS Web 是把驱动、格式转换和打印队列集中到一台服务端设备上,让其他终端不用反复配置打印机。
把 USB 打印机变网络打印机,它和普通共享比好在哪?
Linux 系统自带的 CUPS 本身也有网页端,但那是给网络管理员配置驱动和查日志用的,极其硬核,你不可能让不懂电脑的同事去面对那种后台。
CUPS Web 真正有用的地方在于,它做了一个面向“最终使用者”的业务界面,并且非常懂国内的办公痛点。对手机、平板和普通电脑来说,只要能打开浏览器就能提交打印任务;底层的驱动兼容问题,则集中交给了运行 CUPS 的那台服务端设备去处理。
更实用的是它内置了格式转换:除了常规的 PDF 和图片(含 HEIC),它内置了 LibreOffice 来解析 Word 文档,甚至支持国内特有的 OFD 格式转换。这意味着你微信收到个文件,直接用手机浏览器打开内网地址传上去就能打,全程不需要碰电脑。
除了格式转换,它还支持多图片合并成 PDF、打印前预览和页数估算。对手机端临时打印照片、截图、票据这类场景来说,这些小功能比单纯“能打印”更实用。
这类工具最容易卡在打印机驱动上
很多人看到 Docker Compose 就以为这事很简单:复制配置、启动容器、打开网页,打印机就能用了。CUPS Web 的 Web 页面确实不难跑起来,真正容易卡住的地方,是系统能不能先认出你那台打印机。
也就是说,你最好有一台能长期运行的设备,比如 NAS、树莓派、软路由或闲置小主机。官方镜像预装了一批常见品牌和通用驱动库,覆盖 HP、Epson、Canon、Brother 等常见型号;如果你的打印机比较老或者型号冷门,可能还要进 CUPS 后台手动添加 PPD 文件。
用 Docker 部署 CUPS Web 的基本流程
如果你有 NAS,官方推荐的 Docker Compose 方式是最省事的,一条命令能把 CUPS 服务和 Web 界面同时拉起来。配置文件如下:
services:
cups:
image: hanxi/cups:latest
user: root
environment:
- CUPSADMIN=${CUPSADMIN}
- CUPSPASSWORD=${CUPSPASSWORD}
ports:
- "631:631"
devices:
- /dev/bus/usb:/dev/bus/usb
volumes:
- ./.etc:/etc/cups
restart: unless-stopped
web:
image: hanxi/cups-web:latest
user: root
environment:
- CUPS_HOST=cups:631
volumes:
- ./.data:/data
- ./.uploads:/uploads
ports:
- "1180:8080"
depends_on:
- cups
restart: unless-stopped
在同目录新建 .env 文件填入 CUPSADMIN=admin 和对应的密码,然后执行 docker-compose up -d 即可。
几个容易漏掉的部署细节
服务跑起来只是第一步,后面还有几处很容易漏。如果这些地方没处理好,网页能打开,但打印机不一定能正常出现或提交任务。
避坑指南:
1. CUPS 后台要开启共享:添加打印机后,记得把状态设为 Shared(共享),否则 Web 端可能发现不了打印机。
2. 默认账号要马上改:Web 端默认账号是 admin/admin,首次登录后建议立刻修改。
3. OFD 转换看部署方式:Docker 镜像内通常包含相关环境;如果用二进制部署,OFD 转换可能需要单独配置 Java 17。
4. 上传文件会占磁盘:原始文件、转换后的 PDF 和打印记录会留在服务端,建议定期清理。
打印入口最好只放在内网
这类工具看起来只是个打印面板,但它处理的往往不是无关紧要的文件。合同、发票、证件扫描件、公司文档,很多都是通过打印入口传上去的。
所以不要为了图方便,直接把 1180 端口映射出去。官方容器默认提供的是 HTTP 访问,不是 HTTPS。如果确实需要在外面访问,建议走 VPN、Tailscale、ZeroTier 这类内网访问方案,至少也要放在你自己可控的反向代理和认证后面。
哪些人适合用 CUPS Web?
如果你是一个三五人的小工作室,或者家里有一台吃灰的老打印机和一台 NAS,花点时间用它做个轻量打印中心,日常体验会顺手不少。它能确实为你省下每次打文件都要开特定电脑的麻烦。
但如果你连 Docker 是什么都不知道,或者期待它能像企业级 PaperCut 刷卡打印系统那样严密合规,那直接买一台自带 Wi-Fi 和微信小程序的成品打印机,显然更省时间。
它不是什么无敌的效率神器,只是把“局域网共享打印”这件麻烦事,变得顺手了一些。对于有 NAS、树莓派或闲置小主机的用户来说,这个方案已经有足够明确的使用价值。
CUPS Web 项目主页与部署文档
免责声明:本文基于 GitHub 公开仓库与文档说明整理,更偏向场景选型判断与部署排障指南。项目具体支持的打印机型号、文件转换兼容性请以底层硬件和开发者最新说明为准。自托管项目在企业部署时需自行评估局域网网络安全及长期维护成本,强烈建议勿将未加密的私有打印服务暴露于公网。GitHub 公开仓库具体商用和二次分发边界请以项目 MIT 许可证为准。