• 很难遇到的一个不错的打印机项目,毕竟cups单用的话太丑了,配合web端完美正解。
  • 有需要可以自部署。

Docker部署Cups-Web网页打印机
Docker部署Cups-Web网页打印机

  • 项目地址:hanxi/cups-web

    功能特点:

    核心功能

  • 远程打印:随时随地通过网页上传文件进行打印
  • 多格式支持:

    • PDF 文档
    • 图片文件(JPG、PNG、GIF)
    • Office 文档(docx、xlsx、pptx 等)自动转换为 PDF(基于 LibreOffice)
    • 文本文件(txt)自动转换为 PDF

    用户管理

  • 多用户系统:支持管理员和普通用户两种角色
  • 打印记录:完整的打印历史记录

    管理后台

  • 用户管理:创建、编辑、删除用户账号
  • 打印记录查询:按用户、时间范围查询打印记录
  • 系统设置:配置数据保留天数等

    安全特性

  • Session 认证:安全的会话管理机制
  • CSRF 保护:防止跨站请求伪造攻击
  • 密码加密:使用 bcrypt 加密存储用户密码

    部署优势

  • Docker 一键部署:使用 Docker Compose 快速启动
  • 数据持久化:数据库和上传文件独立存储
  • 易于维护:简洁的配置和管理界面

Docker部署:

services:
  cups:
    image: docker.1ms.run/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: docker.1ms.run/hanxi/cups-web:latest
    user: root
    environment:
      - SESSION_HASH_KEY=${SESSION_HASH_KEY}
      - SESSION_BLOCK_KEY=${SESSION_BLOCK_KEY}
      - SESSION_SECURE=${SESSION_SECURE}
      - CUPS_HOST=cups:631
    volumes:
      - ./.data:/data
      - ./.uploads:/uploads
    ports:
      - "1180:8080"
    depends_on:
      - cups
    restart: unless-stopped

环境配置

  • CUPS 管理员账号(用于管理打印机)
    CUPSADMIN=admin
    CUPSPASSWORD=your_cups_password
  • 如果使用 HTTPS,设置为 true
    SESSION_SECURE=false

必要配置

- SESSION_HASH_KEY=your_hash_key_here
- SESSION_BLOCK_KEY=your_block_key_here
- 这里需要生成安全的密钥,可以发给AI让帮忙生成,这里必须生成密钥,否者web服务无法登录:
- 生成 SESSION_HASH_KEY
openssl rand -base64 32 | tr -d '\n'
- 生成 SESSION_BLOCK_KEY
openssl rand -base64 32 | tr -d '\n'
文章目录