文档

米图设计 开发文档

这个项目是什么

米图设计(仓库 jinghui/kuaitu-editor)是开源封面/海报设计工具 ikuaitu/vue-fabric-editor(MIT)的本地化改造版:106 套本地中文平台模板 + Strapi 兼容的本地接口 + AI 生图素材面板接入。相比上游(无模板、无后端、需连远程 Strapi 云服务),本项目用一个零依赖的单文件 Node 服务端完整兼容 Strapi 返回结构,实现完全离线可用、私有部署、无水印无导出限制。

技术栈与架构

仓库结构

顶层真实目录及职责:

路径 说明
src/ 编辑器前端源码(Vue 单页应用)
packages/ pnpm workspace 子包(core 为画布 SDK @kuaitu/core)
server/ 零依赖 Node 本地服务端(Strapi 兼容接口 + 授权中心接口)
data/ 106 套本地模板及预览图数据
public/ 静态资源
index.html / vite.config.ts / tsconfig*.json Vite/TS 工程配置
.env / .env.development / .env.production / .env.staging 多环境变量(关键:APP_APIHOST)
Dockerfile / Dockerfile.kuaitu 官方版与米图定制版镜像构建
docker-compose.yml / docker-compose.cover.yml 官方与封面工坊版编排
nginx.conf / restart.sh 反向代理与重启脚本
README-COVER.md / README-en.md 等 多语言/专项说明文档

本地开发环境

需要 Node 18–20 与 pnpm 8.4.0(必须 8.x,高版本会依赖不一致):

npm install -g pnpm@8.4.0
pnpm i
pnpm dev          # vite serve,见 package.json scripts

关键环境变量:.env.production 中 APP_APIHOST= 必须留空,构建才会走同源本地接口(server/index.js),否则会去连上游云服务 github.kuaitu.cc,本地模板与 AI 素材全部取不到。同文件中 APP_TITLE=米图设计 · 封面工坊 控制标题品牌。

常用 npm scripts(摘自 package.json):pnpm dev(开发)、pnpm build(vite build)、pnpm build:sdk(构建 packages/core)、pnpm preview、pnpm test(core 包测试)。

配置项说明

docker-compose.cover.yml 中真实存在的环境变量:

配置键 含义 默认值
TEMPLATE_DIR 模板数据目录(可挂载外部目录替换模板) /app/data
COVER_AI 封面 AI 助手地址,AI 出图直接进编辑器「素材 → AI 生成」 http://192.168.68.19:8128(按需改)
VERSION 当前版本号(版本徽章显示) 1.0.0
HUB_HOST 授权中心地址(CardAuth,安装统计/在线数/公告/版本推送) https://auth.88531.cn
HUB_PROJECT_ID 授权中心项目 ID 空
HUB_API_KEY 授权中心 Key(由 restart.sh 动态注入不落盘) 空

不配置 HUB 相关项不影响编辑器使用,只是没有版本徽章、公告和安装统计。

构建与发布

# 源码构建(封面工坊版)
docker compose -f docker-compose.cover.yml up -d --build

compose 使用 Dockerfile.kuaitu 构建镜像 kuaitu-editor:1.0,端口映射 8126:80,server/ 以只读挂载(改接口后 docker restart kuaitu-editor 立即生效,无需重新构建),数据目录以读写方式挂载到宿主(server 仅需写 hub.json 保存授权中心机器码/节流状态)。Dockerfile 已补 canvas 编译依赖并做了分层,源码改动不再重装依赖。

公开镜像渠道:gitea.88531.cn/jinghui/kuaitu-editor:latest 已发布到 Gitea 镜像仓库,免登录可拉取(同步推送 v1.0.0 标签)。

部署方式

# 最快:直接拉镜像
docker run -d --name kuaitu-editor --restart always \
  -p 8126:80 -e TEMPLATE_DIR=/app/data \
  gitea.88531.cn/jinghui/kuaitu-editor:latest

浏览器打开 http://本机IP:8126 即可;对外提供域名时套一层 nginx 反代并启用 https://。

二次开发要点

相关链接