Deploy Outline Wiki
Fast, collaborative knowledge base and wiki for your team.
Just deployed
/var/lib/postgresql/data
Redis
Just deployed
/data
Outline
Just deployed
Storage
Bucket
Just deployed
Deploy and Host Outline on Railway
Outline is a fast, collaborative knowledge base for your team built using React and Node.js. It supports real-time collaborative editing, Markdown, and full-text search, with a clean interface for building and sharing team knowledge.
About Hosting Outline
Hosting Outline on Railway provisions all required infrastructure with minimal configuration. The template includes a dedicated PostgreSQL database for storing documents, collections, and user data, a Redis instance for caching and real-time collaboration, and a Railway Bucket for file storage. Outline runs as a single container exposing port 3000. Database migrations run automatically on startup, so you're ready to sign in immediately after deployment.
PostgreSQL, Redis, and the storage bucket communicate with Outline over Railway's private network, keeping internal traffic off the public internet with zero egress fees. Outline itself is publicly accessible via your configured domain.
Common Use Cases
- Team Knowledge Base: Create a central home for internal documentation, onboarding guides, runbooks, and processes with real-time collaborative editing and full-text search across all content.
- Project Documentation: Organize docs by collection and nest documents in a hierarchy, keeping project context, decisions, and references in one place alongside your team's workflow.
- Company Wiki: Build a living wiki that stays up to date with inline comments, document subscriptions, and notifications when content is updated or you are mentioned.
Dependencies for Outline Hosting
- PostgreSQL Database — Included in this template, configured with private network connections
- Redis — Included in this template, configured with private network connections
- S3-Compatible File Storage — Included in this template using Railway Buckets. Can be swapped for any compatible S3 service by updating the relevant environment variables
- SMTP Server — Required for outgoing transactional emails including invitations, document notifications, and magic link sign-in. Not included — bring your own (e.g. Resend, Mailgun, Postmark)
- Authentication Provider — At least one is required. See the authentication docs for the full list of supported providers and setup instructions
Deployment Dependencies
- Outline Documentation
- Outline Docker Guide
- Outline Environment Variable Reference
- Outline Authentication Docs
- Outline File Storage Docs
- Outline SMTP Docs
Implementation Details
Private Network Communication: All communication between Outline, PostgreSQL, and Redis occurs over Railway's private network. Neither the database nor Redis is accessible from outside the private network by default.
Secret Keys: Two secret keys are required, SECRET_KEY and UTILS_SECRET, both automatically generated during deployment. They should be unique 32-byte hex-encoded values, equivalent to running openssl rand -hex 32.
Authentication Setup: At least one authentication provider must be configured before Outline is usable. See the authentication docs for the full list of supported providers and setup instructions. This template includes Google OAuth variables by default, along with optional variables for all other supported providers.
SMTP Setup: SMTP is required for sending invitations and notifications. Configure either SMTP_SERVICE for a known mail provider, or set SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, and SMTP_FROM_EMAIL for a custom mail server.
File Storage: This template is pre-configured to use Railway Buckets as an S3-compatible storage backend. Credentials are automatically injected by Railway. You can swap this for any other compatible S3 service by updating the relevant AWS_* environment variables.
Why Deploy Outline 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 Outline 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.
Template Content
Redis
redis:8.2.1Outline
outlinewiki/outline:latestURL
Publicly accessible URL of your Outline instance, e.g. https://wiki.mycompany.com
SMTP_HOST
SMTP server hostname, e.g. smtp.resend.com. Required for invitations and notifications.
SMTP_PORT
SMTP server port. Usually 465 for TLS or 587 for STARTTLS.
SMTP_SECURE
Optional. Use TLS for SMTP. Defaults to true. Set to false for STARTTLS on port 587.
OIDC_AUTH_URI
Optional. OIDC authorization endpoint URI.
SMTP_PASSWORD
SMTP authentication password.
SMTP_USERNAME
SMTP authentication username.
OIDC_CLIENT_ID
Optional. OIDC client ID. Required if using a generic OIDC provider for authentication.
OIDC_TOKEN_URI
Optional. OIDC token endpoint URI.
AZURE_CLIENT_ID
Optional. Microsoft Entra client ID. Required if using Microsoft as your authentication provider.
SLACK_CLIENT_ID
Optional. Slack OAuth client ID. Required if using Slack as your authentication provider.
SMTP_FROM_EMAIL
Sender address for outgoing emails. Supports mailbox format, e.g. Outline noreply@mycompany.com
DISCORD_CLIENT_ID
Optional. Discord OAuth client ID. Required if using Discord as your authentication provider.
DISCORD_SERVER_ID
Optional. Discord server ID to restrict sign-in to members of a specific server.
OIDC_DISPLAY_NAME
Optional. Display name shown on the sign-in button for your OIDC provider.
OIDC_USERINFO_URI
Optional. OIDC userinfo endpoint URI.
OIDC_CLIENT_SECRET
Optional. OIDC client secret. Required if using a generic OIDC provider for authentication.
AZURE_CLIENT_SECRET
Optional. Microsoft Entra client secret. Required if using Microsoft as your authentication provider.
SLACK_CLIENT_SECRET
Optional. Slack OAuth client secret. Required if using Slack as your authentication provider.
DISCORD_SERVER_ROLES
Optional. Comma-separated Discord role IDs to restrict sign-in to specific roles.
AZURE_RESOURCE_APP_ID
Optional. Microsoft Entra resource app ID. Required if using Microsoft as your authentication provider.
DISCORD_CLIENT_SECRET
Optional. Discord OAuth client secret. Required if using Discord as your authentication provider.
Storage
Bucket