mirror of
https://github.com/MengMengCode/MailCat.git
synced 2026-05-22 11:58:58 +08:00
安全修复: - 随机 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 零变更,旧版本无感升级
44 lines
1.2 KiB
YAML
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 |