本清单汇总从零部署所需填写/确认的内容与执行步骤,可逐项打勾。
详细说明见 DEPLOYMENT.md。脚本中对应位置均有 # TODO: 注释,
可用以下命令快速定位:
grep -rn 'TODO' deploy/scripts deploy/config.env.example
图例:[必填] 不填无法运行/有安全风险 | [确认] 有默认值需核对 | [可选] 用到才填
| # | 项目 | 位置 | 说明 |
|---|---|---|---|
| ☐ | PostgreSQL 业务口令 | init_databases.sh:PG_FWH_PASSWORD + config.env:POSTGRES_DSN |
fwh_toolbox 角色密码,两处必须完全一致 |
| ☐ | MinIO 管理员账户 | install_deps.sh / provision_minio.sh 的 MINIO_ROOT_USER/PASSWORD |
勿用默认 minioadmin/minioadmin |
| ☐ | MinIO 业务密钥(后端) | config.env:MINIO_ACCESS_KEY / MINIO_SECRET_KEY + provision_minio.sh:MINIO_ACCESS_KEY/SECRET_KEY |
账号 fwh-toolbox,写 fwh-toolbox* 桶;两处须一致 |
| ☐ | MinIO AI 密钥(MCP) | config.mcp.env:MINIO_ACCESS_KEY / MINIO_SECRET_KEY + provision_minio.sh:MINIO_AI_ACCESS_KEY/SECRET_KEY |
账号 fwh-toolbox-ai,写 fwh-toolbox-ai* 桶;默认账号=密码 |
| ☐ | postgres 超级用户密码 | install_pgadmin.sh:POSTGRES_PASSWORD |
供 pgAdmin4 登录连接;勿用默认占位 |
| ☐ | pgAdmin4 登录密码 | install_pgadmin.sh:PGADMIN_PASSWORD |
Web 登录口令(邮箱 liang_jlyx@163.com) |
| ☐ | FWH 生产账号 | config.env:FWH_USER / FWH_PASSWORD |
密码填明文,后端自动 MD5 |
| ☐ | Casdoor 数据库口令 | install_casdoor.sh:CASDOOR_PG_PASSWORD |
勿用默认 casdoor |
| # | 项目 | 位置 | 说明 |
|---|---|---|---|
| ☐ | FWH 生产 MQTT 证书 | server/cert/pro/(CA/crt/key 三件) |
路径与 config.env:FWH_MQTT_CA/CERT/KEY 对应 |
| ☐ | Casdoor 应用证书 | Casdoor 后台获取的 X.509 PEM | 后端用于校验 JWT 签名(见 A4) |
| # | 项目 | 位置 | 说明 |
|---|---|---|---|
| ☐ | 对外域名 | Caddyfile 的 你的域名 |
反向代理入口 |
| ☐ | Caddy DNS 凭据 | install_caddy.sh:LIBDNS_SPACESHIP_APIKEY/APISECRET |
spaceship DNS-01 签证书;写入 systemd 服务,勿提交仓库 |
| ☐ | Casdoor origin/回调 | install_casdoor.sh:CASDOOR_ORIGIN + Casdoor 应用 Redirect URLs |
如 https://<域名>/casdoor;回调 https://<域名>/fwh-toolbox/casdoor/callback |
| ☐ | 远端只读 MySQL | config.env:MYSQL_DSN |
用到站点信息查询功能时必填;替换 USER/PASSWORD/HOST/PORT |
| # | 项目 | 说明 |
|---|---|---|
| ☐ | 创建组织 organization_franklinwh_toolbox |
名称必须与前后端硬编码一致 |
| ☐ | 创建应用 app-franklinwh-toolbox |
记录 Client ID / Client Secret / 证书 |
| ☐ | 同步到源码(仅新建应用时) | service/utils/casdoor/casdoor.go(endpoint/clientId/clientSecret/certificate)与 src/utils/casdoor/casdoor.ts(ClientId),改后需重新构建前后端 |
⚠️ 沿用现有 Casdoor 应用可跳过 A4 的源码修改;新建应用则必须改源码后重编译。
| # | 项目 | 默认 | 位置 |
|---|---|---|---|
| ☐ | 部署根目录 | /var/www/fwh-toolbox |
setup.sh / deploy.sh:DEPLOY_ROOT |
| ☐ | 后端运行用户 | 当前用户 | RUN_USER / config.env:KIRO_RUN_AS_USER |
| ☐ | 后端端口 | 8301 |
config.env:APP_PORT |
| ☐ | Asynqmon 端口 | 8302 |
config.env:ASYNQMON_PORT |
| ☐ | MinIO 端口 | 9198/9199 |
install_deps.sh |
| ☐ | Casdoor 端口 | 8010 |
install_casdoor.sh:CASDOOR_PORT |
| ☐ | 运行环境 | dev |
config.env:APP_ENV(生产改 pro) |
| ☐ | Mongo 库名 | FwhToolboxDb |
config.env:MONGO_DSN(开发 FwhToolboxDbDev) |
| ☐ | MinIO bucket | fwh-toolbox |
config.env:MINIO_BUCKET_NAME(与建桶一致) |
| ☐ | MinIO AI bucket | fwh-toolbox-ai-file |
provision_minio.sh:MINIO_AI_BUCKET / filestore.AIFileBucket |
| ☐ | pgAdmin4 端口 | 5480(仅绑 127.0.0.1) |
install_pgadmin.sh:PGADMIN_PORT/PGADMIN_BIND |
| ☐ | Kiro 用户/HOME | jerry-remote |
config.env:KIRO_RUN_AS_USER/KIRO_HOME |
| # | 项目 | 位置 | 说明 |
|---|---|---|---|
| ☐ | FWH 测试环境 | config.env:FWH_TEST_* + server/cert/test/ |
连测试服才填 |
| ☐ | Plane 集成 | config.env:PLANE_* |
启用反馈/任务同步才填 |
推荐直接用交互式向导
deploy/scripts/setup.sh,它会逐项提示 A 节内容。 以下为等价的分步操作,可据此逐项打勾。
sudo 权限DETECT_ONLY=1 deploy/scripts/install_deps.sh 检测现状systemctl status postgresql mongod redis-server minio dockerCASDOOR_PG_PASSWORD='强口令' deploy/scripts/install_casdoor.shlisten_addresses + pg_hba.conf,见 DEPLOYMENT.md 10.2)/casdoor(见 B7)PG_FWH_PASSWORD='强口令' deploy/scripts/init_databases.sh(PG 建表 + Mongo/Redis 检查,不含 MinIO)psql -d fwh_toolbox_db -c "\dt alarm_snapshot.*"MINIO_ROOT_USER=... MINIO_ROOT_PASSWORD=... MINIO_SECRET_KEY='强口令' MINIO_AI_SECRET_KEY='强口令' deploy/scripts/provision_minio.shmc ls fwhlocal/(桶 fwh-toolbox、fwh-toolbox-ai-file)、mc admin user list fwhlocal(用户 fwh-toolbox、fwh-toolbox-ai)POSTGRES_PASSWORD='强口令' PGADMIN_PASSWORD='强口令' deploy/scripts/install_pgadmin.shpg_hba.conf 允许 Docker 网段以 scram-sha-256 连接后 systemctl reload postgresqlhttp://127.0.0.1:5480,用 liang_jlyx@163.com 登录,新建 Server 连本机 PG(用户 postgres)5480 暴露公网(如需远程,置于反向代理 + 访问控制之后)cp deploy/config.env.example service/config.envcp deploy/config.mcp.env.example service/config.mcp.env(MCP 用 fwh-toolbox-ai 账号)config.env(搜索文件内 TODO)service/cert/pro/(及 test/)deploy/scripts/deploy.sh backend(构建二进制 + systemd 服务)deploy/scripts/deploy.sh frontend(构建 dist + 同步静态目录)deploy/scripts/deploy.sh allCADDY_DOMAIN='你的域名' LIBDNS_SPACESHIP_APIKEY='xxx' LIBDNS_SPACESHIP_APISECRET='xxx' deploy/scripts/install_caddy.shdeploy/bin/caddy 含 spaceship 插件(脚本会校验),拷至 /usr/bin/caddy/fwh-toolbox/*→静态 8300、/fwh-toolbox/api/*→localhost:8301、/casdoor/*→localhost:8010caddy validate --config /etc/caddy/Caddyfile + systemctl reload caddy/lib/systemd/system/caddy.service 权限 600(含明文 DNS token)curl http://127.0.0.1:8301/swagger/index.htmlcurl http://127.0.0.1:8302/asynqmon/curl http://127.0.0.1:8010/curl -k https://<域名>/fwh-toolbox/journalctl -u fwh-toolbox-server -fconfig.env 权限收紧,且未提交到 Git(含密钥/证书)5480)未暴露公网;postgres 超级用户密码仅用于受控管理fwh-toolbox、MCP 用 fwh-toolbox-ai,未用 root 跑业务pg_dump)、MongoDB(mongodump)、MinIO 数据目录