Deploy Doory

Open-source Canva alternative with live co-editing

Deploy Doory

/var/lib/postgresql/data

Just deployed

/app/media

Deploy and Host self hosted Doory (Open-Source Canva Alternative) on Railway

Doory is an open-source browser design editor for posters, social posts, and slide decks, with live co-editing on one public domain.

About Hosting Doory open-source software on Railway (self hosted Doory template)

Doory is an open-source browser design editor, and this template runs the whole thing for you: one Doory container that serves the web app, the Django API and the realtime WebSocket server, plus a Postgres 18 database.

Why Deploy Doory, the Canva alternative on Railway (Railway Free Trial)

Canva is easy to start with, but your designs and team's brand assets live on their servers, and the paid tiers add up fast once a team grows.

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Doory on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

Railway vs Other Hosting Providers and VPS for Doory self hosting

Running Doory yourself means choosing where the API, realtime server, nginx and Postgres live, so here is how Railway compares.

ProviderWhat You Get with RailwayWhat You Get with the Other Provider
DigitalOceanOne click deploys the Doory container, Postgres and HTTPS, with no server to patch.A Droplet you manage yourself, cheaper per GB but you handle Docker and updates.
AWSNo IAM, VPC or load balancer setup, with the health check and volume wired for you.Finer networking and scaling control, with a steeper learning curve.
HetznerA managed deploy with zero inputs, so you skip SSH keys and systemd work.Very cheap European servers that suit a team happy to run its own box.

Railway is quickest for a small team, while a VPS suits anyone who wants the lowest bill and enjoys server admin.

Common Use Cases for hosted Doory

Doory suits teams that make a lot of visual content and want it on infrastructure they control.

  • Social posts and stories: Build square and vertical graphics from the starter templates and export PNG or JPG for each channel.
  • Slide decks with present mode: Design a deck and run it full screen in present mode for quick internal updates.
  • Co-editing a design live with a teammate: Share an edit link and work on the same canvas at once, with real-time co-editing on the same public domain.
  • Brand kits: Keep your logo, colors, and fonts in one place, with the top 100 open fonts installed on first start.
  • Exporting PNG, PDF, MP4 or GIF: Render finished work in the format each channel needs, with server-side export in the same container.

Dependencies for Doory Docker hosted on Railway

Doory runs as two Railway services: one container for the web app, API and realtime server, and one Postgres 18 database.

Deployment Dependencies for Managed Doory Service (Django API + realtime WebSocket + nginx + PostgreSQL)

The Doory service runs ghcr.io/onepush-dev/doory:0.2.0, which bundles the backend with Chromium for export and the frontend.

Implementation Details for Doory (0.2.0, one container, /app/media volume)

Upstream shares one media volume across three services, but Railway volumes cannot be shared between services, so this template runs everything in one container under tini as PID 1.

How does Doory compare against other design tools

Doory vs Canva (Canva Alternative)

  • Where Doory wins: You host it yourself on one public domain, so your designs and brand assets stay on infrastructure you control.
  • Where Canva wins: Canva has a huge template library, stock photos, and a polished mobile app, while Doory ships with only ten starter templates.
  • Where Doory wins: The source is open under the Attribution Assurance License, so you can read it, change it, and keep the credit.

Doory vs Penpot (Penpot Alternative)

  • Where Doory wins: Doory is built around social posts, stories, slides, and invitations, so it feels closer to a quick Canva style workflow than a vector design tool.
  • Where Penpot wins: Penpot is the stronger choice for UI and product design, with a mature vector toolset and design handoff features.
  • Where Doory wins: Export to MP4, WebM, and GIF is built in, which helps when you need short animated posts.

Doory vs Polotno Studio (Polotno Studio Alternative)

  • Where Doory wins: Doory is a complete editor you deploy with no inputs, while Polotno Studio is an SDK you need to embed and wire into your own app.
  • Where Polotno Studio wins: If you are building a custom product that needs an embedded editor, Polotno Studio gives you far more control over the integration.
  • Where Doory wins: Real-time co-editing and share links that view, comment, or edit work out of the box on the Doory deploy.

Doory vs Figma (Figma Alternative)

  • Where Doory wins: Your files live on your own Doory service, so you are not tied to a hosted account or a seat-based plan.
  • Where Figma wins: Figma is the better choice for large product teams, with a deep component system, plugins, and a mature collaboration history.
  • Where Doory wins: Doory is a young project, so expect fewer features than Figma, but it is simple to run for a small team that just needs to ship graphics.

How to use Doory (the self-hosted design editor)?

Here's the first-day routine I'd follow after the deploy finishes.

  1. Deploy the template with no inputs. Railway generates the secret key, the admin password and the database credentials for you, so there's nothing to fill in.
  2. Copy DOORY_ADMIN_PASSWORD from the Doory service Variables tab. It's only used when the admin account is first created, so save it now.
  3. Open the public URL and sign in as admin@example.com with that password. The top 100 open fonts, the CC0 music and sound effects, and the ten starter templates are already installed.
  4. Open one of the starter templates and make a quick edit to confirm saving works.
  5. Share an edit link with a teammate and co-edit the design live. Real-time sync runs on the same public domain, so no extra setup is needed.
  6. Set EMAIL_URL for real emails. By default it's consolemail://, which prints messages to the log instead of sending them.
EMAIL_URL=smtp://user:password@smtp.your-provider.com:587

How to self host Doory on other VPS Services (Doory self hosting guide)

These steps follow the upstream Compose setup on a VPS with Docker installed. It runs separate api, realtime, web and Postgres containers that share one media volume.

Clone the Repository

Clone the upstream project, which holds the compose file and the env template.

git clone https://github.com/shaongitbd/doory.git
cd doory

Install Dependencies

You only need Docker Engine with the Compose plugin on the host. Everything else, including Postgres, runs in containers.

Configure Environment Variables

Copy the example file, then set DJANGO_SECRET_KEY and POSTGRES_PASSWORD. Upstream suggests openssl rand -base64 48 for the key.

cp .env.example .env
openssl rand -base64 48

Start the Doory Application

Build and start the stack, then create your admin account. Upstream doesn't create one for you; the Railway template does.

docker compose up -d --build
docker compose exec api python manage.py createsuperuser

Open port 8080 and start designing. Put a TLS reverse proxy in front for a public server.

Railway handles TLS, Postgres and restarts for you, which you would otherwise maintain yourself on a VPS.

Official Pricing of Doory (Doory pricing)

Doory is free and open source under the Attribution Assurance License, so the project charges nothing and there is no paid plan to buy. The Railway template is also free to install.

Doory cloud vs self hosted comparison (Pricing, features, costs, and more)

Doory has no paid plan upstream, so the real choice is between running it yourself and paying a hosting bill. What changes is who keeps the lights on.

Monthly cost of self hosting Doory on Railway

The template runs two services, Doory and Postgres 18, and Railway bills for their compute, memory and the volume that holds /app/media.

System Requirements for Hosting Doory on a VPS

If you move Doory to your own VPS, plan for one container that runs nginx, gunicorn, uvicorn and Chromium, plus a PostgreSQL database.

Frequently Asked Questions (FAQs)

Why does Doory not include Redis?

Redis is only needed when you run more than one realtime worker, and this template runs a single one. The cache lives in Postgres, so there is one fewer service to pay for and watch.

Can I change the admin email after deploy?

Yes, but DOORY_ADMIN_EMAIL only sets the account when it is first created. To change it later, sign in as admin and update the email from inside the app, or use a Django shell in the service.

How do emails work?

EMAIL_URL is set to consolemail://, so emails are printed to the Railway log and not sent. To get real invites and resets, point EMAIL_URL at your SMTP provider.

Where are uploads stored?

Uploads and generated media sit on the Doory volume mounted at /app/media, and exports go to /app/exports. Keep that volume attached, because the app has no other copy of your files.

Can I add the icon library?

Yes, but it is off by default. Set DOORY_SYNC_ELEMENTS to true and redeploy, and expect about 130 MB of data for roughly 27,000 elements.

Does it need Chromium?

No extra setup on your part. The backend image already ships Chromium for server-side image export. Most downloads are made in your browser anyway, so nothing else needs installing.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
50
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51