
今天在 github 发现一个很有意思的网络打印机项目。这个项目在经典的 cups 工具上增加了一层网页管理面板,不仅操作起来更方便,而且还可以把自己的打印机变成一个赚钱小能手。
有意思的是,当我研究完这个项目后,才发现作者是 xiaomusic 作者。果然大佬就是大佬,vibe 的切口都那么给力。
先来看看效果。CUPS 打印调用 CUPS 的核心功能来对接打印机。
同时还提供了三个核心功能:1.PDF编辑;2.打印机管理;3.用户管理与收费。

1️⃣ 用户体系,收费体系。
CUPS 打印这个项目支持我们把家里的打印机变成赚钱小机器。
分配不同的用户以后,可以设置每日、每月、每年的用量,可以设置打印的费用。
用量额度可以定期自动增长,也可以手动增长。如果你是打印店老板,还可以用 AI 在上面再套一层自动付款充值的壳,发到小区群里,有打印需求的直接扫描你的网站二维码自动下单。


2️⃣ 打印机管理可视化。
从打印机选择到文件选择,支持单双面打印、彩色单色打印。

不同用户在打印的时候,当前文件需要打印多少页,需要使用多少额度,一目了然。

3️⃣ 该项目内置了一个小型的 PDF 编辑器,无论你上传什么内容,都支持一键转换为 PDF。
然后通过 PDF 编辑器,可以修订、增加字、涂改,打印机预览和实时编辑能力大幅增加。

一、 极空间部署 CUPS 打印
首先将我们的打印机连接到极空间的 USB 口,确保打印机可以正常开机。
接着打开 docker 应用,选择 Compose 并新增项目。
把下方的 yaml 代码复制进去。
services:
cups:
image: hanxi/cups:latest
user: root
environment:
- CUPSADMIN=cherry # cups 账号
- CUPSPASSWORD=cherry@666 # cups 账号
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:
- SESSION_HASH_KEY=dk9/ucks3WtEX9HLuq9uYA6aQIJL7EK9oq7eR1HKJXQ=
- SESSION_BLOCK_KEY=dk9/ucks3WtEX9HLuq9uYA6aQIJL7EK9oq7eR1HKJXQ=
- SESSION_SECURE=false
- CUPS_HOST=cups:631
volumes:
- ./.data:/data
- ./.uploads:/uploads
ports:
- "1180:8080" # 管理账号和打印的实际页面
depends_on:
- cups
restart: unless-stopped
二、cups 添加打印机
首先打开 cups 页面 ( 631 端口),点击最上面的 Administration 进入管理员面板。
输入在 compose 里配置的账号密码,点击 Add Printer/Find New Printers 来寻找 USB 打印机设备。

这里会展示你连接到 USB 的打印机,点击 Add This Printer。

确保名字、位置,点击下一步。

最关键的一步,我们需要在 Make 里选择对应的打印机品牌,点击 Continue 选择型号以添加驱动。
如果列表里没有你的打印机,那么需要通过 CUPS 手动安装驱动来实现支持。不过主流的打印机,CUPS 里应该都是支持的。

配置好打印机以后,选择 CUPS 打印机管理页面(1180端口),在这里输入默认账号密码 admin/admin 登录。

然后依次点击右上角管理-编辑,来修改默认的 admin 密码!

总结
cups 是一个短小精悍的 docker 项目,它不复杂,甚至可以说是简单。
但是它解决了两个痛点,一个是 cups 原始界面粗糙、英文、不友好的交互,让打印这件事变得特别简单。第二个是实现了打印机的空闲时间利用,无论是小区服务、办公室统计、个人/店面额外服务,都是一个很不错的 idea,方便大家,也收益自己
