Outline vs BookStack: Choosing a Self-Hosted Wiki
Team wikis are critical infrastructure for any organization storing documentation, runbooks, policies, and reference material. Two self-hosted options dominate: Outline (modern block editor, real-time collaboration, Notion-like) and BookStack (structured book/chapter/page hierarchy, simpler, longer track record). Both are excellent; the choice depends on your team's preferences.
Photo by Shiromani Kant on Unsplash
Outline
Outline is a modern wiki that feels closest to Notion among self-hosted options. The editor uses a block-based, keyboard-first approach. Real-time collaboration lets multiple people edit the same document simultaneously.
Key features:
- Block-based rich text editor (similar to Notion)
- Real-time collaborative editing
- Collections (project-level groupings) with nested documents
- Powerful search
- Slack, GitHub, Figma, and other integrations
- Read-only public sharing
- Comments and mentions
- OAuth2/SAML SSO
Deployment (requires Redis, PostgreSQL, and an S3-compatible object store):
services:
outline:
image: outlinewiki/outline:latest
restart: always
environment:
NODE_ENV: production
SECRET_KEY: change-this-to-64-char-hex
UTILS_SECRET: change-this-too
DATABASE_URL: postgres://outline:password@outline-db/outline
REDIS_URL: redis://outline-redis:6379
URL: https://wiki.yourdomain.com
PORT: 3000
# S3 for file attachments
AWS_ACCESS_KEY_ID: your-key-id
AWS_SECRET_ACCESS_KEY: your-secret
AWS_REGION: us-east-1
AWS_S3_UPLOAD_BUCKET_NAME: outline-bucket
AWS_S3_UPLOAD_BUCKET_URL: https://your-minio:9000
# Authentication (Slack, Google, or custom)
SLACK_CLIENT_ID: ...
SLACK_CLIENT_SECRET: ...
ports:
- 3000:3000
depends_on:
- outline-db
- outline-redis
outline-db:
image: postgres:15
environment:
POSTGRES_USER: outline
POSTGRES_PASSWORD: password
POSTGRES_DB: outline
volumes:
- outline-db:/var/lib/postgresql/data
outline-redis:
image: redis:7-alpine
volumes:
outline-db:
Outline requires an S3-compatible object store (AWS S3, MinIO, Cloudflare R2) for file attachments and images. MinIO is commonly used for fully self-hosted setups.
Authentication: Outline requires an OAuth2 provider — it doesn't have built-in email/password authentication (community edition). Options: Slack, Google, GitHub, Azure AD, or any OIDC provider (Authentik, Keycloak).
This extra setup complexity is Outline's main drawback.
BookStack
BookStack has a more opinionated structure: Books → Chapters → Pages. Every page lives within a chapter, which lives within a book. This hierarchy encourages well-organized documentation.
Key features:
- Book/chapter/page hierarchy
- Rich text editor (TinyMCE) and Markdown support
- Drawing.io diagrams embedded in pages
- Page templates
- Full-text search
- Built-in email/password authentication (plus OAuth2, LDAP, SAML)
- Webhooks
- Read-only public sharing
- API
Deployment (simpler than Outline):
services:
bookstack:
image: lscr.io/linuxserver/bookstack:latest
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
TZ: America/Los_Angeles
APP_URL: https://wiki.yourdomain.com
APP_KEY: change-this-32-char-key
DB_HOST: bookstack-db
DB_PORT: 3306
DB_USERNAME: bookstack
DB_PASSWORD: change-this
DB_DATABASE: bookstack
# Email
MAIL_DRIVER: smtp
MAIL_HOST: smtp.example.com
MAIL_PORT: 587
MAIL_FROM: [email protected]
ports:
- 6875:80
volumes:
- ./bookstack-data:/config
depends_on:
- bookstack-db
bookstack-db:
image: lscr.io/linuxserver/mariadb:latest
environment:
PUID: 1000
PGID: 1000
MYSQL_ROOT_PASSWORD: root-password
MYSQL_DATABASE: bookstack
MYSQL_USER: bookstack
MYSQL_PASSWORD: change-this
volumes:
- ./bookstack-db:/config
BookStack includes its own authentication with email/password — no external OAuth2 provider required. This simplifies initial setup significantly.
Comparison
| Feature | Outline | BookStack |
|---|---|---|
| Editor style | Block/Notion-like | Rich text + Markdown |
| Real-time collab | ✓ | ✗ |
| Authentication | OAuth2 required | Built-in email/password |
| Structure | Collections + nested docs | Books / Chapters / Pages |
| S3 requirement | Yes | No |
| Drawing.io | Via embed | Built-in |
| API | ✓ | ✓ |
| Resource usage | Higher (Node.js) | Lower (PHP) |
| Setup complexity | Higher | Lower |
Which to Choose
Choose Outline if:
- Your team uses Slack or Google Workspace (simple OAuth2 setup)
- You want real-time collaborative editing
- You prefer Notion-style flexible document organization
- You have S3-compatible storage available (or want MinIO)
Choose BookStack if:
- You want simpler setup with built-in authentication
- You prefer a structured hierarchy (book → chapter → page)
- You're hosting for a small team or homelab with lower complexity
- You want a longer-proven, more stable project
Both are excellent. For homelabs without existing OAuth2 infrastructure: BookStack is the faster path to a working wiki. For teams already using Slack/Google: Outline provides a better collaborative experience.
Alternative: Wiki.js
For completeness: Wiki.js is a third strong option. More complex than BookStack, supports more authentication methods than Outline, includes a git-backed storage option. Worth evaluating if neither Outline nor BookStack is a perfect fit.
