Deploy Doory
Doory, an open-source Canva alternative, with templates and fonts loaded
Just deployed
Just deployed
Deploy and Host Doory on Railway
Doory is an open-source alternative to Canva: a design editor in the browser for posters, social posts, flyers, presentations, business cards and resumes, with starter templates, an element library, fonts, brand kits and real-time co-editing. This template runs Doory (commit d4baf4e from October 2026) on Postgres with the content library already loaded and an admin account set at deploy.
About Hosting Doory
Upstream runs Doory as separate containers (web, API, real-time server) that share one media volume. Railway attaches a volume to a single service, so this template builds them into one container. nginx serves the web app and the media files from the volume, and uvicorn serves both the API and the co-editing WebSockets from one process.
A fresh Doory is empty: no icons, illustrations, fonts or templates until you run its sync commands. Here the first start loads them. In my test that was 29 element packs with 27,108 icons, emoji, illustrations and shapes, 105 fonts, 112 music loops and sound effects, and the ten starter templates. It all lives on the volume, about 150 MB. The admin account comes from DOORY_ADMIN_EMAIL and the generated DOORY_ADMIN_PASSWORD; it can sign in to the editor and to Doory's admin site at /admin/.
Before publishing I tested it on Railway. The API health check and the web app answered, and the admin signed in through the API with a session and a CSRF token, the way the web app does. The loaded templates, element packs and fonts were all listed, and a media file served straight from the volume. I created a design from the "Night Bloom concert poster" template and opened its co-editing WebSocket. After restarting Doory and Postgres, sign-in worked and the design and the whole library were still there.
Idle, it used 0.08 GB for Doory and 0.05 GB for Postgres, a few dollars a month on Railway's usage pricing; the first start peaks at about 0.4 GB while it loads the library.
Two parts are left out to fit 1 GB: server-side PDF and image export, which runs a headless Chromium, and Doory's MCP server for AI assistants. Anyone who opens the site can create an account; Doory's per-account limits (MAX_DESIGNS_PER_USER, USER_STORAGE_QUOTA_BYTES) cap what each one can store.
Common Use Cases
- Social posts, flyers and posters for a small business, from templates you keep on your own server
- A shared design space for a team or a class, with live co-editing and brand kits
- Resumes, business cards and presentations without a design-app subscription
Dependencies for Doory Hosting
Nothing beyond the template. Optional: free API keys from Unsplash, Pexels or Pixabay for stock photo search (UNSPLASH_ACCESS_KEY, PEXELS_API_KEY, PIXABAY_API_KEY).
Deployment Dependencies
- Doory: https://github.com/shaongitbd/doory
- The wrapper this template builds: https://github.com/dektionstudio/railway-template-images/tree/main/doory
Implementation Details
DOORY_URL # the editor; the admin site is at /admin/
DOORY_ADMIN_EMAIL / DOORY_ADMIN_PASSWORD # the admin account, created on the first start
/app/media # the volume: uploads, elements, fonts, audio, templates
Doory is released under the Attribution Assurance License: you may use and change it, and the app keeps showing "Doory by Siam, creator and maintainer of Doory" with a link to the project, as the license requires. Emails (password resets, verification) go to the service log unless you set EMAIL_URL, and Railway blocks outbound SMTP below the Pro plan.
Why Deploy Doory on Railway?
The editor, its database and its whole content library come up together on HTTPS, with your admin account ready. You keep your designs and assets on your own server, and Railway bills only the RAM and CPU it uses.
Template Content
DOORY_ADMIN_EMAIL
Your email: the admin account (staff) created on the first start
