Files
MailCat/docker-compose.yml
MengMengCode 3b33c2702e feat: 安全加固 + GHCR CI/CD + 文档更新
安全修复:
- 随机 Session Token (crypto/rand),替代可预测的固定 token
- 登录速率限制 (5次/15分钟锁定),防暴力破解
- HMAC 恒定时间密码比较,防时序攻击
- 邮件 HTML 使用 sandbox iframe 渲染,防 XSS
- 移除 Health 端点凭据泄露 (debug_info)
- API Token 脱敏显示,移除明文返回
- 移除 URL 参数传 Token,仅支持 Authorization Header
- CORS 收紧为同源策略
- 添加安全响应头 (X-Frame-Options/X-Content-Type-Options 等)
- 请求体大小限制 10MB
- 移除内存中明文密码存储
- Docker 运行时镜像固定版本 alpine:3.19

CI/CD:
- 添加 GitHub Actions 自动构建并推送 Docker 镜像到 ghcr.io
- 支持 amd64/arm64 多平台构建

其他:
- 修复 Quoted-Printable 邮件解码 (换行符规范化)
- 修复点击邮件行打开详情 (PrimeVue row-click 参数)
- 前端登录密码 SHA-256 哈希后传输
- docker-compose.yml 镜像改为 ghcr.io
- README 完全重写:GHCR 部署文档、安全特性、升级指南
- 数据库 schema 零变更,旧版本无感升级
2026-03-02 09:34:55 +08:00

44 lines
1.2 KiB
YAML

version: '3.8'
services:
mailcat:
image: ghcr.io/mengmengcode/mailcat:latest
container_name: mailcat
restart: unless-stopped
ports:
- "8080:8080"
environment:
# API认证令牌 - 用于Cloudflare Worker调用API
- MAILCAT_API_AUTH_TOKEN=your_auth_token
# 管理员密码 - 用于Web管理界面登录
- MAILCAT_ADMIN_PASSWORD=your_admin_password
# 数据库路径 - 确保使用正确的路径
- MAILCAT_DATABASE_PATH=/app/data/emails.db
# 运行模式
- GIN_MODE=release
# 时区设置
- TZ=Asia/Shanghai
volumes:
# 数据持久化 - SQLite数据库文件
- mailcat_data:/app/data
# 配置文件挂载(可选,如果需要自定义配置)
# - ./config:/app/config:ro
networks:
- mailcat_network
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
labels:
- "com.docker.compose.project=mailcat"
- "com.docker.compose.service=mailcat"
networks:
mailcat_network:
driver: bridge
volumes:
mailcat_data:
driver: local