---
title: "Deploy Plane v1 Project Hub"
description: "Issues, sprints, docs and roadmaps. Full Plane stack, no per-seat fees."
category: "Other"
url: https://railway.com/deploy/plane-v1-project-hub
---

# Deploy Plane v1 Project Hub

Issues, sprints, docs and roadmaps. Full Plane stack, no per-seat fees.

**[Deploy Plane v1 Project Hub on Railway](https://railway.com/template/plane-v1-project-hub)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/plane-v1-project-hub/manifest.json

- **Creator:** bento
- **Category:** Other
- **Total deploys:** 1

## Template content

### admin https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/plane.svg

- **Image:** makeplane/plane-admin:v1.4.2
- **Start command:** `/bin/sh -c "sed -i -e 's/^worker_processes .*/worker_processes 2;/' -e 's/listen 3000;/listen 3000; listen [::]:3000;/' /etc/nginx/nginx.conf && nginx -t && exec nginx -g 'daemon off;'"`
- **Health check:** /god-mode/

### api https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/plane.svg

- **Image:** makeplane/plane-backend:v1.4.2
- **Start command:** `/bin/bash -c "sed 's/--bind 0.0.0.0:/--bind [::]:/' ./bin/docker-entrypoint-api.sh > /tmp/docker-entrypoint-api.sh && exec bash /tmp/docker-entrypoint-api.sh"`
- **Health check:** /api/instances/

### RabbitMQ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/rabbitmq.svg

- **Image:** rabbitmq:3.13.7-management-alpine

### space https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/plane.svg

- **Image:** makeplane/plane-space:v1.4.2
- **Health check:** /spaces/

### proxy https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/caddy.svg

- **Source:** baranberkay96/plane-railway
- **Health check:** /proxy-health
- **Public domain:** Yes

### beat-worker https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/plane.svg

- **Image:** makeplane/plane-backend:v1.4.2
- **Start command:** `./bin/docker-entrypoint-beat.sh`

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### web https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/plane.svg

- **Image:** makeplane/plane-frontend:v1.4.2
- **Start command:** `/bin/sh -c "sed -i -e 's/^worker_processes .*/worker_processes 2;/' -e 's/listen 3000;/listen 3000; listen [::]:3000;/' /etc/nginx/nginx.conf && nginx -t && exec nginx -g 'daemon off;'"`
- **Health check:** /

### Redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

### worker https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/plane.svg

- **Image:** makeplane/plane-backend:v1.4.2
- **Start command:** `/bin/bash -c "python manage.py wait_for_db && python manage.py wait_for_migrations && exec celery -A plane worker -l info --concurrency ${CELERY_WORKER_CONCURRENCY:-2}"`

### live https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/plane.svg

- **Image:** makeplane/plane-live:v1.4.2
- **Health check:** /live/health

### bucket-cors https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/aws.svg

- **Image:** amazon/aws-cli:2.37.12
- **Start command:** `/bin/sh -c "aws s3api put-bucket-cors --bucket $BUCKET_NAME --endpoint-url $S3_ENDPOINT --region $S3_REGION --cors-configuration \"$CORS_CONFIGURATION\" && echo 'Bucket CORS configured for' $PUBLIC_ORIGIN"`

## Buckets

- **Bucket**

## Documentation

# Deploy and Host Plane with Railway

Plane is an open-source project management tool for issues, cycles (sprints), modules, pages and roadmaps. This community template deploys the full Plane community edition on Railway as separate services from the official images, with Postgres, Redis, RabbitMQ and a Railway Bucket, behind one domain and with no per-seat fees.

## About Hosting Plane

A complete Plane install is more than one container: a Django API, Celery workers and a scheduler, a real-time server for collaborative pages, three front-end apps (main app, public spaces, instance admin) and a reverse proxy that serves them all from one origin. It also needs Postgres, Redis, RabbitMQ and S3-compatible storage. This template runs each process as its own Railway service on the private network, routes the public domain through a small Caddy router, stores uploads in a Railway Bucket using presigned URLs, runs migrations as a pre-deploy step and generates every secret. Instance settings such as SMTP and OAuth are managed in Plane's own admin UI.

## Common Use Cases

- Replacing Jira or Linear for engineering and product teams that want to own their data
- Planning sprints (cycles), epics (modules) and roadmaps with Kanban, list, Gantt and spreadsheet views
- Writing specs and meeting notes in collaborative Pages next to the work items
- Publishing a read-only roadmap or feedback board through Plane spaces

## Dependencies for Plane Hosting

- Plane community images: backend (api, worker, beat-worker), frontend, admin, space, live — pinned to v1.4.2
- PostgreSQL (Railway Postgres 18)
- Redis (cache, sessions, live-server pub/sub)
- RabbitMQ (Celery broker)
- S3-compatible object storage (Railway Bucket)

### Deployment Dependencies

- Plane self-hosting docs: https://developers.plane.so/self-hosting/overview
- Plane Docker Compose reference (v1.4.2): https://github.com/makeplane/plane/tree/v1.4.2/deployments/cli/community
- Plane releases: https://github.com/makeplane/plane/releases
- Railway Buckets (CORS for browser uploads): https://docs.railway.com/storage-buckets/uploading-serving

### Implementation Details

| Service | Image | Role |
|---|---|---|
| proxy | Caddy 2.11 (`services/proxy`) | Only public domain; routes `/api`, `/auth`, `/spaces`, `/god-mode`, `/live` and the web app |
| web | `makeplane/plane-frontend:v1.4.2` | Main web app |
| admin | `makeplane/plane-admin:v1.4.2` | Instance admin (`/god-mode`) |
| space | `makeplane/plane-space:v1.4.2` | Public spaces (`/spaces`) |
| live | `makeplane/plane-live:v1.4.2` | Real-time collaboration (`/live`, WebSocket) |
| api | `makeplane/plane-backend:v1.4.2` | Django API; migrations in pre-deploy |
| worker | `makeplane/plane-backend:v1.4.2` | Celery worker |
| beat-worker | `makeplane/plane-backend:v1.4.2` | Celery beat scheduler |
| Postgres / Redis / RabbitMQ | Railway Postgres 18, Redis 8.2, RabbitMQ 3.13 | Data, cache, broker (each with a volume) |
| bucket-cors | `amazon/aws-cli` | One-shot job that sets the Bucket CORS rule, then exits |
| Bucket | Railway Bucket | Attachments, images, exports |

**First login:** open `/god-mode/` on the proxy domain to create the instance admin and configure e-mail and sign-in methods, then open `/` to create your first workspace.

**Scaling:** add replicas to worker (or raise `CELERY_WORKER_CONCURRENCY`) for background load and to api (or raise `GUNICORN_WORKERS`) for request load. Keep beat-worker at one replica.

**Versions:** all Plane services share one tag. To upgrade, change the seven `v1.4.2` tags together and redeploy; migrations run once in the api pre-deploy step. For a custom domain, update `WEB_URL` and `CORS_ALLOWED_ORIGINS` on api and the CORS rule on bucket-cors.

### Why Deploy Plane on Railway?

Railway runs Plane's many small services, its databases and the file bucket in one project with private networking, per-service scaling and usage-based pricing. You get the same layout Plane uses in its own Docker deployments without managing hosts, proxies or certificates.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/plane-v1-project-hub
