---
title: "Deploy Etherpad"
description: "Real-time collaborative document editor on Postgres, with a protected admin"
category: "Other"
url: https://railway.com/deploy/etherpad-2
---

# Deploy Etherpad

Real-time collaborative document editor on Postgres, with a protected admin

**[Deploy Etherpad on Railway](https://railway.com/template/etherpad-2)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/etherpad-2/manifest.json

- **Creator:** Agaz Self-Host
- **Category:** Other
- **Total deploys:** 1

## Template content

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

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

### Etherpad https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/etherpad.svg

- **Image:** etherpad/etherpad:3.3.16@sha256:72759acc995ee66c7b4eb8e93fe017b882b29005beb86320fc12bd7334d0e4d3
- **Start command:** `/bin/sh -c 'export DB_TYPE="${DB_TYPE:-postgres}" TRUST_PROXY="${TRUST_PROXY:-true}" ENABLE_METRICS="${ENABLE_METRICS:-false}"; i=0; until [ "$DB_TYPE" != postgres ] || nc -z -w 3 "$DB_HOST" "${DB_PORT:-5432}"; do i=$((i+1)); [ $i -ge 60 ] && break; echo "waiting for Postgres at $DB_HOST"; sleep 2; done; cd /opt/etherpad-lite/src && exec node --require tsx/cjs node/server.ts'`
- **Health check:** /health
- **Public domain:** Yes

## Documentation

# Deploy and Host Etherpad on Railway

Etherpad is an open-source, real-time collaborative text editor. Several people can write in the same document at once and see each other's changes as they type, with author colours, chat and a full revision history. It runs in the browser, needs no accounts by default, and can be extended with plugins.

## About Hosting Etherpad

Hosting Etherpad means running its Node.js server behind HTTPS with a database that keeps every pad and revision. This template runs the official `etherpad/etherpad` image (3.3.16, pinned by digest) next to Railway Postgres, wired together over the private network. The start command turns on proxy trust for Railway's HTTPS edge, selects Postgres, turns off the public `/stats` endpoint, and waits for the database before starting. The admin password and the built-in SSO client secrets are generated at deploy time, so no default credentials exist. Pads are stored in Postgres, so they survive redeploys and restarts.

## Common Use Cases

* Writing meeting notes, agendas and minutes together in real time
* Drafting documents, articles or class material with a team or a classroom
* Running a self-hosted, privacy-friendly alternative to hosted document editors

## Dependencies for Etherpad Hosting

* Etherpad server (official Docker image `etherpad/etherpad`)
* PostgreSQL database (Railway Postgres)

### Deployment Dependencies

* Etherpad source and releases: https://github.com/ether/etherpad/releases
* Docker image: https://hub.docker.com/r/etherpad/etherpad
* Docker settings reference: https://github.com/ether/etherpad/blob/develop/doc/docker.md
* Etherpad documentation: https://docs.etherpad.org/

### Implementation Details

**Admin panel:** open `/admin` on your Etherpad's Railway domain. The user is `admin` and the password is the generated `ADMIN_PASSWORD` variable on the Etherpad service.

**Who can edit:** like a standard Etherpad, anyone who knows a pad's URL can open and edit it. To make every visitor log in, set `REQUIRE_AUTHENTICATION=true` on the Etherpad service. Visitors then sign in as `user` with the generated `USER_PASSWORD`, or as `admin`.

**Settings:** any option from Etherpad's `settings.json.docker` can be set as a variable on the Etherpad service, for example `TITLE`, `DEFAULT_PAD_TEXT`, `SKIN_VARIANTS` or `LOGLEVEL`. Plugins installed from the admin panel are not kept across redeploys. To keep a plugin, build your own image with the `ETHERPAD_PLUGINS` build argument.

**HTTP API:** Etherpad 3 authenticates API calls with OAuth2 through its built-in SSO provider. The client secrets `ADMIN_SECRET` and `USER_SECRET` are generated for you, and the issuer is your Railway domain.

## Why Deploy Etherpad on Railway?


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 Etherpad 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.



## 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/etherpad-2
