
【免费下载链接】waoowaoo首家工业级全流程 AI 影视生产平台。Industry-first professional AI Agent platform for controllable film video production. From shorts to live-action with Hollywood-standard workflows.项目地址https://gitcode.com/gh_mirrors/wa/waoowaoo点击查看免费下载waoowaoo 是一个以AI 创意工作台为核心形态的图片与视频生成平台你可以在右侧的 Assistant 中把一个想法逐步发展为创作 Brief 并持续产出素材在画布上整理、精修和归档生成结果。本文基于仓库根目录的 README.md 与 docs/INSTALL.md完整讲解其核心功能、技术栈、自托管快速启动、环境变量配置、HTTPS 证书信任、Temporal Worker 蓝绿发布与备份升级流程并结合仓库中的 Compose 文件与部署脚本给出源码级佐证。产品形态与核心功能README 将产品定义为An AI creative workspace for images and videos其核心工作方式围绕三条主线展开右侧 Assistant 主导创作在一个持续进行的项目里与右侧的 AI 助手共同打磨 Brief并逐项生成图片与视频素材画布Canvas管理资产上传参考素材、整理文件并在画布上直接检视生成的图片与视频模型感知的参数生成按所选模型的实际能力生成内容——包括模型感知的长宽比aspect ratio、时长、分辨率以及参考角色reference roles。支持的生成模式与模型模式说明首帧模式first-frame以单张首帧图片驱动视频生成首/尾帧模式first/last-frame同时提供首帧与尾帧约束生成参考图模式reference-image以参考图约束内容风格或主体具体可用性取决于所选模型。当前预览版暴露的是OpenRouter配置可用模型包括 GPT Image 2、Nano Banana 系列、Seedance 系列以及 MiniMax H3 / H3 Max。README 明确指出了两个使用边界H3 Max 在本应用中只接受单张首帧不接受首/尾帧对音乐music与配音/旁白voiceover控制不在本次预览范围内。模型可用性与计费取决于供应商provider请求通过用户自己的账户付费。应用 UI 目前支持中文与英文日文、韩文版本是 README 的翻译文本。值得补充的是从仓库的 AI 能力组织方式看生成能力并非散落在各处而是由 src/lib/ai-registry 下的注册表、能力目录与定价目录统一管理如 capabilities-catalog.ts、video-capabilities.ts模型感知正是这些契约在运行期对具体模型能力进行匹配的结果相关能力契约也有对应的 conformance 测试例如 tests/contracts/canvas-generation-capabilities.conformance.test.ts。精修Refine能力对于已生成的图片你可以把已有结果作为起点精修出一个新版本同时保留原始结果——这意味着每一次迭代都有版本可追溯不会因为调整而丢失前序产物。技术栈一览README 明确给出的技术栈如下与仓库实际依赖基本一一对应可对照 package.json层技术选型仓库证据Web 框架Next.js 16 React 19package.json 中next16.3.4、react19.1.2数据库MySQL Prisma ORMdocker-compose.yml 的mysql:8.0prisma/schema.prisma持久化执行Temporaldocker-compose.yml 的temporalio/server:1.31.2与temporal-worker-blue/green传输与缓存Redisdocker-compose.yml 的redis:7-alpine媒体存储私有 MinIOS3 兼容docker-compose.self-hosted.yml 的minio与minio-init样式Tailwind CSS v4package.json 中tailwindcssv4、tailwindcss/postcss认证NextAuth.jspackage.json 中next-auth与next-auth/prisma-adapter这套组合的架构意图是Next.js 负责 Web 与 API 层Prisma 管理 MySQL 中的应用数据Temporal 承载需要长时间执行与可靠恢复的工作流如 AI 生成任务的异步生命周期Redis 承担缓存与传输MinIO 为图片/视频等媒体提供私有对象存储所有基础设施均可在自托管场景下通过 Docker Compose 一键拉起。快速开始两条安装路径路径一交给本地编码助手自动安装官方推荐README 给出的最快捷方式是把一段安装指令提示词prompt复制给具备终端访问能力的本地编码助手由它检查机器环境、安装依赖并为你配置 Docker。该提示词的核心约束包括先阅读仓库 README、docs/INSTALL.md 与所选 GitHub Release使用已发布的预览 Release 及其预构建 Docker 镜像将应用与 Codex runtime双双固定到该 Release 的不可变镜像 digestrepositorysha256:…检查操作系统、CPU 架构、Docker Engine/Desktop、Compose v2、Git 与flock缺失依赖时使用系统工具安装并征得同意使用全新安装目录保留所有已有容器、文件与数据生成唯一的本地密钥并配置.env不得打印或上传密钥遵循既有的 Worker bootstrap 流程不要另创第二条启动路径使用同一 Release 的docker/caddy/Caddyfile与默认 Compose HTTPS 入口SELF_HOSTED_HOSTlocalhost、SELF_HOSTED_HTTPS_PORT1443APP_HOST_PORT13000仅做 HTTP 重定向只导出root.crtCaddy 的本地根证书解释其信任影响并在浏览器所在宿主机上导入前取得用户明确同意Windows 与 WSL 的信任体系相互独立绝不导出root.key也不绕过 TLS 校验验证https://localhost:1443无证书告警且浏览器实际使用h2包括多标签页下的事件流SSE 标签页并发 ≠ AI 任务并发上限验证容器健康、应用可打开后告知本地 URL引导用户在应用内填写 OpenRouter API key不要在聊天中索取未经用户批准不得启动付费 AI 生成。该路径下Caddy 由 Release 的 Compose 配置自动启动完成本地证书信任后浏览器打开https://localhost:144313000端口仅把 HTTP 重定向到 HTTPS源码开发模式npm run dev仍运行在http://localhost:3001。路径二手动安装见 INSTALL.md推荐的分发形式是预构建 Docker 镜像宿主机无需安装 Node.js、MySQL、Redis、Temporal 或 FFmpeg应用依赖全部跑在容器内。完整的手动安装说明位于 docs/INSTALL.md其要点如下。机器检查与前置工具Docker Engine 或 Docker Desktop运行 Linux 容器Docker Compose2.24.4 或更新含 v5且支持!resetmerge 标签Git 与 POSIX shellflock由既有 Worker rollout 脚本使用Linux 通常通过util-linux提供macOS 需安装兼容包Windows 用户应在 WSL2 Docker Desktop 集成下运行Docker socket 访问权限允许应用为其各项目创建专属 Assistant 容器因此必须使用可信的本地安装。目录与文件约束安装目录必须包含.env.example、两个 Compose 文件、docker/caddy/Caddyfile与scripts/temporal/worker-rollout.sh不要把main分支的文件与旧 Release 混用。启动命令序列完成.env配置后从安装目录依次执行对应 docs/INSTALL.md 第 3 节# 校验配置不打印已解析配置避免泄露密钥 docker compose config --quiet # 拉取所选的两个不可变镜像引用应用 Codex runtime # docker pull application-repositorysha256:digest # docker pull runtime-repositorysha256:digest sh scripts/temporal/worker-rollout.sh bootstrap blue docker compose up -d sh scripts/temporal/worker-rollout.sh status docker compose ps -aCompose 会初始化 MySQL、Redis、Temporal 及其 namespace、应用 schema 与私有 MinIO 存储并以 Caddy 作为浏览器入口rollout 脚本会在 Web 启动前建立第一个Current Worker Version。注意不要在数据库可用前手动执行 schema push不要用临时 Worker 命令替代 rollout 入口。环境变量与 .env 配置详解对于新安装复制.env.example为.env仅限全新安装逐项阅读并用密码学随机密钥替换占位凭据且永远不要把.env打印、上传或放入支持日志。以下表格整理自 .env.example 与 docs/INSTALL.md 的核心必填项设置项取值要求COMPOSE_FILEdocker-compose.yml:docker-compose.self-hosted.ymlCOMPOSE_PATH_SEPARATOR:在 POSIX shell 中运行含 WSL2DEPLOYMENT_EDITIONself-hostedAPP_IMAGE应用镜像repositorysha256:…来自本 ReleaseTEMPORAL_WORKER_BLUE_IMAGE/TEMPORAL_WORKER_GREEN_IMAGE首次安装时为同一个应用 digestCODEX_RUNTIME_IMAGE来自本 Release 的独立 Codex runtimerepositorysha256:…TEMPORAL_WORKER_BLUE_BUILD_ID唯一 Release 身份如 Release 标签 应用 digest 前缀不能是localWorker 副本数首次安装 blue1、green0SELF_HOSTED_HOSTlocalhostSELF_HOSTED_HTTPS_PORT1443浏览器访问https://localhost:1443APP_HOST_PORT13000仅 HTTP 重定向不是直接应用端点CODEX_RUNTIME_HOST_ROOT绝对持久化宿主机目录需创建并保证容器 UID 1000 可写DOCKER_SOCKET_PATH本机可访问的 Docker socket必须生成的密钥包括MYSQL_PASSWORD、MYSQL_ROOT_PASSWORD、REDIS_PASSWORD、TEMPORAL_MYSQL_PASSWORD、MINIO_ROOT_PASSWORD、MINIO_APP_SECRET_KEY、NEXTAUTH_SECRET、CRON_SECRET、API_ENCRYPTION_KEY。加密密钥API_ENCRYPTION_KEY必须在升级中保留否则已保存的 API 凭据将无法解密。使用十六进制密钥可避免 URL 与 shell 转义问题。数据库凭据需同时配置DATABASE_URL宿主机侧 MySQL 地址默认端口 13306与COMPOSE_DATABASE_URL容器侧mysql:3306凭据含特殊字符时需 URL 编码。基础设施与 Web 的 bind 地址保持127.0.0.1对应INFRA_BIND_ADDRESS/APP_BIND_ADDRESS。.env.example中还包含了几个值得注意的可调项Codex runtime 资源限制CODEX_RUNTIME_CPU_LIMIT2、CODEX_RUNTIME_MEMORY_BYTES21474836482 GiB、CODEX_RUNTIME_PIDS_LIMIT256、CODEX_RUNTIME_IDLE_TIMEOUT_MS900000Provider 异步执行预算PROVIDER_GENERATION_TIMEOUT_MS1200000生成阶段超时、PROVIDER_QUEUE_TIMEOUT_MS1800000供应商队列排队预算默认 30 分钟超预算作废旧请求并重试、PROVIDER_POLL_INTERVAL_MS3000默认工作流并发DEFAULT_WORKFLOW_CONCURRENCY_ANALYSIS5、DEFAULT_WORKFLOW_CONCURRENCY_IMAGE20、DEFAULT_WORKFLOW_CONCURRENCY_VIDEO10数据库中用户的显式配置优先Web SearchOPENAI_API_KEY与OPENAI_WEB_SEARCH_MODEL主 Agent 与 Creative Direction Worker 共用 OpenAI 托管 Web Search搜索模型必须填裸的 OpenAI 模型 id填路由键会运行期直接失败留空使用内置默认值出站访问限制PROVIDER_OUTBOUND_PRIVATE_HOST_ALLOWLIST默认禁止 Provider 请求访问私网日志LOG_FILE_MAX_BYTES209715200200MB×LOG_FILE_MAX_GENERATIONS10日志与数据库共盘必须有界计费自托管模式固定PROVIDER_CREDENTIAL_MODEuser-key、BILLING_MODEOFF。镜像 digest 的强制校验仓库在多个层面强制不可变 digest约束。例如 docker-compose.yml 中 Temporal Worker 服务的 entrypoint 脚本会校验TEMPORAL_WORKER_IMAGE必须是*sha256:*形式、digest 恰为 64 位十六进制、且不是全零占位符scripts/temporal/worker-rollout.sh 中的require_image_digest也做了同样校验。这意味着.env.example中的全零 digest 只是让本地开发能解析 Compose 的占位符正式 Worker 无法从它启动——这正是用 Release 验证过的镜像引用而不是latest这一要求的具体落地。自托管版 Compose 覆盖Caddy、MinIO 与 HTTPS 入口自托管版通过 docker-compose.self-hosted.yml 叠加在基础 docker-compose.yml 之上主要做三件事以 Caddy 接管浏览器入口并终止 HTTPS、将应用数据存储指向私有 MinIO、关闭应用的基础 HTTP 端口ports: !reset []。Caddy 使用固定版本镜像caddy:2.11.4-alpine其站点配置来自 docker/caddy/Caddyfile{ # HTTP/2 multiplexes the applications long-lived event streams. servers { protocols h1 h2 } } https://{$SELF_HOSTED_HOST:localhost}:{$SELF_HOSTED_HTTPS_PORT:1443} { tls internal reverse_proxy app:3000 } http://{$SELF_HOSTED_HOST:localhost}:{$APP_HOST_PORT:13000} { redir https://{$SELF_HOSTED_HOST:localhost}:{$SELF_HOSTED_HTTPS_PORT:1443}{uri} 308 }这段配置直接印证了 README 的三点说明servers { protocols h1 h2 }明确启用 HTTP/2以便多路复用应用的长生命周期事件流SSEtls internal由 Caddy 自签本地 CA 证书因此安装后需要在浏览器宿主机信任该 CA 的公开根证书APP_HOST_PORT13000仅做 308 永久重定向到 HTTPS不是直接的应用端点。自托管版同时注入了自托管的存储契约S3_ENDPOINThttp://minio:9000、S3_FORCE_PATH_STYLEtrue、bucket 默认waoowaoo并覆盖了NEXTAUTH_URL由SELF_HOSTED_HOST与SELF_HOSTED_HTTPS_PORT派生与TRUSTED_PROXY_HOPS1。minio-init服务会在启动时校验 bucket 命名小写、3–63 字符、等待 MinIO 就绪、创建 bucket并为应用创建最小权限的 S3 策略与专用访问用户——这也是私有 MinIO 存储在运行期的初始化实现。本地证书信任与浏览器验证自托管安装的证书信任流程docs/INSTALL.md 第 3 节分为导出公钥根证书与在宿主机导入两步certificate_export_dir$(mktemp -d) docker compose cp caddy:/data/caddy/pki/authorities/local/root.crt $certificate_export_dir/root.crt安装助手必须先说明信任该 CA 会改变宿主机证书信任、识别该证书来源、并在导入前获得明确批准、展示证书指纹绝不导出root.key、复制整个 CA 目录、关闭 TLS 校验或用浏览器告警绕过作为安装成功。各宿主机平台的信任方式浏览器宿主批准后的信任步骤macOS将root.crt导入钥匙串Keychain Access并显式信任该证书用于 SSLLinux使用发行版 CA 安装流程Debian/Ubuntu 的update-ca-certificatesFedora 的update-ca-trustWindows导入到目标 Windows 用户的受信任的根证书颁发机构存储若使用机器级存储需管理员批准安装于 WSL2 的 Windows 浏览器在 WSL 中导出后将公钥证书导入 Windows仅信任 WSL 的 Linux 存储无法让 Windows 浏览器信任随后打开https://localhost:1443应无证书告警http://localhost:13000应保持路径重定向到该地址。在浏览器开发者工具的 Network 面板开启Protocol列并刷新验证包括事件流在内的请求使用h2——仅HTTPS 地址或命令行请求成功并不能证明浏览器协商了 HTTP/2。最后打开多个标签页验证流开启时导航与事件更新依然流畅多个 SSE 订阅只是传输连接不改变也不衡量配置的 AI 任务并发上限不要仅为填满标签页而启动付费任务。Temporal Worker 蓝绿滚动发布自托管版使用blue/green 双 slot的 Temporal Worker 滚动发布机制由 scripts/temporal/worker-rollout.sh 统一管理对应 npm scripttemporal:worker:rollout。该脚本支持四个子命令npm run temporal:worker:rollout -- status npm run temporal:worker:rollout -- bootstrap blue|green npm run temporal:worker:rollout -- promote blue|green npm run temporal:worker:rollout -- retire blue|green各命令语义摘自脚本 usage 与实现bootstrap唯一受支持的首次激活入口当 Deployment 尚无 Current Version 时启动第一个显式 profiled Worker并把它设为初始 Current Version若另一个 slot 已在运行则拒绝执行promote先证明所选 slot 不是 Current Version再仅启动该候选等待 Temporal 看到其 poller然后把其不可变 build 设为 Current Version并自动把遗留的 pinned continuous Scheduler 迁移到 AutoUpgrade从不停止上一个 slotretire拒绝 Current Version 与任何 drainage 状态非drained的版本执行前要求对应 slot 的 replicas 已设为 0status展示 blue/green 两 slot 的运行 build、Deployment 的 Current Version 以及遗留 Scheduler 迁移状态。脚本在非 status 模式下会通过flock加锁串行化部署变更并对 Worker 身份做多项防御性校验build ID 不能是local、必须只含字母数字与._-镜像必须是 64 位十六进制 digest。这从源码层印证了 README/INSTALL 中遵循既有 bootstrap 流程、不要另创启动路径的要求——docker-compose.yml 中的temporal-verify-worker-version服务也会在应用启动前强制要求 Deployment 已存在显式 Current Version。一次版本化升级的典型序列docs/INSTALL.md 第 4 节sh scripts/temporal/worker-rollout.sh promote green # 晋升成功后把 APP_IMAGE 更新为新 digest 并更新 Web docker compose up -d sh scripts/temporal/worker-rollout.sh status # 仅当旧版本报告 drained 后才在 .env 中持久化 blue replicas0 sh scripts/temporal/worker-rollout.sh retire blue后续升级在 blue/green 之间交替整个过程必须始终使用同一.env、同一 Compose 文件集与同一项目名。API 配置OpenRouter 密钥与数据边界应用启动后进入个人资料的API 配置页面添加你的 OpenRouter API key。供应商调用通过你自己的账户付费请把 API key 保存在应用内不要放进聊天记录或支持日志仓库的 scripts/security/secret-scan.mjs 也体现了对密钥泄漏的防线。数据边界方面README 明确项目数据与媒体使用本地数据库与私有 MinIO 存储提示词与参考素材会被发送给供应商以完成所请求的 AI 任务受支持的内联图片引用无需公网媒体 URL也就是说参考图可以走应用内部传输不必先暴露到公网。docker-compose.self-hosted.yml中 MinIO 的对象 API 与管理控制台都不映射宿主机端口这一设计见 .env.example 存储段注释从配置层面印证了不需要公网 IP、域名、公开 MinIO 端点或隧道唯一的外部依赖是 AI API 本身需要联网与供应商余额。备份、升级与升级前置检查升级前必须备份数据库、MinIO volume、data目录、runtime 宿主机目录与.env密钥并保留caddy_data/caddy_config两个命名 volume挂载于/data与/config删除它们可能使已信任的 CA 失效。任何 Caddy 私密状态的备份都应视为机密材料而非证书导出只恢复媒体或只恢复数据库都不是完整的恢复方案。绝不把docker compose down -v当作升级手段。升级前先阅读目标 Release 的迁移说明旧安装可能需要显式迁移不要运行db:push --accept-data-loss也不要在未审阅的情况下假设早期预览数据库可以直接升级。README 还提示由于当前处于Preview release阶段迭代很快仍存在少量 bug 与粗糙边缘建议加入社区反馈与跟进更新。从源码开发与自建镜像生产自定义构建源码同时构建Dockerfile与Dockerfile.codex-runtime推送到你控制的镜像仓库并解析出不可变 digest再喂给同一套安装流程版本化 Compose 路径不从一个本地源码目录构建 Worker slot。源码开发安装 Node.js 22 与 npm配置.env并把NEXTAUTH_URL设为http://localhost:3001然后npm ci npm run dev现有的开发启动器会先构建自己的 Docker 镜像并初始化依赖再启动应用与 Worker开发路径继续使用http://localhost:3001Release 的 Compose HTTPS 默认值不会改变npm run dev。开发环境应使用独立的开发项目与数据库不要指向版本化 Release 的 Temporal namespace.env.example 中的注释明确禁止把源码开发环境与正式 Worker slot 接入同一 namespace。源码构建更慢不是默认的最终用户安装路径。许可说明自 v0.5.0-beta.1 起本发行版采用Elastic License 2.0见 LICENSE允许个人使用、内部业务使用、修改与再分发受其条款约束但向第三方提供以托管或托管方式访问该软件大部分功能需要单独授权。更早的 Release 保留其原始许可证第三方组件保留各自许可证。这是 source-available 软件而非 OSI 批准的 open source。小结从 README.md 到 docs/INSTALL.mdwaoowaoo 的自托管链路是一条完整且可验证的路径预构建镜像 Compose 覆盖 Caddy HTTPS 入口 Temporal Worker 蓝绿发布配合严格的 digest 校验与密钥管理约束。无论是交给本地编码助手自动安装还是手动逐项配置关键动作都可以归纳为固定不可变镜像 digest、生成并保护全部密钥、通过 bootstrap 建立首个 Worker Current Version、信任本地根证书并用 h2 验证浏览器连接、最后在个人资料中填入 OpenRouter key。掌握以上流程后你可以在完全本地化的数据边界内运行一个生产可用的 AI 图片与视频创作工作台。赞分享【免费下载链接】waoowaoo首家工业级全流程 AI 影视生产平台。Industry-first professional AI Agent platform for controllable film video production. From shorts to live-action with Hollywood-standard workflows.项目地址https://gitcode.com/gh_mirrors/wa/waoowaoo点击查看免费下载相关推荐Karakeep 自托管部署指南使用 Docker Compose 快速安装、配置与升级Karakeep 自托管部署指南使用 Docker Compose 快速安装、配置与升级 本篇指南以 docs/docs/02 installation/01后端前端移动开发AI 应用知识管理全文检索MCP 服务ToolJet 自托管认证配置指南实例级与工作区级登录的三种部署模式ToolJet 自托管认证配置指南实例级与工作区级登录的三种部署模式 ToolJet 的自托管部署支持 实例级Instance Level 与 工作区级低代码后端前端AI 应用MCP 服务Penpot 自托管部署实战基于 Docker Compose 的安装、配置、升级与 HTTPS 反向代理完整指南Penpot 自托管部署实战基于 Docker Compose 的安装、配置、升级与 HTTPS 反向代理完整指南 本指南对应 Penpot 官方技术文档 d前端设计系统图形学协同办公创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考