本章面向有发布需求的创作者:搭建个人网站、使用图形化编辑器构建页面,或通过脚本 / Agent 调用论坛接口。
一、站点托管:搭建个人网站
申请为自助方式——在设置中心 → 自定义 → 站点托管中开启「启用站点」并保存,站点即创建完成,无需审批。
- 站点地址:
https://<用户名>.forum18.site(其他用户可见的博客) - 管理地址:
https://manage.<用户名>.forum18.site(本人的控制台与编辑器;其他用户看不到内容) - 地址无需自行设计:即为论坛用户名。用户名为中文时,地址即为中文域名 ——
张三→张三.forum18.site、李喆→李喆.forum18.site(浏览器地址栏中直接显示中文;底层为 IDN,由浏览器自动转换为xn--…)。俄文、日文、韩文、带重音符号的名称同样原样保留。 - 名称过长时才会变化:编成域名超过 63 字节(大约十几个汉字)或含有域名无法容纳的符号时,自动退回拼音(
张三→zhangsan)。 - 每个账号最多三个独立博客:地址固定为
<用户名>.forum18.site、2nd.<用户名>.forum18.site、3rd.<用户名>.forum18.site,不能另填名称。设置页先选中博客,再编辑其标题、页面、发布版本和域名绑定;管理地址分别在公开域名前加manage.。 - 存量自定义地址暂保留兼容,避免目录和已有委派失效;新建博客使用固定命名。
- 每个博客分配独立私有 IP;发布静态内容由一个共享博客 nginx 反代到各自静态容器,不为每个博客启动 nginx。Gra 工程工作区和开发容器仍按账号管理,不等同于三个独立开发环境。
- 同一页面还可以设置站点标题、站点描述,以及启用开关(关闭后外网无法访问,已发布的内容保留)。
控制台
地址是 https://manage.<用户名>.forum18.site/author/(旧的 https://<用户名>.forum18.site/author/ 仍然能用,会自动落到同一个控制台)。两种登录方式:论坛用户名 + 密码,或令牌登录。
侧栏功能:
| 功能 | 说明 |
|---|---|
| 进入 Gra 在线编辑器 | 跳到图形化编辑器(见下一节) |
| 上传站点包 | 整站打包成 ZIP(根目录必须包含 index.html,最大 50MB)上传,平台解压到独立容器并切换发布版本(激活失败时恢复旧版本) |
| 单文件发布 | 直接发一个 Markdown 或 HTML 文件 |
| 页面管理 | 增删辅助页面 |
| 版本与回滚 | 每次发布生成一个不可变版本,保留最近 5 个,可一键回滚 |
| 设置与令牌 | 站点设置与 API 令牌 |
限制(超出后会直接报错):
| 项 | 上限 |
|---|---|
| ZIP 包 | 50MB(只收 .zip) |
| 解压后总大小 | 200MB |
| 文件数量 | 5000 个 |
| 单个文件 | 5MB |
| 目录深度 | 10 层 |
| 站点存储 | 新站默认 1GB |
绑定自有域名
站点地址 <用户名>.forum18.site 之外,还可以把自己的域名绑上来 —— 两个地址打开的是同一个站点(同一份已发布版本),不是另建一个。
- 在域名 DNS 服务商处添加一条 CNAME 记录,指向
cname.forum18.cn(例如主机记录blog.example.com)。
用 Cloudflare 的必须把这条记录设为「仅 DNS」(灰云) —— 开启代理(小黄云)后证书与回源都会失败。
- 回到 设置中心 → 自定义 → 站点托管 → 私有域名,填入域名并「添加私有域名」。
- 解析生效后点「验证」。验证通过即接入,证书自动签发(约一两分钟),完成后即可用
https://你的域名访问。
| 项 | 说明 |
|---|---|
| 数量 | 每个站点最多 3 个 |
| 唯一性 | 全网唯一:与平台域名、其他用户已绑定的域名(含父子域)冲突时会被拒绝 |
| 证书 | 平台自动签发并续期(Let's Encrypt,HTTP-01),无需自己申请 |
| 控制台与 API | 仍然只在 manage.<用户名>.forum18.site 上,私有域名只承载博客内容 |
| 解绑 | 列表里点「解除绑定」立即生效,旧链接随之失效 |
用任意域名打开博客(管理 Host)
除上面那条 CNAME 路线,还可以把任意域名挂到自己的博客上:在设置 → 我的网站 → 站点设置的「管理 Host」里填入域名(例如 blog.example.com),然后二选一:
- 在你的 DNS 服务商处把它的 A 记录指向
114.55.173.34(IPv6 同理,指到平台入口地址); - 或者加一条 CNAME,指向
cname.forum18.cn。
只要满足其一,并在列表里绑定成功,这个域名就会打开你的博客 —— 和 <用户名>.forum18.site 是同一个站点、同一份已发布版本,不需要改动站点地址。
| 项 | 说明 |
|---|---|
| 数量 | 每个站点最多 5 个 |
| 复核 | 平台每 15 分钟检查一次解析;不再指向平台时该域名先显示暂停页 |
| 暂停页文案 | 「无法访问该网站。如果你是网站管理员,请检查域名解析与绑定设置」 |
| 恢复 | 解析重新指回平台后自动恢复,无需重新绑定 |
| 控制面 | /author /api /gra 仍然只在 manage.<用户名>.forum18.site,自有域名只承载博客内容 |
自定义博客域管理(NS 委派,申请费 50 币)
默认三个博客使用平台解析。申请后,所选博客域名交给用户的 DNS 服务商管理,可以自由设置解析目标,平台不再检查网页验证令牌或要求解析指回平台,也不会因连续检查失败自动收回。
- 在设置页选中博客,申请域名管理,首次扣 50 币。旧申请不补费;重复申请、撤回后重新启用不再扣费。余额不足时不会创建申请。
- 在支持子域 zone 的 DNS 服务商(例如 ClouDNS)创建对应域名的 zone。提示“Cloudflare不允许三级域”指普通账户不能将三级域作为独立 zone 接入,并非不能添加三级 DNS 记录。
- 填写服务商提供的 2–4 个不同 NS 主机名,例如
ns71.cloudns.net、ns72.cloudns.com,并提交。 - 平台在父区写入全部 NS 成功后才显示生效。缺少 DNS 编辑凭据或接口失败时显示具体原因,可重试;只在 ClouDNS 后台添加记录,并不代表父区已经完成委派。
注意:
- 申请
username.forum18.site后,其所有后代(包括www、2nd、3rd和manage)由这份 DNS zone 负责。需要继续使用平台博客或管理面时,须保留对应域名的平台解析。 - NS 委派与 HTTPS 证书是两件事。平台通配符
*.forum18.site不覆盖第二、第三博客及更深域名,必须补签对应精确域名;用户 DNS 接管后,证书验证需要配合用户的 DNS 配置。 www.username.forum18.site CNAME baidu.com只是 DNS 别名,不是网页跳转,不能让百度自动接受你的 Host 或提供该域名的 HTTPS 证书。要跳转网页,需要目标服务配置 HTTP 重定向。- 仅用户主动撤回时删除委派 NS;失败会保留申请以便重试。撤回不退款;恢复平台解析还需等待 DNS 缓存更新。
站点 API
管理域名 manage.<用户名>.forum18.site 下提供一套 API,使用令牌鉴权(创建时仅在界面上展示一次);将域名替换为 <用户名>.forum18.site 同样可用,旧 CI 脚本无需修改。
| 方法 | 路径 | 作用 | 权限 |
|---|---|---|---|
| GET | /health |
健康检查 | 免鉴权 |
| GET | /api/status |
版本、节点、存储、日志 | config |
| POST | /api/deploy |
上传 ZIP 发布(每分钟 10 次) | deploy |
| GET/POST/DELETE | /api/pages |
辅助页面增删查 | pages |
| GET/POST | /api/releases |
版本列表 / 回滚 | deploy |
| GET/POST/DELETE | /api/tokens |
令牌增删查 | config |
| GET | /api/logs |
部署日志 | config |
鉴权头支持三种写法:Authorization: Bearer <令牌>、X-API-Token: <令牌>、?token=<令牌>。默认全局限速 120 次/分钟。使用 CI 自动发布的示例:
bash curl -H "Authorization: Bearer <令牌>" -X POST --data-binary @site.zip \ https://manage.<用户名>.forum18.site/api/deploy
每个用户最多可创建 10 个站点令牌,可以设置过期时间与 IP 白名单。
二、Gra 图形化编辑器
Gra 是一个使用中文积木搭建网页的编辑器:左侧拖动积木,右侧实时预览,完成后可一键导出为真实的 HTML / CSS / JavaScript / PHP / SQL 项目。
- 1122 块积木,覆盖网页结构、样式、交互、后端、数据库,另外还有 Astro 组件、Markdown 文章、Svelte 组件、TypeScript 四套模版积木。
- 三种入口:设置中心 → 自定义 → 打开在线编辑器;站点控制台侧栏;或直接访问
https://www.forum18.cn/gra/(需要先登录论坛)。站点自身的编辑器位于https://manage.<用户名>.forum18.site/gra/。
在线模式 vs 本地模式:
| 在线 | 本地 | |
|---|---|---|
| 存放位置 | 服务器上的个人容器 | 本地电脑 |
| 预览 | 服务器转发过来(保存后刷新,不是逐键热更新) | 本机即时 |
| 发布 | 一键发布到 *.forum18.site |
本地完成后上传 |
在线模式的硬性限制:
- 每个账号的工程总容量默认 2GB(含依赖和构建产物),超出后需要清理旧项目;
- 容器有只读根、2GB 内存上限、隔离的进程与网络,每人一个容器互不影响;
- 闲置 20 分钟后服务器会停止该 dev server(容器仍保留),返回后重新「启动」即可;
- 上传限制:单次 40MB、单个文件 5MB、最多 2000 个文件;
- 构建可能需要数分钟,发布请耐心等待;
- 必须走 HTTPS:大陆明文 HTTP 会被运营商拦截。
编辑器自身的详细教程见论坛仓库中的《Gra 客户使用手册》,本节仅提供入口与边界说明。
三、论坛 API(api.forum18.cn)
面向脚本和 AI Agent 的接口:复用主站全部权限与规则。完整的端点清单、参数、范围与示例见专门的一章:API 网关。用浏览器打开 api.forum18.cn/ 会 301 跳到那一页——网关本身只服务 API 调用。
起步三步:
- 在设置中心 → 账号 → API 令牌创建令牌:选择类型(只读 / 写入)并勾选范围,32 位密钥只在创建成功后展示一次,库中仅存哈希。
- 请求头带上
Authorization: Bearer <密钥>或X-API-Token: <密钥>;POST 也可以把令牌放进请求体的token字段。跨域可用(由网关发送 CORS 头),但没有凭据共享——令牌即全部身份。 - 需要机器可读描述时拉
https://api.forum18.cn/openapi.json(OpenAPI 3.1,无需令牌),它与说明书、路由由同一份端点登记表生成。
四、看板(dash.forum18.cn)
uCDN 已停用,普通用户设置页不再展示入口;存量数据保留。历史看板登录后才能进入,节点相关操作仅站长可以执行。其中可以查看项目概览、节点、公网穿透、uCDN Worker 与域名绑定;uCDN Worker 只能部署静态文件(单文件≤2MiB、站点总量≤20MiB),且仅对已审核的 uCDNc+ 绑定域名开放。
常见问题与注意事项
- 登录态不通用:在
www.forum18.cn登录,并不意味着站点控制台(/author)或创作者面板已登录——它们各自维护独立会话。 - 跨域:只有论坛 API 网关发送 CORS 头,站点子域的
/api不发送,因此不能从其他域名直接 fetch。 - 上传体积:ZIP 超过 50MB 直接返回 413;解压后超过 200MB、文件超过 5000 个同样会失败。
- 构建 / 发布需要等待:安装依赖与构建共用节点锁,最长可能等待 15 分钟;面板侧限制每 10 分钟最多发布 6 次。
- 站点被停用时发布会返回 409「Site disabled」——请先返回设置中开启「启用站点」。
- 站点地址是唯一入口:新博客地址按用户名与槽位固定生成,不能自定义名称;DNS 管理申请只改变解析权,不改平台内部博客标识。