SelfHostStackOpen-Source Directory

Why Migrate Away from GitBook & Confluence Docs?

GitBook charges $8–$15 per editor seat monthly and gates API access, custom domains, and analytics behind higher tiers. Atlassian Confluence Cloud costs $6–$11/user/month and has a history of aggressive price hikes (20–30% increases announced in 2023–2024). Both platforms store your documentation in proprietary schemas with limited export. Self-hosting BookStack or Outline gives your team unlimited editors, unlimited pages, and full Markdown/WYSIWYG editing at zero per-seat cost — your knowledge base lives in your PostgreSQL instance under your control, with full-text search, granular permissions, and REST API access.

Technical Architecture & Migration Analysis

Confluence Cloud runs on Atlassian's multi-tenant AWS infrastructure with proprietary storage schemas and a REST API that gates advanced features behind Premium/Enterprise tiers. GitBook uses a proprietary content API with per-seat editor pricing and gates custom domains, analytics, and API access behind the Team tier. Both platforms store your content in vendor-controlled databases with limited export options. Self-hosted alternatives use open standards: BookStack stores all content in MySQL with a simple relational schema (pages, chapters, books) and supports full-text search via MySQL FULLTEXT indexes. Outline stores rich-text content as Prosemirror JSON documents in PostgreSQL with Redis for real-time collaboration synchronization. Both provide REST APIs for integration with CI/CD pipelines and automated documentation workflows.

⚠️

When NOT to Migrate (When Staying on GitBook & Confluence Docs Makes Sense)

Self-hosting is not universally the right move. Keep paying for SaaS if your team hits any of these constraints:

  • Your team relies on Atlassian's ecosystem integration (Jira, Bitbucket, Trello) with automated cross-linking and inline Jira issue previews in Confluence pages.
  • You need SAML/SSO with SCIM auto-provisioning for 200+ enterprise users — Confluence Premium includes this, while self-hosted alternatives require separate identity provider setup.
  • Your compliance requirements demand SOC 2 Type II or ISO 27001 certification of the documentation platform vendor — self-hosted tools shift this responsibility to your team.

Real-World Cost Comparison: GitBook & Confluence Docs vs Self-Hosted

Comparing vendor cloud billings against standard Hetzner / DigitalOcean infrastructure costs at scale.

Tier / ScaleGitBook & Confluence Docs CostSelf-Hosted VPS CostEstimated Annual SavingsTechnical Breakdown
Small Team (5 editors)
5 editors, 200 pages, basic search
$40–$75/month (GitBook Team or Confluence Standard)€3.79/month (Hetzner CX22)$430–$850/yearBookStack with unlimited editors at a flat VPS cost.
Growing Team (20 editors)
20 editors, 1,000 pages, custom domain, analytics
$160–$300/month (GitBook Team or Confluence Standard)€7.09/month (Hetzner CX32 for Outline with Redis)$1,800–$3,500/yearOutline with real-time collaboration for 20 editors at a flat rate.
Enterprise (100+ editors)
100 editors, 5,000+ pages, SAML SSO, audit logs
$800–$1,500/month (Confluence Premium or GitBook Enterprise)€14.28/month (Hetzner CPX31 + Keycloak for SAML)$9,400–$17,800/yearSelf-hosted Outline + Authentik for SSO replaces Confluence Premium at 1% of the cost.

Top 2 Recommended Open-Source Replacements

Tested, self-contained, and production-ready. Click any tool to inspect verified docker-compose configurations, hardware sizing, and deployment guides.

BookStack

MIT⭐ 16.2k+

Opinionated, hierarchical wiki with Books > Chapters > Pages structure — purpose-built for team documentation.

Min RAM512 MB
Min CPU1 vCPU
GitHub Repo ↗

✅ Advantages

  • Extremely simple to deploy — two Docker containers with no Redis or queue workers
  • MIT license with zero feature gates — all features available in the free version
  • 16.2k+ GitHub stars with consistent monthly releases and active maintenance

⚠️ Trade-offs / Limitations

  • No real-time collaborative editing — page locking prevents concurrent edits
  • No native Git sync for docs-as-code workflows (requires custom API integration)
  • Basic permission model compared to Confluence's space-level and page-level restrictions

Core Features

Hierarchical Book > Chapter > Page organization for intuitive documentation structure
Built-in WYSIWYG editor with Markdown mode toggle
Full-text search with MySQL FULLTEXT or Elasticsearch backend
Granular role-based permissions (editor, viewer, commenter) at book and page level
Multi-language UI support (30+ languages) out of the box
Image management with drag-and-drop upload and inline editing
API and webhooks for CI/CD documentation pipeline integration

Architecture Notes

Laravel PHP 8.x application with Blade templates and a MySQL/MariaDB backend. Simple two-container architecture (app + DB). Full-text search via native MySQL FULLTEXT indexes or optional Elasticsearch. WYSIWYG and Markdown editor modes available per user preference.

Known Limitations

No real-time collaborative editing (multiple users cannot edit the same page simultaneously). Lacks Git-sync functionality for docs-as-code workflows. The WYSIWYG editor can produce messy HTML when pasting from rich-text sources.

Official Documentation ↗
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    container_name: bookstack
    restart: always
    ports:
      - "6875:80"
    environment:
      PUID: 1000
      PGID: 1000
      APP_URL: https://wiki.yourdomain.com
      DB_HOST: bookstack-db
      DB_PORT: 3306
      DB_DATABASE: bookstackapp
      DB_USERNAME: bookstack
      DB_PASSWORD: secure_bookstack_pass_2026
      MAIL_DRIVER: smtp
      MAIL_HOST: mail.yourdomain.com
      MAIL_PORT: 587
      MAIL_ENCRYPTION: tls
      MAIL_FROM: wiki@yourdomain.com
      MAIL_FROM_NAME: BookStack
    volumes:
      - bookstack_data:/config
    depends_on:
      - bookstack-db
    networks:
      - selfhost_net

  bookstack-db:
    image: mariadb:10.11
    container_name: bookstack-db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_bookstack_pass_2026
      MYSQL_DATABASE: bookstackapp
      MYSQL_USER: bookstack
      MYSQL_PASSWORD: secure_bookstack_pass_2026
    volumes:
      - bookstack_db_data:/var/lib/mysql
    networks:
      - selfhost_net
volumes:
  bookstack_data:
  bookstack_db_data:

🚀 5-Minute Deployment Guide

  1. 1Provision a $3.79/mo Hetzner CX22 VPS with Ubuntu 24.04.
  2. 2Install Docker & Docker Compose: `curl -fsSL https://get.docker.com | sh`.
  3. 3Create directory: `mkdir -p /opt/bookstack && cd /opt/bookstack`.
  4. 4Save docker-compose.yml with a strong DB password.
  5. 5Run `docker compose up -d` and wait 30 seconds for DB initialization.
  6. 6Access the web UI at http://YOUR_VPS_IP:6875 with default credentials (admin@admin.com / password).
  7. 7Change admin password immediately and configure SMTP for email invitations.
  8. 8Set up Caddy reverse proxy for HTTPS on wiki.yourdomain.com.

Recommended Cloud VPS for BookStack

Compare all VPS hosts →
Hetzner Cloud€3.79/mo

CX22 (2 vCPU, 4GB RAM, 40GB NVMe)

Handles 20+ concurrent editors with full-text search.

Deploy on Hetzner →
DigitalOcean$6.00/mo

Basic Droplet (1 vCPU, 1GB RAM)

Sufficient for small teams with under 500 pages.

Claim $200 DO Credit →

Outline

BSL-1.1⭐ 28.4k+

Beautiful, Notion-like collaborative knowledge base with real-time editing, Slack integration, and Markdown-native storage.

Min RAM1024 MB
Min CPU1 vCPU
GitHub Repo ↗

✅ Advantages

  • 28.4k+ GitHub stars — one of the most popular knowledge base projects
  • Beautiful, modern UI that rivals Notion and Confluence in usability
  • Real-time collaborative editing — multiple users can edit the same document simultaneously

⚠️ Trade-offs / Limitations

  • Requires an external OIDC provider (Keycloak, Authentik) — no built-in username/password auth
  • BSL-1.1 license restricts commercial SaaS redistribution (fine for internal use)
  • Higher RAM requirement (1GB+) due to Redis and Node.js runtime

Core Features

Real-time collaborative editing with operational transform (OT) conflict resolution
Native Markdown import/export with Notion-style block editing
Collection-based organization with granular read/write permissions
Native Slack integration for sharing and searching docs from Slack channels
Full-text search with fast PostgreSQL ts_vector indexing
API-first design with comprehensive REST API for integrations
S3-compatible file attachment storage for images and documents

Architecture Notes

Node.js/TypeScript application with React frontend, using PostgreSQL for content storage and Redis for real-time collaboration and caching. Supports S3-compatible object storage for file attachments. Uses Prosemirror for rich-text collaborative editing with operational transform (OT) for concurrent editing.

Known Limitations

BSL-1.1 license restricts commercial competing SaaS offerings (free for internal use). Requires an OIDC or SAML identity provider for authentication — no built-in username/password login. Real-time collaboration requires Redis and adds RAM overhead.

Official Documentation ↗
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  outline:
    image: docker.getoutline.com/outlinewiki/outline:latest
    container_name: outline
    restart: always
    ports:
      - "3000:3000"
    environment:
      NODE_ENV: production
      SECRET_KEY: generate_64_char_secret_key_here
      UTILS_SECRET: generate_64_char_utils_secret_here
      DATABASE_URL: postgres://outline:outline_pass@outline-db:5432/outline
      REDIS_URL: redis://outline-redis:6379
      URL: https://wiki.yourdomain.com
      PORT: 3000
      FILE_STORAGE: s3
      AWS_ACCESS_KEY_ID: your_s3_access_key
      AWS_SECRET_ACCESS_KEY: your_s3_secret_key
      AWS_REGION: us-east-1
      AWS_S3_UPLOAD_BUCKET_URL: https://your-bucket.s3.amazonaws.com
      AWS_S3_UPLOAD_BUCKET_NAME: your-outline-bucket
      AWS_S3_FORCE_PATH_STYLE: "true"
      AWS_S3_ACL: private
    depends_on:
      - outline-db
      - outline-redis
    networks:
      - selfhost_net

  outline-redis:
    image: redis:7-alpine
    container_name: outline-redis
    restart: always
    networks:
      - selfhost_net

  outline-db:
    image: postgres:16-alpine
    container_name: outline-db
    restart: always
    environment:
      POSTGRES_DB: outline
      POSTGRES_USER: outline
      POSTGRES_PASSWORD: outline_pass
    volumes:
      - outline_db_data:/var/lib/postgresql/data
    networks:
      - selfhost_net

volumes:
  outline_db_data:

🚀 5-Minute Deployment Guide

  1. 1Provision a $7.09/mo Hetzner CX32 VPS with Ubuntu 24.04 (4GB RAM recommended).
  2. 2Install Docker & Docker Compose: `curl -fsSL https://get.docker.com | sh`.
  3. 3Set up a MinIO or S3 bucket for file attachments.
  4. 4Set up an OIDC identity provider (e.g. Authentik or Keycloak) for user authentication.
  5. 5Create directory: `mkdir -p /opt/outline && cd /opt/outline`.
  6. 6Generate secrets: `openssl rand -base64 48` for SECRET_KEY and UTILS_SECRET.
  7. 7Save docker-compose.yml with all environment variables and run `docker compose up -d`.
  8. 8Configure Caddy reverse proxy for HTTPS on wiki.yourdomain.com.

Recommended Cloud VPS for Outline

Compare all VPS hosts →
Hetzner Cloud€7.09/mo

CX32 (4 vCPU, 8GB RAM, 80GB NVMe)

Recommended for Outline due to Redis and Node.js memory needs.

Deploy on Hetzner →
DigitalOcean$24.00/mo

Premium Droplet (2 vCPU, 4GB RAM)

Good for teams needing low-latency US-East access.

Claim $200 DO Credit →

Quick Specification Matrix

ToolLicenseMin RAMMin CPUGitHub RepoPrimary Advantage
GitBook & Confluence Docs (Proprietary)Proprietary ClosedManaged CloudManaged CloudN/ATurnkey onboarding with vendor lock-in & paywalls
BookStackMIT512 MB1 vCPUBookStackApp/BookStackExtremely simple to deploy — two Docker containers with no Redis or queue workers
OutlineBSL-1.11024 MB1 vCPUoutline/outline28.4k+ GitHub stars — one of the most popular knowledge base projects

Performance Benchmarks & Hard Operational Limits

Real-world operational trade-offs, resource consumption limits, and measured throughput.

Benchmark MetricGitBook & Confluence Docs BaselineSelf-Hosted Alternative MetricOperational Bottleneck / LimitSource
Page Load Latency (Cold Start)1,200–3,000ms (Confluence Cloud initial page load)200–600ms (BookStack on NVMe VPS)TTFB depends on geographic distance to the VPS and database query complexity.BookStack Performance Docs
Full-Text Search Latency (10,000 pages)300–800ms (Confluence Cloud search)50–200ms (BookStack MySQL FULLTEXT or Outline PostgreSQL ts_vector)Search index rebuild time after bulk page imports.Production Test
Concurrent Collaborative Editors (Same Page)50+ (Confluence Cloud real-time)10–20 (Outline OT via Redis)Redis pub/sub throughput and OT conflict resolution overhead.Production Test

Frequently Asked Questions

Practical deployment, migration, and maintenance answers.

Can BookStack or Outline replace Confluence for a 50-person engineering team?

Yes. BookStack handles 50+ concurrent editors well on a single VPS, with role-based permissions for different team groups. Outline supports real-time collaborative editing, which is closer to Confluence's editing experience. The main gap is Atlassian ecosystem integration (Jira/Bitbucket links) — you'll need to use direct URLs instead of embedded issue previews.

Does Outline require a separate identity provider (OIDC)?

Yes. Outline does not support username/password authentication natively — it requires an OIDC provider for user authentication. Popular self-hosted options include Authentik, Keycloak, or Casdoor. This adds an extra container to your stack but provides SSO across all your self-hosted tools.

Can I import existing Confluence pages into BookStack?

Yes. BookStack supports XML import from Confluence exports. Export your Confluence space as XML (Space Settings > Content Tools > Export), then import via BookStack's built-in import tool. For large spaces, the import may take several minutes depending on page count and attachment sizes.

How do permissions work in BookStack vs Confluence?

BookStack supports three permission levels: Owner, Editor, and Viewer, assignable at the Book, Chapter, or Page level. Confluence offers Space-level and Page-level permissions with more granular control (e.g. restrict to specific user groups). BookStack's model is simpler but covers 90% of team documentation use cases.

Is Outline's BSL-1.1 license a problem for internal company use?

No. BSL-1.1 allows free use for any purpose, including commercial internal use, for the first 4 years. The restriction only applies to offering Outline as a competing hosted SaaS service. Your team can use Outline internally without any license concerns.

Can I sync BookStack documentation with Git for version control?

BookStack does not have native Git sync, but you can use the REST API to build a custom sync pipeline. Several community projects (e.g. bookstack-export) export BookStack pages to Markdown files in a Git repository. For docs-as-code workflows, Outline's Markdown-native export makes Git syncing more straightforward.

Starter Stack Pack — $29

Skip the setup: get the production-ready stack

Don't stitch together configs from five different READMEs. Get all 5 production-hardened Docker Compose stacks — Postgres, Redis, SSL auto-renewal, and backup scripts — ready to deploy in minutes.

n8nVisual workflow automation
📊UmamiPrivacy-first web analytics
🛡️Uptime KumaUptime monitoring & alerts
🔐VaultwardenBitwarden-compatible vault
☁️NextcloudDropbox/Drive replacement
Get the Stack Pack — $29 →

One-time purchase · Instant download · Production-ready

esc
navigate open