From 2e1a6391792e55cadbd7727923d3b055f1a5b26d Mon Sep 17 00:00:00 2001 From: Certificate System Date: Wed, 24 Jun 2026 14:21:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0Dockerfile=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=9B=BD=E5=86=85=E9=95=9C=E5=83=8F=E6=BA=90=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0PDF=5FCLEANUP=5FDAYS=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=AD=A3=E5=BC=8F=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 1 + backend/Dockerfile | 19 +++++-- deploy/production-config.md | 98 +++++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+), 4 deletions(-) create mode 100644 deploy/production-config.md diff --git a/.env.example b/.env.example index 9e78afa..ec389c9 100644 --- a/.env.example +++ b/.env.example @@ -4,6 +4,7 @@ SECRET_KEY=change-me PUBLIC_BASE_URL=http://localhost:8080 CERTIFICATE_NO_SECRET=change-me PDF_CACHE_DAYS=30 +PDF_CLEANUP_DAYS=5 DATA_ROOT=/data/certificate-system CORS_ORIGINS=http://localhost:5173,http://localhost:8080 diff --git a/backend/Dockerfile b/backend/Dockerfile index d8d9fb2..a457aba 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -5,13 +5,24 @@ ENV PYTHONUNBUFFERED=1 WORKDIR /app -RUN apt-get update \ - && apt-get install -y --no-install-recommends curl default-mysql-client fonts-noto-cjk \ +RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + curl \ + default-mysql-client \ + fonts-noto-cjk \ + fonts-unifont \ + libfontconfig1 \ + libnss3 \ + libxss1 \ + libasound2 \ + libatk-bridge2.0-0 \ + libgtk-3-0 \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . -RUN pip install --no-cache-dir -r requirements.txt \ - && python -m playwright install --with-deps chromium +RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ \ + && python -m playwright install chromium COPY app ./app diff --git a/deploy/production-config.md b/deploy/production-config.md new file mode 100644 index 0000000..13d66c1 --- /dev/null +++ b/deploy/production-config.md @@ -0,0 +1,98 @@ +# 正式环境配置文档 + +## 服务器信息 + +- 服务器IP:139.224.165.62 +- 操作系统:Alibaba Cloud Linux +- 配置:2核4G 50G + +## 域名和证书 + +- 域名:cert.huiyushuyuan.cn +- SSL证书:Let's Encrypt(宝塔面板自动申请) +- 证书有效期:90天(自动续期) + +## 系统配置 + +### 管理员账号 + +- 用户名:admin +- 密码:Admin@2026 + +### 安全密钥 + +- SECRET_KEY:c79e1bd5d983f4109b4772a1c3078d5d131a0ee3de2227e4c2ffaacf85bbb13e +- CERTIFICATE_NO_SECRET:6c82471bcf54e76ec896af91a3f33bde20d42ebe81e792c0128a99088c50445d + +### 数据库配置 + +- 数据库类型:MySQL 8.4(Docker容器) +- 数据库名:certificate_system +- 数据库用户:certificate +- 数据库密码:certificate +- root密码:root-password + +### 阿里云短信配置 + +- AccessKey ID:LTAI5t7QosqTxVDC9WQr1XKC +- AccessKey Secret:bKw8z5jd4dSHd4iw4y1Uek4eqEjTkS +- 短信签名:深圳市慧愈文化科技 +- 短信模板Code:SMS_335380348 + +## 访问地址 + +- 后台管理:https://cert.huiyushuyuan.cn/admin/login +- 公开查询:https://cert.huiyushuyuan.cn/query + +## 部署目录 + +- 项目代码:/opt/certificate-system +- 数据目录:/data/certificate-system +- Nginx配置:/www/server/panel/vhost/nginx/cert.huiyushuyuan.cn.conf + +## 常用命令 + +```bash +# 进入项目目录 +cd /opt/certificate-system + +# 查看服务状态 +docker compose ps + +# 查看日志 +docker compose logs -f backend +docker compose logs -f frontend + +# 重启服务 +docker compose restart + +# 停止服务 +docker compose down + +# 启动服务 +docker compose up -d + +# 更新代码并重新部署 +git pull +docker compose up -d --build + +# 进入后端容器 +docker compose exec backend bash + +# 查看数据库 +docker compose exec mysql mysql -ucertificate -pcertificate certificate_system +``` + +## 备份说明 + +- 数据库备份:通过后台管理界面「备份管理」功能 +- 备份文件位置:/data/certificate-system/db-backups +- 自动清理:PDF文件超过5天未访问自动删除 + +## 注意事项 + +1. 请妥善保管本文档中的密钥和密码 +2. 建议定期更换管理员密码 +3. 阿里云AccessKey建议使用RAM用户,不要使用主账号 +4. Let's Encrypt证书90天自动续期,无需手动操作 +5. 数据库密码建议修改为更强的密码