Draw 是一个面向图片、视频和工作流创作的开源 AI 画布工作台。
当前维护仓库:
https://github.com/hloolx/draw
后续源码、镜像、Issue 和发布记录都以 hloolx/draw 为准。
- 无限画布:多项目、节点拖拽缩放、连线、小地图、撤销重做、导入导出。
- AI 图片创作:支持 OpenAI 兼容接口、Images API、Responses API、图生图、参考图编辑、流式响应和 Base64 图片返回。
- 视频创作:支持视频生成任务、进度展示、历史结果、下载、保存素材和云端存储同步。
- 创作工作流:支持个人/公开模板、变量表单、AI 创建工作流、多图系列生成和运行记录。
- 素材管理:支持我的素材、素材库、参考图复用、批量导入导出和引用保护删除。
- 管理后台:支持用户、渠道、提示词、系统设置、AI 调用日志和存储配置管理。
- 存储:支持浏览器 IndexedDB、SQLite 元数据和 S3/R2 兼容对象存储。
项目仍在快速迭代中,数据库结构和本地数据格式可能随版本调整。生产部署前请先备份
.env和data目录。
git clone https://github.com/hloolx/draw.git
cd draw
cp .env.example .env
docker compose up -d --build默认访问地址:
http://localhost:13000
启动 Go 后端:
cp .env.example .env
go run .启动 Next.js 前端:
cd web
npm install
npm run dev默认端口:
- 前端:
http://localhost:13000 - 后端:
http://127.0.0.1:18080 - 前端 API 代理:
/api/* -> http://127.0.0.1:18080
后端测试:
go test ./...前端类型检查:
cd web
npm run typecheck前端测试:
cd web
npm test前端生产构建:
cd web
npm run build构建嵌入式前端并准备单二进制打包:
node scripts/build-embedded-web.mjs
go build -o draw .推荐使用 Docker Compose 部署。镜像构建工作流会根据当前 GitHub 仓库自动发布到 GHCR:
ghcr.io/hloolx/draw
服务器只需要保留 .env 和 data 目录,升级前建议先备份:
git pull
docker compose up -d --build生产环境建议:
- 修改默认
ADMIN_PASSWORD。 - 修改默认
JWT_SECRET。 - 使用 HTTPS 反向代理到
127.0.0.1:13000。 - 生产环境只需要暴露
13000,页面和/api/*都由同一个二进制提供。 - 定期备份
.env和data。
GitHub Releases 会自动提供多平台单二进制产物:
draw-linux-amd64.tar.gzdraw-linux-arm64.tar.gzdraw-darwin-amd64.tar.gzdraw-darwin-arm64.tar.gzdraw-windows-amd64.zipdraw-windows-arm64.zipSHA256SUMS.txt
每个压缩包里只有一个可执行文件:Linux/macOS 为 draw,Windows 为 draw.exe。前端静态资源已经嵌入 Go 二进制,运行时不需要安装 Node.js,也不需要额外的 web 目录。
Linux/macOS:
tar -xzf draw-linux-amd64.tar.gz
./drawWindows:
Expand-Archive .\draw-windows-amd64.zip
.\draw-windows-amd64\draw.exe默认访问地址:
http://localhost:13000
如需修改端口或数据库路径,可以在同目录放置 .env,或直接设置环境变量,例如 PORT、DATABASE_DSN、ADMIN_PASSWORD、JWT_SECRET。
本项目基于 AGPL-3.0 协议开源,详见 LICENSE。
本仓库包含对原项目 basketikun/infinite-canvas 的二次开发内容,请在继续分发或部署时保留原作者信息和协议声明。