跳到正文
原文
Hacker News· acley·· 6 小时前精选AI 评分55

Doory 发布开源 Canva 替代方案,支持 Docker Compose 自托管

Doory – Open-Source Canva

AI 导读

Doory 是一款浏览器内运行的开源设计编辑器,主打免费、无需账号即可使用,并支持 Docker Compose 一键自托管。它提供图层、蒙版、滤镜、动画、视频导出、实时协作和浏览器内背景去除等功能,导出格式覆盖 PNG、JPG、SVG、PDF、MP4 与 GIF。

推荐理由

把 Canva 的核心编辑器能力完整做成可自托管的开源项目,读者可以据此评估替代 Canva 的可行路径。

正文 · 原文

Doory is a full design editor that runs in your browser. Make posters, social posts, stories, slides, invitations, resumes, thumbnails and business cards: start from a template or a blank page, edit everything, and export to PNG, JPG, SVG, PDF, MP4 or GIF. Every feature is free, nobody needs an account to start, and you can run the whole thing on your own server.

🎬 See it in action

A real recording of Doory: picking the gig poster template, renaming the band, recolouring the dates, adding a star and opening the export menu

A real, unedited recording: pick a template, rename the band, recolour the dates, add a star, export.

💜 Why people pick Doory

🆓 Free, for real

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.

⚡ Start in one click

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.

🏠 Yours to host

One docker compose up runs the app, the API, the database and live collaboration on your own server. Every design and upload stays under your control.

🛠️ A real editor

Layers, groups, masks, filters, curved text, snapping, rulers, multi-page designs, animation, audio, presenting, comments and real-time co-editing.

🎨 Everything you need to design

The Doory editor with the gig poster template open

Edit anything

Click any text, shape or photo to change it. Fonts, colours, sizes, alignment and effects are one click away in the toolbar above the page.
The Animate panel with enter, exit and emphasis animations

Bring it to life

27 enter and exit animations, 12 emphasis effects and 16 page transitions, with music and sound effects from a built-in library. Present it, or export it as a video.
The Layers panel with its right-click menu

Stay organised

Every object is a layer you can rename, lock, hide, reorder by dragging, group, or right-click to copy, duplicate, delete and arrange.
The export menu: PNG, JPG, PDF, SVG, video and GIF

Export anywhere

PNG with transparency, JPG, SVG and PDF, plus MP4, WebM and animated GIF, all made in your browser. Need print? Get a print-ready PDF with bleed and crop marks.

See the full feature list

Text Headings, curved text, text effects, font pairings, bulleted and numbered lists, an open-licensed font catalogue and your own uploaded fonts
Elements Shapes, lines and arrows, about 25,000 icons, emoji and illustrations, stickers, QR codes
Photos Upload, crop, masks and filters, one-click background removal (the model runs in your browser), stock photo search with an Unsplash or Pexels key
Layout Layers with lock and hide, groups, alignment guides, snapping, rulers, multi-page designs with pages of different sizes, magic resize
Motion 27 enter and exit animations, 12 emphasis animations and 16 page transitions on a timeline
Sound A built-in library of 24 music loops and 88 sound effects (CC0), uploads, voiceover recording, trims and fades
Present Present mode with speaker notes, timing, auto-advance, a laser pointer and a second presenter window
Together Share links that can view, comment or edit (optionally password protected), pinned comments, version history and real-time co-editing with live cursors
Brand Brand kits with your colours, fonts and logos, one click away in every design
Export PNG, JPG, SVG and PDF, MP4, WebM and animated GIF, all made in the browser, plus print-ready PDF with bleed and crop marks

🖼️ Templates that look good from the start

Ten starter templates: a gig poster, a wedding invitation, an event story, a sale post, a café flyer, a quote card, a resume, a YouTube thumbnail, a pitch deck and a business card

Ten starter templates ship with Doory, each with its own palette, set in open-licensed fonts and fully editable: a gig poster, a wedding invitation, an event story, a sale post, a café flyer, a quote card, a resume, a YouTube thumbnail, a pitch deck and a business card. Add your own in the admin, and browse them all by category, size and orientation.

The template gallery

Canva is a great product. Doory is for people who want the same kind of tool, but free, open and in their own hands.

Doory Canva
Price Free, every feature Free plan, paid Pro and Teams plans
Open source ✅ ❌
Run it on your own server ✅ ❌
Design without an account ✅ ❌
Your files stay on infrastructure you control ✅ ❌
Real-time co-editing and comments ✅ ✅
Animation, video and GIF export ✅ ✅
Background removal ✅ in your browser ✅
Template library 10 starter templates, plus any you add A very large library

🚀 Self-host it in 3 commands

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

Open http://localhost:8080 and start designing. The web container serves the app and forwards /api and /ws to the backend, so the browser only ever talks to one address.

Add the starter content (templates, icons, fonts, audio)

A new site starts empty. Add whatever you want once it is running:

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

Settings worth knowing (.env)

Setting What it does
SITE_URL The public address of the site, e.g. https://doory.example.com (no trailing slash)
DJANGO_ALLOWED_HOSTS The host names the site answers to, comma separated
SECURE_SSL_REDIRECT, SECURE_COOKIES true behind HTTPS, false for plain http://
EMAIL_URL, DEFAULT_FROM_EMAIL SMTP, e.g. smtp+tls://user:password@smtp.example.com:587 (without it, emails are printed to the API log)
WEB_PORT, WEB_BIND Where the site is published (default 0.0.0.0:8080)
INSTALL_CHROMIUM false skips the headless browser that server-side PDF export needs
GOOGLE_CLIENT_ID Turns on "Sign in with Google"
UNSPLASH_ACCESS_KEY, PEXELS_API_KEY Turn on stock photo search
USE_S3 and AWS_* Store uploads in S3-compatible storage instead of a local volume

Develop locally

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 lists the other targets (tests, lint, content).

❓ FAQ

Is it really free?
Yes. There are no plans, no paywalls and no ads in Doory. Every feature is available to everyone. Do I need an account?
No. Guests design straight away and their work is saved in the browser. An account keeps designs in the cloud, lets you share them and use brand kits; signing up moves your guest designs over in one step. Can I use it for my business or host it for my users?
Yes, as long as you credit the author as the licence asks: keep the licence and NOTICE with it and show the credit in the running app. See License and credit. Where are my designs stored?
Guest designs and their images live in the browser on that device. Signed-in designs are stored on the server that runs Doory: yours, if you self-host. Uploads can go to a local volume or to S3-compatible storage.

🧱 Built with

React TypeScript Vite Fabric.js Yjs Django PostgreSQL Docker

React 19, TypeScript, Vite, Fabric.js, Yjs and Zustand in the browser; Django 5, Django REST Framework, Channels and PostgreSQL on the server; Docker Compose with nginx, optional Redis and S3-compatible storage.

🤝 Contributing

Bug reports, ideas and pull requests are welcome. Open an issue to report a bug or suggest a feature. For a security problem, please report it privately through the repository's Security tab instead.

If Doory is useful to you, a ⭐ helps other people find it.

📜 License and credit

Doory is released under the Attribution Assurance License. You may use, change and redistribute it, including commercially, but you must credit the author: keep the licence and NOTICE with it, and display this credit prominently in the running app:

Doory by Siam, creator and maintainer of Doory — https://github.com/shaongitbd/doory

Third-party software, fonts and content keep their own licences; see THIRD_PARTY.md.


Made with care by Siam and the Doory bunny.

来源:Hacker News · github.com