# Web、认证与后台联合运行

2026-10-04。已在短剧库项目新增可导入的 `services/application.mjs`，组合现有 Go Web/API、Better Auth 与 Payload/Next。两个项目继续使用原播放器、渠道、解码和任务能力；CF 仍是设计文档站，业务服务未发布。

## 使用入口

`createDramivioApplication(configuration)` 返回 `initialize`、`start`、`close` 和 `state`。详细配置和调用示例已写入短剧库的 `services/README.md`。

| 调用 | 行为 |
| --- | --- |
| `initialize({administrator})` | 显式执行原 platform 和 Payload 官方迁移；首次安装可创建后台账号 |
| `start()` | 启动现有三个服务，不迁移、不发布内容、不重置管理员 |
| `close()` | 停止本次服务，关闭拥有的数据库/邮件连接，保留记录；可重复调用 |
| `state()` | 返回 created、initializing、ready、starting、running、closing 或 closed |

需要已编译的原 Go 程序、可写的元数据目录、两个 PostgreSQL 数据库、各服务密钥和 SMTP。元数据目录沿用 `juku.json`、渠道、线路及剧库；Go 以该目录运行，既有相对路径也以该目录解析。线上使用公开 HTTPS origin 和现有反向代理，App 的 API 地址指向同一网站 origin。

开发模式使用官方 Next dev；生产模式先执行同配置的官方 Next build，再使用 Next start。本轮已经实际验证两种模式。初始化涉及两个数据库，失败不保证跨库回滚；修正后创建新实例并显式重试。普通启动不会执行初始化。

启动后通过 Payload 发布中英文热门标签和实际协议，配置渠道及线路，使用既有采集入口。真实 App 发布后再填写下载地址。广告、收费、通知仍关闭。

## 已运行的检查

开发模式与生产构建模式各通过下面8组联合检查。使用真实 Chrome、编译后的 Go、Better Auth、Payload SDK 和隔离 RAM PostgreSQL，未修改现有业务数据库。

1. 显式安装与官方管理员初始化；普通启动不发布协议或改规则。
2. 官方后台发布标签/协议，Go 元数据同步进入同一 core 数据库。
3. 实际首页显示10个标签、两列10张卡片；中英标签切换；邮箱 OTP 登录与爱心追剧入库。
4. 逐集位置记录入库，位置上报不伪造完成或观看奖励。
5. 关闭三个监听，普通重启保留同一身份和播放位置，不重置内容。
6. Web 端口被占用时启动失败，清理本次资源，保留原监听。
7. 并发关闭取消启动；显式迁移完成后清理连接，不留下监听。
8. 后台数据库缺失时返回失败，清理安装连接并保留已有观看记录。

新增 SDK/数据库回归4/4；后台全量85/85，Web全量165/165。此前 platform217/217、App273/273与类型检查仍为各自最近完整结果。本次未改 App 或 platform 业务逻辑，未重复计入新的全量运行。检查计数存在包含关系，不能相加当作独立验收数。

本轮修复了 Payload 连接失败时的未处理 Promise、安装连接退出、环境变量重置旧管理员的风险，以及封面下标签直接显示 `love` 的中英文问题。复核见[运行复核](dramivio-application-review.md)。

## 实测边界

邮件验证码本地捕获；12部剧为合成元数据，封面修复请求在夹具中拦截。位置由真实 API 上报，未播放真实来源视频。下图是实际 Go 网站截图，封面为占位状态。

![联合运行首页，390宽度](application-preview/home-390.png)

真实 SMTP、视频来源/签发、原生手机、完整 iOS 构建和正式部署仍待完成。生产构建模式通过不表示业务已上线。首次注册回调失败后的邀请码恢复缺口已修复，历史失败日志仍保留；见[邮箱邀请恢复](dramivio-registration-recovery-development.md)。

[可导入的本机检查函数](dramivio-application-check.mjs) · [当前总进度](dramivio-development-status.md) · [全部验证范围](dramivio-consumer-validation.json)

当前联合启动支持web.trustedProxyCIDRs，默认不继承外部环境信任；当前后台全量95/95、实际启动8/8通过。接入、真实双代理联调及边界见[可信代理](dramivio-trusted-proxy-development.md)，以上开发/生产浏览器截图属于此前阶段。

联合启动现支持semanticSearch配置，显式初始化pgvector并传给自有Payload进程；普通启动不迁移，省略配置不继承环境模型。接入及真实模型验证见[剧情检索](dramivio-semantic-search-development.md)。
