跳到正文

Getting started

快速上手

本页介绍从安装 GENNAI 到发布第一个媒体网站的流程。本页以版本 0.2.0 为前提。

所需环境

GENNAI 的制作环境运行在 Docker 上。请在您的电脑上准备以下内容。

  • Docker(Docker Desktop 或 Docker Engine)
  • Docker Compose v2(docker compose 命令)
  • Git

启动后,管理后台(Laravel 12)、前端(Next.js 14)、数据库(MySQL)的容器会随之运行。公开网站是静态文件,因此无需为发布准备 PHP 或数据库服务器。

安装

获取仓库并运行安装程序。

终端
git clone <仓库 URL> my-media
cd my-media
./install.sh

安装程序会准备配置文件,并构建、启动 Docker 容器。首次运行时创建镜像需要几分钟。完成后,终端会显示安装向导的 URL(…/setup)。

如果端口与其他服务冲突,可以通过选项修改。

指定端口进行安装的示例
./install.sh --site-id my-media --cms-port 48080 --frontend-port 43000 --db-port 43306
运行 ./install.sh --help 可查看所有可用选项。

安装向导

在浏览器中打开显示的 URL,即会开始 8 个步骤的向导。请按照页面提示操作。

  1. 1

    网站基本信息

    登记网站名称、公开 URL 等构成网站基础的信息。

  2. 2

    管理员

    创建用于登录管理后台的管理员账号。

  3. 3

    运营者信息与公开规则

    设置运营者信息,以及公开禁用词等规则。

  4. 4

    主题与品牌

    选择主题,并设置 Logo 和品牌色。

  5. 5

    数据统计(GA4、GTM、Search Console)

    设置访问分析与搜索表现的数据统计。

  6. 6

    导流 CTA

    设置引导读者前往的导流目标,以及按钮文案。

  7. 7

    插件

    选择想使用的插件并启用。

  8. 8

    确认与完成

    确认设置内容,完成安装。

撰写并发布文章

向导完成后,即可在管理后台创建文章。发布流程如下。

  1. 在管理后台创建、编辑文章和部件
  2. 执行构建,将整个网站导出为静态 HTML(Next.js 的静态导出)
  3. 构建的最后会对所有页面进行自动检查(禁用词、404 页面、内部链接)
  4. 将通过检查的 HTML 部署到 S3 + CloudFront 等静态托管服务
如果自动检查发现违规,构建会在该时刻停止,违规内容不会被发布。检查规则(禁用词等)可在管理后台的 GUI 中编辑。

插件基础

插件由 Laravel 侧(管理后台、API)和 Next.js 侧(公开网站)两部分构成。可以在管理后台启用或停用,停用的插件不会包含在网站中。

目录结构
laravel/plugins/<id>/          # Laravel 侧(必需)
frontend/src/plugins/<id>/     # Next.js 侧(可选)

可以通过命令生成模板。

生成插件模板
docker compose exec laravel php artisan plugin:make my-feature --frontend

加上 --frontend 会同时生成 Next.js 侧的模板。使用 --name="显示名称" 可指定在管理后台中显示的名称。

主题基础

主题是将与外观相关的文件汇集到一个目录中。可以在管理后台切换。

主题结构
frontend/themes/my-theme/
├── theme.json      # 主题名称、版本、要替换的部件
├── tokens.css      # 颜色、间距、字体等设计令牌
├── overrides.css   # 可选:组件的 CSS 覆盖
└── components/     # 可选:替换页眉、页脚等部件

最快的方式是复制默认主题的 tokens.css 并修改其中的值。另外,是否显示广告标识(PR 标注)及其文字可在管理后台的网站设置中选择,外观可以通过主题更改。

与 AI 智能体协作

文章、部件、任务、Wiki 都可以通过 HTTP API(MCP)操作。把在管理后台签发的令牌交给 AI 智能体,智能体就能创建和更新文章、整理任务。

发布前的自动检查同样适用于通过 API 进行的修改,因此很容易与由人进行最终确认的运营方式相结合。

想咨询导入或迁移的各位

从环境搭建到运营方式,欢迎随时与我们联系。

咨询导入