案例 GEOFlow 3.0.0 部署笔记:开发与生产两套 Docker Compose 流程

2026-10-01 21:03:08

GEOFlow 3.0.0 部署笔记:开发与生产两套 Docker Compose 流程

GEOFlow 是开源的内容工程与多站点分发平台,Laravel 应用,带 AI 质检、托管站点、浏览器辅助发布和签名更新。仓库在 GitHub,GPL-3.0,当前源码版本 3.0.0。官网:https://www.geoflow.me 。

组件与版本

  • GEOFlow Core 3.0.0:Laravel 应用,包含管理后台、前台、API、队列与分发系统
  • GEOFlow CLI 0.2.0:仓库内置 bin/geoflow,支持 macOS/Linux/WSL
  • Chrome 运营助手 0.1.0:位于 browser-extension/ 与 dist/browser-extension/
  • GEOFlow Updater:独立组件,通过本地 Unix socket 负责更新、完整备份、环境验收和恢复点回滚;高风险操作需要管理员密码 + 6 位验证器授权码
  • 目标站点 Agent:按渠道生成预配置 PHP 包,含首页、详情页、静态资源、Schema、sitemap、llms.txt

分发渠道有四条:托管站点、GEOFlow Agent、WordPress REST、通用 HTTP API。

运行要求

  • PHP 8.3+,Docker 默认镜像可用 8.4
  • 数据库 PostgreSQL,推荐 pgvector 镜像或兼容扩展
  • Redis,用于队列、缓存、运行状态
  • Node.js 构建前端资源,CI 使用 Node 22
  • 容器部署用 Docker Compose;生产 Web 层用 Nginx 与 php-fpm

如果 PostgreSQL 没有 pgvector 扩展,需要在部署前确认镜像或扩展可用,否则应用侧的向量相关功能会受限。

开发环境部署

git clone https://github.com/yaojingang/GEOFlow.git
cd GEOFlow
cp .env.example .env
docker compose build
docker compose up -d --remove-orphans

cp 一步先把示例环境变量落成 .env,build 构建镜像,最后一条 up -d --remove-orphans 启动服务并清理已经不在 Compose 文件里的旧容器,避免残留容器占用端口或网络。

生产部署

生产使用 docker-compose.prod.yml,由 Nginx 与 php-fpm 提供 Web 服务。部署前要准备 .env.prod、数据库备份策略、HTTPS、持久化目录与进程管理。

cp .env.prod.example .env.prod
docker compose --env-file .env.prod -f docker-compose.prod.yml build
docker compose --env-file .env.prod -f docker-compose.prod.yml up -d postgres redis
docker compose --env-file .env.prod -f docker-compose.prod.yml up -d init
docker compose --env-file .env.prod -f docker-compose.prod.yml up -d --remove-orphans app web queue ai-quality-queue ai-quality-backfill-queue ai-optimization-queue knowledge-queue scheduler reverb

这里分了四步:构建镜像,先只启动 postgres 与 redis 让存储层就绪,再单独执行 init,最后一次性拉起 app、web、各类队列、scheduler 与 reverb。顺序上不要跳过中间两步直接起全量服务,否则初始化阶段可能因为数据库或缓存没准备好而失败。

生产环境需要显式设置管理员密码、HTTPS、Cookie 安全策略和反向代理配置,这几项不要沿用示例值。持久化目录用于保存数据库与运行状态数据,建议与数据库备份策略一起规划,而不是上线后再补。

已有部署升级

升级已有部署要执行停机排空与安全迁移:先停止写入并排空队列,再做数据库迁移,git pull 之后重建容器。不要只拉代码不重建镜像,PHP 依赖与前端资源都在镜像里。GEOFlow Updater 负责更新、完整备份、环境验收和恢复点回滚这几件事,高风险操作需要管理员密码加 6 位验证器授权码;在动生产库之前,先确认恢复点可用。

项目信息

  • 仓库:https://github.com/yaojingang/GEOFlow
  • 官网:https://www.geoflow.me
复制全文 生成海报 Laravel PHP Docker 自托管 内容平台

推荐文章

程序员茄子在线接单