Deploy Outline — Self-Hosted Wiki & Team Knowledge Base
Self-host Outline — a fast Notion alternative wiki for teams
Outline
Just deployed
/var/lib/outline/data
Just deployed
/var/lib/postgresql/data
Redis
Just deployed
/data
Deploy and Host Outline on Railway
Outline is the open-source alternative to Notion and Confluence — a fast, beautiful team wiki and knowledge base with real-time collaborative editing, Markdown, nested collections, slash commands, and lightning-fast full-text search. This template deploys it with PostgreSQL and Redis pre-wired, using local file storage so there's no separate S3 bucket to configure — and it's upfront about the one thing that catches every Outline self-hoster: Outline has no password login, so you connect an auth provider to sign in.
What This Template Deploys
| Service | Purpose |
|---|---|
| Outline | The wiki app, editor, and API (Node.js + React) on port 3000 |
| PostgreSQL | Documents, users, collections, and search index |
| Redis | Caching and real-time collaboration over WebSockets |
All three connect over Railway's private network — Postgres and Redis are never public. A persistent volume holds uploaded files using Outline's local storage, so no external S3 bucket is required.
About Hosting
Outline is a polished wiki, but one design decision surprises nearly everyone self-hosting it — knowing it upfront saves real frustration.
Outline has no username/password login — you must connect an auth provider. This is deliberate: Outline treats SSO as the correct way to manage company knowledge and doesn't run a password store. In practice, after deploying you cannot log in until you've configured at least one OAuth provider — Google, Slack, Microsoft, Discord, GitHub, or generic OIDC (which works with Authentik, Keycloak, or Pocket ID). Set up one provider's OAuth app, add its client ID and secret, point its redirect URI at https://your-domain/auth/.callback, and you're in. This is the number-one "I deployed it but can't sign in" moment — plan for it.
Local storage means no S3 to configure. Older Outline setups required a MinIO/S3 bucket for uploads. As of 2026, Outline supports local file storage, and this template uses it — uploads live on a volume, dropping the stack from four services to three. Switch FILE_STORAGE to s3 later if you want object storage.
SECRET_KEY and UTILS_SECRET are required and must be stable. Both are 32-byte random hex values (openssl rand -hex 32). SECRET_KEY encrypts sensitive data; changing it after data exists causes problems, so set both once at deploy and keep them stable. This template generates them for you.
URL must match your Railway domain. Outline builds OAuth callbacks and links from URL, so it must be your exact Railway public domain, or sign-in redirects break. PGSSLMODE=disable is set for Railway's internal Postgres connection.
Typical cost: ~$10–15/month on Railway for Outline, Postgres, and Redis. Outline is free and open source (BSL); Outline Cloud is $19/user/month, which climbs fast for a team.
How It Compares
| Outline (self-hosted) | Notion | Confluence | BookStack | |
|---|---|---|---|---|
| Cost model | Flat infra | Per user/month | Per user/month | Flat infra |
| Real-time editing | Yes | Yes | Yes | No |
| Search | Fast full-text | Good | Good | Basic |
| Data ownership | Full — your infra | Vendor | Vendor | Full |
| Login | SSO/OAuth only | Managed | Managed | Password + SSO |
| Self-hostable | Yes | No | No | Yes |
Notion and Confluence are polished but bill per user and keep your knowledge on their servers. BookStack is a simpler self-hosted wiki without real-time editing. Outline's edge is a genuinely Notion-class experience — real-time collaboration, fast search, a clean editor teams enjoy — self-hosted with full data ownership, at flat cost. The one trade-off is that sign-in is SSO-only by design.
Deploy in Under 5 Minutes
- Click Deploy on Railway — Outline, PostgreSQL, and Redis build and wire together (~3 minutes)
- Confirm
URLis your Railway domain andSECRET_KEY/UTILS_SECRETare set - Choose an auth provider and create its OAuth app (Google is quickest; OIDC works with Authentik/Keycloak)
- Add the provider's client ID and secret, with redirect URI
https://your-domain/auth/.callback - Open your Railway domain, sign in with the provider, and the first user becomes admin
You can't log in before step 3–4 — the auth provider is required, not optional.
Common Use Cases
- Team wiki and knowledge base — a fast, searchable home for docs, runbooks, and processes
- Notion alternative with data ownership — the Notion experience without your content on a vendor's servers
- Internal documentation — nested collections, Markdown, and slash commands for engineering and ops docs
- Meeting notes and specs — collaborative documents your whole team can edit live and search instantly
- Public docs site — publish selected collections externally while keeping the rest private
Configuration
| Variable | Required | Description |
|---|---|---|
URL | Required | Your Railway public domain — used for OAuth callbacks and links |
SECRET_KEY | Required | 32-byte hex (openssl rand -hex 32) — encrypts data; keep stable |
UTILS_SECRET | Required | 32-byte hex — internal utilities secret; keep stable |
DATABASE_URL | Auto-injected | PostgreSQL connection via Railway reference variable |
REDIS_URL | Auto-injected | Redis connection via Railway reference variable |
PGSSLMODE | Pre-set | disable — for Railway's internal Postgres connection |
FILE_STORAGE | Pre-set | local — uploads on the volume; switch to s3 for a bucket |
OIDC_CLIENT_ID / OIDC_CLIENT_SECRET | Per provider | OAuth credentials for your chosen provider (or GOOGLE_*, SLACK_*, etc.) |
SMTP_* | Optional | Email settings for invitations and notifications |
> You must set up an auth provider — Outline has no password login. After deploy you can't sign in until you configure OAuth (Google, Slack, Microsoft, Discord, GitHub, or OIDC). Add the client ID/secret and set the redirect URI to https://your-domain/auth/.callback.
> URL must match your domain; keep the secrets stable. OAuth redirects build from URL. SECRET_KEY and UTILS_SECRET are generated at deploy and must not change once you have data.
Dependencies for Outline Hosting
- Railway account — ~$10–15/month for Outline, Postgres, and Redis
- PostgreSQL and Redis (both included and wired)
- An OAuth provider (Google, Slack, Microsoft, Discord, GitHub, or OIDC) — required for login
- A persistent volume for local file storage (included); optional S3 bucket instead
Deployment Dependencies
- Outline GitHub Repository
- Outline Documentation
- OIDC Authentication Guide
- Railway Private Networking
Implementation Details
The template runs the official Outline image (docker.getoutline.com/outlinewiki/outline) on port 3000, backed by Railway PostgreSQL for documents, users, and search, and Redis for caching and WebSocket-based real-time collaboration, all over the private network with PGSSLMODE=disable for the internal Postgres connection.
Outline requires an external authentication provider — no built-in password login by design — so at least one OAuth provider must be configured with its credentials and a redirect URI of https:///auth/.callback before anyone can sign in. URL is set to the Railway domain so callbacks and links resolve, and SECRET_KEY and UTILS_SECRET (32-byte hex) are generated at deploy and must stay stable. File uploads use local storage on a volume (FILE_STORAGE=local), avoiding the S3/MinIO service older setups required; switching to s3 remains available. Documents and collections persist in PostgreSQL — the component to back up.
Frequently Asked Questions
Why can't I log in after deploying? Outline has no username/password login by design — you must configure an OAuth provider first. Set up Google, Slack, Microsoft, Discord, GitHub, or OIDC, add its client ID and secret, and set the redirect URI. Then you can sign in.
Which auth provider is easiest? Google is usually quickest to set up. For a self-hosted identity provider, generic OIDC works with Authentik, Keycloak, or Pocket ID — useful if you already run one.
Do I need an S3 bucket? No. This template uses local file storage on a volume, so there's no MinIO or S3 to configure. You can switch to s3 later if you want object storage.
What are SECRET_KEY and UTILS_SECRET? Required 32-byte random hex values that encrypt data and secure internal utilities. The template generates them; keep them stable once you have data, or encrypted content breaks.
Does my content persist? Yes. Documents, users, and collections live in PostgreSQL, and uploaded files on the volume — both survive redeploys. Back up Postgres regularly.
How does it compare to Notion? A similar experience — real-time editing, fast search, clean UI — but self-hosted with full data ownership and no per-user fee. The main difference is SSO-only sign-in.
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 get a fast, self-hosted team wiki with the setup handled — PostgreSQL and Redis wired, local file storage so there's no S3 to configure, the secrets generated, and clear guidance on the OAuth provider you'll need to sign in. A Notion-class knowledge base with full data ownership, on infrastructure you own.
Template Content