Deploy doory
Open-source design editor with live collaboration and PostgreSQL.
Just deployed
Just deployed
/var/lib/postgresql/data
Deploy and Host Doory on Railway
Doory is an open-source browser-based design editor for creating, editing, and sharing visual designs. It combines a React single-page interface with a Django API, PostgreSQL-backed accounts and documents, and a dedicated WebSocket service for live co-editing. Railway runs the web gateway, application services, and database together with private service networking and persistent database storage.
About Hosting Doory on Railway
Railway hosts Doory as Docker image services: nginx serves the browser UI, Django handles the API, a second Django process handles WebSockets, and PostgreSQL stores application data. The public web service is connected to the private backend services through Railway private networking.
Tech Stack
- React and Vite browser editor
- nginx unprivileged frontend gateway
- Django REST API with Gunicorn
- Uvicorn WebSocket realtime service
- PostgreSQL 16
- Railway private networking and persistent volumes
Why Deploy Doory on Railway
Railway provides a fast deployment path for the complete Docker-based stack, automatic HTTPS for the web service, private service-to-service networking, persistent PostgreSQL volumes, and straightforward environment-variable management. The template uses immutable upstream GHCR images for repeatable deployments.
Common Use Cases
- Self-hosted design and social-content creation
- Collaborative brand and marketing workspaces
- Internal creative tools for small teams
- Prototyping browser-based visual editors
- API-driven design workflows with live editing
Deployment Notes
The public web service listens on port 8080 and exposes the generated Railway domain. The API listens privately on port 8000 and realtime WebSockets listen privately on port 8001. SITE_URL, CSRF_TRUSTED_ORIGINS, and DJANGO_ALLOWED_HOSTS reference the web service domain. DJANGO_SECRET_KEY and POSTGRES_PASSWORD should be generated with Railway template secrets. PostgreSQL data is persisted at /var/lib/postgresql/data with PGDATA set to its pgdata subdirectory. Doory has no built-in initial admin credentials; users register through the web UI, and an administrator can be created with Django management commands. Optional MCP, Redis, external email, S3 media storage, and provider integrations are not enabled by default.
Dependencies for Doory on Railway
Doory uses PostgreSQL for accounts, designs, sessions, and application state. The public web gateway privately reaches the API and realtime services; the API and realtime services privately reach PostgreSQL. Optional MCP and Redis services are intentionally omitted from this minimal browser-ready deployment.
Deployment Dependencies
| Service | Image | Port | Volume |
|---|---|---|---|
| web | ghcr.io/shaongitbd/doory-frontend:sha-11fe071b0419ce604331a30fc5acbd2029b76ffc | 8080 | - |
| api | ghcr.io/shaongitbd/doory-backend:sha-11fe071b0419ce604331a30fc5acbd2029b76ffc | 8000 | - |
| realtime | ghcr.io/shaongitbd/doory-backend:sha-11fe071b0419ce604331a30fc5acbd2029b76ffc | 8001 | - |
| db | postgres:16.15-alpine | 5432 | /var/lib/postgresql/data |
Template Content
PORT
CACHE_URL
MEDIA_ROOT
HEALTH_PORT
MCP_ENABLED
REALTIME_ENABLED
REALTIME_WORKERS
DJANGO_SECRET_KEY
DJANGO_SETTINGS_MODULE
PGDATA
POSTGRES_DB
POSTGRES_USER
POSTGRES_PASSWORD
PORT
CACHE_URL
MEDIA_ROOT
HEALTH_PORT
MCP_ENABLED
NUM_PROXIES
SECURE_COOKIES
REALTIME_ENABLED
DJANGO_SECRET_KEY
EXPORT_STORAGE_ROOT
SECURE_SSL_REDIRECT
DJANGO_SETTINGS_MODULE
SERVER_IMAGE_EXPORT_ENABLED
