Doory 发布开源 Canva 替代方案,支持 Docker Compose 自托管
Doory – Open-Source Canva
Doory 是一款浏览器内运行的开源设计编辑器,主打免费、无需账号即可使用,并支持 Docker Compose 一键自托管。它提供图层、蒙版、滤镜、动画、视频导出、实时协作和浏览器内背景去除等功能,导出格式覆盖 PNG、JPG、SVG、PDF、MP4 与 GIF。
把 Canva 的核心编辑器能力完整做成可自托管的开源项目,读者可以据此评估替代 Canva 的可行路径。
Doory 是一款在浏览器中运行的全功能设计编辑器。制作海报、社交媒体帖子、故事、幻灯片、邀请函、简历、缩略图和名片:从模板或空白页面开始,编辑所有内容,并导出为 PNG、JPG、SVG、PDF、MP4 或 GIF。所有功能都是免费的,开始时无需任何账户,而且你可以在自己的服务器上运行整个程序。
🎬 观看实际演示
一段真实的、未经剪辑的录屏:选择一个模板,重命名乐队名称,重新着色日期,添加一颗星星,然后导出。
💜 人们为什么选择 Doory
🆓 真正的免费No Pro plan, no locked templates, no watermarks, no ads. Every tool in the editor is there for everyone, from background removal to video export. |
⚡ 一键开始Open the editor and design. Guests' work is saved in the browser; create an account only when you want your designs in the cloud, and they move over in one step. |
🏠 由你托管Onedocker compose up runs the app, the API, the database and live collaboration on your own
server. Every design and upload stays under your control.
|
🛠️ 真正的编辑器Layers, groups, masks, filters, curved text, snapping, rulers, multi-page designs, animation, audio, presenting, comments and real-time co-editing. |
🎨 设计所需的一切
查看完整的功能列表
| 文字 | 标题、弧形文字、文字效果、字体搭配、项目符号和编号列表、开源字体目录以及你自己上传的字体 |
| 元素 | 形状、线条和箭头,约 25,000 个图标、表情符号和插图、贴纸、二维码 |
| 照片 | 上传、裁剪、蒙版和滤镜,一键抠图(模型在你的浏览器中运行),使用 Unsplash 或 Pexels 密钥搜索图库照片 |
| 布局 | 带锁定和隐藏功能的图层、组合、对齐参考线、吸附、标尺、不同尺寸页面的多页设计、魔术缩放 |
| 动画 | 时间轴上 27 种入场和出场动画、12 种强调动画和 16 种页面过渡效果 |
| 声音 | 内置 24 个音乐循环和 88 个音效的素材库(CC0),上传、录制旁白、剪辑和淡入淡出 |
| 演示 | 带有演讲者备注、计时、自动翻页、激光笔和第二个演示者窗口的演示模式 |
| 协作 | 可查看、评论或编辑的分享链接(可选密码保护),置顶评论,版本历史以及带有实时光标的实时协作编辑 |
| 品牌 | 包含你的颜色、字体和标志的品牌套件,在每个设计中一键可用 |
| 导出 | PNG、JPG、SVG 和 PDF,MP4、WebM 和动态 GIF,全部在浏览器中制作,此外还有带出血和裁切标记的可打印 PDF |
🖼️ 一开始就好看的模板
Doory 内置十个入门模板,每个都有其自己的调色板,使用开源字体并可完全编辑:演出海报、婚礼请柬、活动故事、特价帖、咖啡馆传单、引言卡、简历、YouTube 缩略图、融资幻灯片和名片。在管理后台添加你自己的模板,并按类别、尺寸和方向浏览所有模板。
Canva 是一款很棒的产品。Doory 是为那些想要同类型工具,但希望免费、开源且由自己掌控的人准备的。
| Doory | Canva | |
|---|---|---|
| 价格 | 免费,所有功能 | 免费版,付费 Pro 和 Teams 版 |
| 开源 | ✅ | ❌ |
| 在你自己的服务器上运行 | ✅ | ❌ |
| 无需账户即可设计 | ✅ | ❌ |
| 你的文件保留在你控制的设施上 | ✅ | ❌ |
| 实时协作编辑和评论 | ✅ | ✅ |
| 动画、视频和 GIF 导出 | ✅ | ✅ |
| 抠图 | ✅ 在你的浏览器中 | ✅ |
| 模板库 | 10 个入门模板,加上你添加的任何模板 | 一个非常庞大的库 |
🚀 用 3 条命令自托管
cp .env.example .env # set DJANGO_SECRET_KEY (openssl rand -base64 48) and POSTGRES_PASSWORD docker compose up -d --build docker compose exec api python manage.py createsuperuser
打开 http://localhost:8080 并开始设计。web 容器为应用提供服务,并将 /api 和 /ws 转发到后端,因此浏览器始终只与一个地址通信。
添加入门内容(模板、图标、字体、音频)
新站点开始时是空的。运行后,你可以随时添加你想要的任何内容:
docker compose exec api python manage.py seed_gallery # template categories docker compose exec api python manage.py sync_fonts --popular 100 docker compose exec api python manage.py seed_templates # the starter templates (add --update to refresh them) docker compose exec api python manage.py seed_elements # shapes and graphics docker compose exec api python manage.py sync_element_packs # icons, emoji and illustrations (download) docker compose exec api python manage.py sync_models # background removal model docker compose exec api python manage.py sync_audio # music and sound effects
值得了解的设置(.env)
| 设置 | 它的作用 |
|---|---|
SITE_URL |
站点的公共地址,例如 https://doory.example.com(无末尾斜杠) |
DJANGO_ALLOWED_HOSTS |
站点响应的主机名,使用逗号分隔 |
SECURE_SSL_REDIRECT, SECURE_COOKIES |
true 使用 HTTPS,false 用于纯文本 http:// |
EMAIL_URL, DEFAULT_FROM_EMAIL |
SMTP,例如 smtp+tls://user:password@smtp.example.com:587(如果不设置,邮件会被输出到 API 日志中) |
WEB_PORT, WEB_BIND |
站点的发布位置(默认 0.0.0.0:8080) |
INSTALL_CHROMIUM |
false 跳过服务器端 PDF 导出所需的无头浏览器 |
GOOGLE_CLIENT_ID |
启用「Sign in with Google」 |
UNSPLASH_ACCESS_KEY, PEXELS_API_KEY |
开启图库图片搜索 |
USE_S3 和 AWS_* |
将上传文件存储到兼容 S3 的存储中,而非本地卷 |
本地开发
make setup # virtualenv, dependencies, local database make dev-api # API on http://localhost:8000 make dev-web # app on http://localhost:5173 (second terminal)
make help 列出其他目标(tests、lint、content)。
❓ 常见问题
它真的是免费的吗?
是的。Doory 没有付费方案、没有付费墙,也没有广告。所有功能对所有人开放。
我需要注册账号吗?
不需要。访客可以直接开始设计,其作品会保存在浏览器中。注册账号可以将设计保存在云端、方便你分享并使用品牌套件;注册后,访客期间的设计可一步迁移过来。
我可以将它用于自己的业务,或为我的用户提供托管吗?
可以,只要按照许可证的要求署名作者:保留许可证及 NOTICE 文件,并在运行中的应用里展示该署名信息。详见 许可证与署名。
我的设计存储在哪里?
访客的设计及其图片保存在该设备的浏览器中。登录后的设计存储在运行 Doory 的服务器上:如果你自托管,那就是你自己的服务器。上传文件可以保存在本地卷或兼容 S3 的存储中。
🧱 技术栈
浏览器端使用 React 19、TypeScript、Vite、Fabric.js、Yjs 和 Zustand;服务端使用 Django 5、Django REST Framework、Channels 和 PostgreSQL;Docker Compose 配合 nginx,以及可选的 Redis 和兼容 S3 的存储。
🤝 参与贡献
欢迎提交 Bug 报告、想法和拉取请求。可通过 issue 来报告 Bug 或提出功能建议。如遇安全问题,请通过仓库的 Security 标签页私下报告。
如果 Doory 对你有用,给一个 ⭐ 可以帮助更多人发现它。
📜 许可证与署名
Doory 基于 Attribution Assurance License 发布。你可以使用、修改和再分发它,包括用于商业目的,但 你必须署名作者:保留许可证和 NOTICE 文件,并在运行的应用中显著展示以下署名:
Doory 作者 Siam,Doory 的创建者与维护者 — https://github.com/shaongitbd/doory
第三方软件、字体和内容保留各自的许可证;详见 THIRD_PARTY.md。
来源:Hacker News · github.com






