EDGECHAT_ADMIN_PASSWORD='请替换为强密码' ./docker-start.sh这个脚本会自动:
- ✅ 构建并启动 Docker 容器
- ✅ 初始化数据库表
- ✅ 使用与 GitHub Actions 相同的 PBKDF2 规则创建管理员账户
- ✅ 显示访问信息
启动后访问:http://localhost:8788
- 用户名:读取
EDGECHAT_ADMIN_USERNAME,未设置时使用admin - 密码:必须通过
EDGECHAT_ADMIN_PASSWORD显式传入 - 显示名称:读取
EDGECHAT_ADMIN_DISPLAY_NAME,未设置时使用Administrator
脚本不会把密码写入仓库或固定在启动文件中。重复运行会复用已有管理员,不会覆盖现有密码。
docker compose up -d --builddocker compose exec edgechat wrangler d1 execute cfchat-db --local --file=./worker/schema.sqlcfchat-db is the retained legacy D1 database name. Keep using it unless you are doing a planned data migration.
docker compose exec \
-e EDGECHAT_ADMIN_USERNAME=admin \
-e EDGECHAT_ADMIN_PASSWORD='请替换为强密码' \
-e EDGECHAT_ADMIN_DISPLAY_NAME=Administrator \
edgechat node .github/scripts/generate-admin-bootstrap-sql.mjs
docker compose exec edgechat wrangler d1 execute cfchat-db --local --file=.tmp/edgechat-admin-upsert.sql# 查看容器状态
docker compose ps
# 查看日志
docker compose logs -f
# 重启服务
docker compose restart
# 停止服务
docker compose down
# 完全清理(包括数据)
docker compose down -v原因:数据库未初始化
解决:运行 ./docker-start.sh 或手动执行步骤 2 和 3
解决:修改 docker-compose.yml 中的端口映射
ports:
- "8788:8787" # 改为其他端口,如 "9000:8787"解决:查看日志找出原因
docker compose logs --tail=50Docker 仅用于本地开发和测试。
生产环境请部署到 Cloudflare Workers:
# 配置 wrangler.toml
# 然后部署
npm run deploy- 本地开发使用 SQLite(D1 本地模式)
- 数据存储在
.wrangler/state/目录 - 停止容器不会丢失数据
- 使用
docker compose down -v会清除所有数据