Self-hosting8 min read

Outline: Self-Hosted Wiki on VPS, Alternative to Notion

Bending Spoons' acquisition of Airtable in August 2026 renewed distrust of SaaS vendors that pivot. In this context, Outline is back on the radar as an alternative to Notion and Confluence: elegant Markdown rendering, real-time editing, granular permissions. Before deploying, one point deserves attention — its BSL 1.1 licence is not open source in the OSI sense, and that distinction changes what you can or cannot do with it.

Why Outline over Notion or Confluence on a VPS

Notion and Confluence share the same structural flaw: their pricing scales with the number of seats, and it climbs as the team grows. Confluence Cloud charges per monthly active user, and Notion has bundled its AI module into recent plans without an opt-out. For a 20-person team on Notion Business, the bill quickly reaches several hundred dollars a month — for a wiki where you control neither the data, the roadmap, nor the date of the next acquisition.

Outline breaks this logic. Hosted on your own VPS, the cost is fixed: you pay for the server, not each additional collaborator. The rendering is polished — clean typography, syntax-highlighted code blocks, embedded images, tables — and simultaneous editing works via WebSockets. Full-text search is indexed directly in PostgreSQL: no external service, no additional cost. For a technical team of 10 to 50 people, it offers an excellent quality/cost ratio in the self-hosted wiki market.

The Airtable acquisition by Bending Spoons is not a side note. Bending Spoons is known for acquiring popular SaaS tools and reshaping their economics — Evernote, Meetup, WeTransfer. When your company documentation relies on a third-party SaaS, such an operation can mean a price increase, degraded free-tier features, or a pivot incompatible with your use case. Hosting Outline on your own infrastructure removes this reversal risk.

What Outline delivers concretely

  • Real-time Markdown rendering — the editor looks like Notion without proprietary blocks
  • Collaborative editing — multiple writers on the same document via WebSockets and Redis
  • Permissions per collection and group — read-only, comment, edit, admin
  • Full-text search — indexed on PostgreSQL, operational from installation
  • Attachments and images — S3-compatible storage (MinIO, Backblaze B2, AWS S3)
  • Documented REST API — integratable into your CI/CD pipelines or automation scripts
  • Import from Notion, Confluence and Markdown — friction-free migration

BSL 1.1 licence: Outline is not open source

This is the point that most comparisons gloss over. Outline is published under the Business Source License 1.1 (BSL 1.1). On its own GitHub page, the licence is described as "not an Open Source license" — this is not an interpretation, it is the authors' own wording.

In practice, BSL 1.1 prohibits one specific use: offering Outline as a document service to third parties. If you are a software vendor and want to provide an Outline wiki to your customers as a paid service, you are outside the licence.

For internal team use — knowledge base, product documentation, runbooks, onboarding — the restriction does not apply. You can self-host freely.

The planned change date to Apache 2.0 is 2030-09-01 (verify in the LICENSE file in the repository before making any decision). At that date, the licence will become fully permissive and allow all uses, including commercial.

Practical summary: if your team uses Outline internally, no problem. If you plan to resell it or offer it as a service to customers, read the licence before deploying.

Outline vs Notion vs Confluence vs Docmost

OutlineNotionConfluenceDocmost
Licence modelBSL 1.1 (→ Apache 2.0 in 2030)Proprietary SaaSProprietary SaaSAGPL-3.0
Self-hostingYes — Docker + VPSNoYes (Data Center, costly)Yes — Docker + VPS
PricingFixed server costPer seat/monthPer active userFixed server cost
Real-time editingYes (WebSockets + Redis)YesYesYes (WebSockets)
Required stackPostgreSQL + Redis + S3N/A (SaaS)PostgreSQL/Oracle + heavy infraPostgreSQL only
Full-text searchIntegrated PostgreSQLYes (SaaS)YesIntegrated PostgreSQL
Import Notion/ConfluenceYesExport onlyExport onlyYes (Notion)
MaturitySince 2019, activeFounded 2016Founded 2004Since 2023

Requirements for hosting Outline on a VPS

Outline consists of three services that must run together.

PostgreSQL stores all documents, users and permissions. It is the only service that persists your wiki's state: a database backup is sufficient to restore everything. Redis handles sessions, WebSockets for real-time editing and background job queues. If Redis goes down, simultaneous editing stops but documents remain readable. S3-compatible storage (self-hosted MinIO, Backblaze B2 or AWS S3) receives attachments and images — without this service, uploads are rejected but everything else works.

Minimum sizing for a team of fewer than 50 people: 2 vCPU, 4 GB RAM, 20 GB SSD disk for the database. A Power VPS (4 vCPU, 8 GB RAM) comfortably covers the full stack with headroom for simultaneous editing spikes.

Host-side software: Docker 24+, Docker Compose v2, a reverse proxy (Nginx or Caddy), a valid TLS certificate. A domain name is required: Outline checks the Host header and refuses direct IP connections.

Deploy Outline with Docker Compose

01

Create the `docker-compose.yml` file

Create a dedicated directory and write the compose file:

mkdir -p /opt/outline && cd /opt/outline

Minimal docker-compose.yml content:

services:
  outline:
    image: outlinewiki/outline:latest
    env_file: .env
    ports:
      - "127.0.0.1:3000:3000"
    depends_on:
      - postgres
      - redis

  postgres:
    image: postgres:15
    env_file: .env
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:7
    volumes:
      - redis_data:/data

volumes:
  postgres_data:
  redis_data:
02

Configure the `.env` file

Generate a secret key and a utility key:

openssl rand -hex 32   # SECRET_KEY
openssl rand -hex 32   # UTILS_SECRET

Essential variables in ‎.env:

SECRET_KEY=<generated-key>
UTILS_SECRET=<generated-key>
DATABASE_URL=postgres://outline:password@postgres:5432/outline
REDIS_URL=redis://redis:6379
URL=https://wiki.yourdomain.com
FORCE_HTTPS=true
PGUSER=outline
PGPASSWORD=password
PGDATABASE=outline
AWS_ACCESS_KEY_ID=<your-s3-key>
AWS_SECRET_ACCESS_KEY=<your-s3-secret>
AWS_REGION=us-east-1
AWS_S3_UPLOAD_BUCKET_NAME=outline-uploads
AWS_S3_UPLOAD_BUCKET_URL=https://s3.amazonaws.com

For authentication, Outline supports OIDC, Slack, Google OAuth and SAML. OIDC configuration is the most versatile for a technical team (Keycloak, Authentik, etc.).

03

Start and initialise the database

docker compose up -d postgres redis
# wait a few seconds for PostgreSQL to start
docker compose run --rm outline yarn db:migrate
docker compose up -d outline

Verify that all three services are running:

docker compose ps
04

Configure the Nginx reverse proxy

Outline listens on port 3000 locally. Example Nginx block:

server {
    listen 443 ssl;
    server_name wiki.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/wiki.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wiki.yourdomain.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

The Upgrade header is essential for WebSockets (real-time editing) to work correctly.

05

Create the first administrator account

Access https://wiki.yourdomain.com from your browser. Outline will guide you through creating your workspace and first account. If you are using OIDC, sign in via your identity provider — the first user automatically becomes an administrator.

To invite colleagues, go to Settings → Members → Invite.

Update Outline without downtime

Outline publishes tagged Docker images. Avoid latest in production: target a specific version (e.g. outlinewiki/outline:0.76.1) and test migrations in staging before applying them.

Update procedure:

docker compose pull outline
docker compose run --rm outline yarn db:migrate
docker compose up -d outline

PostgreSQL migrations are reversible — a database backup before each update remains the safest precaution. The docker compose run --rm outline yarn db:migrate command applies migrations without restarting the web service, allowing you to prepare the database before switching over. On installations with many documents, the migration may take a few seconds: the service remains reachable during this time via the old container version.

When to choose Docmost over Outline

Outline is the right choice if you want polished Markdown rendering comparable to Notion, robust simultaneous editing, and integration with an existing identity provider (OIDC, SAML). Its maturity (since 2019), active community and stability track record are strong arguments for a team building for the long term. Advanced features — document comments, revision history, Slack and Linear integrations — make it the most complete tool in the self-hosted segment.

Docmost is a newer alternative (2023), under the AGPL-3.0 licence — a genuine open source licence in the OSI sense, with no restriction on use as a service. Its stack is lighter (PostgreSQL only, no Redis), which simplifies installation on an entry-level VPS. If licence qualification is a blocking criterion — especially if you are building a SaaS product that would embed a knowledge base accessible to your end users — Docmost deserves parallel evaluation. This article focuses on the choice and licence qualification; for the step-by-step installation guide, see our dedicated Docmost guide.

Both coexist in the self-hosted landscape without directly cannibalising each other: Outline has more advanced features and a more established community, Docmost has a more permissive licence and a simpler stack. The choice depends on your legal context and technical requirements. If you are migrating from Notion and want to preserve your existing hierarchy, Outline is currently the most advanced on import tooling.

Deploy your team wiki on a VPS

A Power VPS (4 vCPU, 8 GB RAM) comfortably covers the full Outline stack — PostgreSQL, Redis and S3 storage — for a team of fewer than 50 people.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.

Message us on WhatsAppopens in a new tab