部署说明

从环境准备到正式上线,按步骤完成郑好内容工场的独立部署。

一、环境要求

组件要求
Python3.8 及以上(3.10+ 推荐)
MySQL5.7 及以上 / 8.0 推荐
对象存储可选。支持本机 local / AWS S3 / 阿里云 OSS / 火山引擎 TOS / 腾讯云 COS
网络可访问 AI 接口与对象存储域名

二、安装依赖

pip install -r requirements.txt

三、初始化数据库

产品根目录随包提供 database.sql(24 张业务表 + 默认管理员 + 默认场景/来源/标签初始化数据)。两种方式任选其一:

方式一:命令行导入(推荐)

mysql -h<主机> -P<端口> -u<用户名> -p < database.sql

方式二:MySQL 客户端手动执行

打开 MySQL 客户端,执行 database.sql 中的全部语句;脚本会自动创建数据库并完成建表与初始化。

✓ database.sql 中已包含 CREATE DATABASE IF NOT EXISTS zk_content,可先建库再建表。

数据底表(可选,供外部系统调用)

如需为外部系统提供结构化内容底表,再执行随包脚本 database_sicrk.sql 创建 SICrk 数据库。

四、配置 config.ini

编辑产品根目录 config.ini,按实际环境填写:

[database]
host = 127.0.0.1        ; MySQL 主机
port = 3306             ; MySQL 端口
user = root             ; MySQL 用户名
password = your_password ; MySQL 密码
name = zk_content       ; 数据库名(与 database.sql 建库名一致)
charset = utf8mb4

[storage]
type = local            ; local/s3/oss/tos/cos
local_dir = images
bucket =
endpoint =
access_key =
secret_key =
cdn_domain =

[ai]
base_url = https://api.example.com/v1   ; AI 接口(OpenAI 兼容)
api_key = your_api_key
text_model = your-text-model
vision_model = your-vision-model
image_model = your-image-model
image_daily_limit = 10

[system]
name = 郑好内容工场       ; 系统名称
logo =                   ; 系统 Logo(URL,留空用默认)
content_id_prefix = AUTO-ZK
配置支持环境变量覆盖(格式 ZK_节名_键名,如 ZK_DATABASE_HOST),便于容器化与运维注入;未配置项自动使用默认值。

五、启动系统

python run.py 8000        # 端口可自定义,默认 8000

启动成功后访问 http://127.0.0.1:8000/。

六、登录系统

项目值
用户名admin
密码admin123
⚠ 首次登录后建议在「用户」页面修改默认密码。

七、生产部署(Linux 示例)

7.1 上传代码并准备环境

cd /opt/content-center
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

7.2 初始化数据库

mysql -h<主机> -u<用户> -p < database.sql

7.3 修改 config.ini

将 [database] 指向实际 MySQL 库,[storage] 配置对象存储,[ai] 配置 AI 接口,[system] 配置系统名称与 Logo。

7.4 启动服务

nohup python run.py 8000 >> server.log 2>&1 &

7.5 配置 Nginx 反向代理

server {
    listen 80;
    server_name your.domain.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 600s;
    }
    client_max_body_size 50m;
}

7.6 配置 HTTPS(可选)

certbot --nginx -d your.domain.com

八、systemd 守护进程(可选)

创建 /etc/systemd/system/content-center.service:

[Unit]
Description=Content Center System
After=network.target

[Service]
WorkingDirectory=/opt/content-center
ExecStart=/opt/content-center/venv/bin/python run.py 8000
Restart=always
User=www

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now content-center

九、目录结构

内容采集系统/
├── config.ini            # 唯一外部配置入口(数据库/存储/AI/系统)
├── database.sql          # 建库脚本(24表 + 初始数据)
├── database_sicrk.sql    # SICrk 内容底表建库脚本
├── requirements.txt      # Python 依赖
├── run.py                # 启动入口
├── screens/              # 教程截图
├── app/                  # 后端应用(main/config/pipeline/collector/...)
│   └── static/           # 前端页面(landing/操作说明/部署说明/管理后台)
└── data/                 # 本地数据目录

十、常见问题