The first published version of Doory, with pre-built Docker images for linux/amd64 and linux/arm64.
Docker images
docker pull ghcr.io/shaongitbd/doory-backend:0.1.0 # api, realtime and mcp (includes headless Chromium for server-side export)
docker pull ghcr.io/shaongitbd/doory-frontend:0.1.0 # webTo run them instead of building, see Pre-built images in the Docker guide. Pin 0.1.0 rather than latest, so updates happen when you choose.
Building from source still works as before: docker compose up -d --build.
Licence
Doory is released under the Attribution Assurance License. Keep LICENSE and NOTICE with it and show the credit in the running app; see License and credit.
What's Changed
- fix(collab): avoid synchronous DB cache access in async WebSocket handlers by @raclo in #24
- nginx: take the resolver from resolv.conf so the stack runs under Podman by @cyb3rsalih in #19
- Editor: tools in a rail, File/View menus, one Share menu by @littlebird32 in #26
- Designs: lock owner row before checking design limit by @okarin1511 in #31
- Gallery: defer thumbnail deletion to after commit by @okarin1511 in #30
- Animate panel scrolls its own content by @littlebird32 in #42
- Duplicating several objects puts the copies beside them by @littlebird32 in #43
- Size presets as data: models, admin, import, API (#45, 1/4) by @anvme in #46
- Frontend reads size presets from the server (#45, 2/4) by @anvme in #47
- Import size presets from a file on start (#45, 3/4) by @anvme in #48
- Safe-zone guides for size presets (#45, 4/4) by @anvme in #49
- New list lines keep their bullet or number while typing by @littlebird32 in #56
- Update psycopg2-binary requirement from >=2.9 to >=2.9.13 in /backend by @dependabot[bot] in #14
- Update defusedxml requirement from >=0.7 to >=0.7.1 in /backend by @dependabot[bot] in #10
- Bump nginxinc/nginx-unprivileged from 1.27-alpine to 1.29-alpine in /frontend by @dependabot[bot] in #53
- Build(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #1
- Build(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in #3
- Bump the npm-minor-and-patch group across 1 directory with 6 updates by @dependabot[bot] in #54
- Build(deps): update google-auth requirement from >=2.38 to >=2.62.0 in /backend by @dependabot[bot] in #13
- Build(deps): bump actions/setup-python from 5 to 7 by @dependabot[bot] in #5
- Build(deps): bump actions/setup-node from 4 to 7 by @dependabot[bot] in #6
- Update websockets requirement from >=13 to >=17.2 in /backend by @dependabot[bot] in #7
- Build(deps): update django requirement from <5.3,>=5.2 to >=6.1.2,<6.2 in /backend by @dependabot[bot] in #9
- Bump python from 3.12-slim to 3.14-slim in /backend by @dependabot[bot] in #52
- Build(deps-dev): bump vitest from 3.2.7 to 5.0.4 in /frontend by @dependabot[bot] in #15
- Build(deps-dev): bump vite from 7.3.6 to 8.3.4 in /frontend by @dependabot[bot] in #12
- Dependabot: security updates only by @littlebird32 in #61
- Add an MCP server so AI assistants can create and edit designs by @anvme in #50
- MCP: organise designs, folders, share links, text effects, brand kits, resources and prompts by @anvme in #51
- Element library: Bootstrap Icons outline and fill packs (#63, 1/2) by @anvme in #65
- Stock photos: Pixabay, per-provider limits and caching, and an "All" tab by @anvme in #62
- Stickers panel: pack chips, combined type+pack filter, pack name on tiles (#63, 2/2) by @anvme in #66
- Element library: opt-in brand logos (DOORY_ELEMENTS_BRAND_LOGOS) by @anvme in #67
- Headless render page for server-side image export (#57, 1/3) by @anvme in #68
- Server-side image export: worker image mode and export_image (#57, 2/3) by @anvme in #69
- export_design MCP tool and REST image export (#57, 3/3) by @anvme in #70
- Structured export file names (#59) by @anvme in #73
- New bunny mascot by @littlebird32 in #81
- Show the new bunny in the README screenshots by @littlebird32 in #82
- Template field tags and list_fields (#60, 1/3) by @anvme in #71
- Replace image in its frame (#60, 2/3) by @anvme in #72
- Shrink-to-fit text (#60, 3/3) by @anvme in #74
- Pick a stock photo as the page background (#77) by @anvme in #78
- Layers panel scrolls its own content (#83) by @anvme in #85
- Color pickers inside toolbar menus apply their colour (#84) by @anvme in #86
- Audio: Freesound tab (CC0 by default, CC BY with credits) by @anvme in #76
- MP3: read the Xing/Info tag where encoders write it (#93) by @littlebird32 in #95
- List the contributors in the copyright (AUTHORS.md) by @littlebird32 in #96
- Sign the licence with Siam's GPG key by @littlebird32 in #99
- AI image providers: backend foundation (#87, 1/4) by @anvme in #90
- AI image providers: editor and Settings (#87, 2/4) by @anvme in #91
- AI image providers: MCP tools (#87, 3/4) by @anvme in #94
- Bulk create: fill a template by field key (fill_design, bulk_fill, CSV) by @anvme in #80
- Docs: a docs/ folder for self-hosting and development, and a rule to keep it current (#88) by @anvme in #89
- AI image providers: reference server and admin guide (#87, 4/4) by @anvme in #97
- AI providers in the editor: review follow-ups by @littlebird32 in #101
- AI providers backend: review follow-ups by @littlebird32 in #102
- MCP background removal: review follow-ups by @littlebird32 in #103
- Bulk create: review follow-ups by @littlebird32 in #104
- Reference AI server: review follow-ups by @littlebird32 in #105
- Docs: review follow-ups by @littlebird32 in #106
- Publish Docker images to ghcr.io (started by hand) by @littlebird32 in #107
New Contributors
- @raclo made their first contribution in #24
- @cyb3rsalih made their first contribution in #19
- @okarin1511 made their first contribution in #31
- @anvme made their first contribution in #46
- @dependabot[bot] made their first contribution in #14
Full Changelog: https://github.com/shaongitbd/doory/commits/v0.1.0