Favicon of Outline

Outline

Organize internal documentation with a fast, collaborative wiki. Enjoy real-time editing, AI-powered search, Slack integration, and custom branding options.

Bring order to your internal documentation, product specs, and meeting notes with a modern, blazing-fast knowledge base. This platform eliminates the chaos of scattered documents by centralizing your company's collective knowledge.

Enjoy a seamless writing experience with an intuitive markdown editor supporting slash commands and interactive embeds. Work together effortlessly using real-time multiplayer collaboration, complete with inline comments to keep conversations organized.

Key features include:

  • AI-powered search: Instantly find answers across your workspace or ask direct questions to get AI responses.
  • Deep integrations: Connect with tools like Slack, Figma, and Loom to search and share docs directly from chat.
  • Flexible sharing: Share documents publicly or privately, and customize the workspace with your own domain and brand colors.
  • Advanced security: Manage access with granular read/write permissions and user groups.
  • Deployment options: Choose between cloud hosting or self-hosting the open-source version.

Directory Structure

outline
data
minio
postgres
redis
.env
docker-compose.yml

docker-compose.yml

services:
  outline:
    image: outlinewiki/outline:latest
    command: sh -c "yarn db:migrate && yarn start"
    environment:
      - NODE_ENV=production
      - URL=${URL}
      - PORT=3000
      - DATABASE_URL=${DATABASE_URL}
      - REDIS_URL=${REDIS_URL}
      - SECRET_KEY=${SECRET_KEY}
      - UTILS_SECRET=${UTILS_SECRET}
      - AWS_ACCESS_KEY_ID=${MINIO_ACCESS_KEY}
      - AWS_SECRET_ACCESS_KEY=${MINIO_SECRET_KEY}
      - AWS_REGION=us-east-1
      - AWS_S3_UPLOAD_BUCKET_URL=http://minio:9000
      - AWS_S3_UPLOAD_BUCKET_NAME=outline
      - AWS_S3_FORCE_PATH_STYLE=true
      - FILE_STORAGE_UPLOAD_MAX_SIZE=26214400
      # SMTP Settings (Optional but recommended for Magic Links)
      - SMTP_HOST=${SMTP_HOST}
      - SMTP_PORT=${SMTP_PORT}
      - SMTP_USERNAME=${SMTP_USERNAME}
      - SMTP_PASSWORD=${SMTP_PASSWORD}
      - SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL}
      - SMTP_SECURE=true
    ports:
      - "3000:3000"
    depends_on:
      - postgres
      - redis
      - minio

  postgres:
    image: postgres:15-alpine
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 10s
      timeout: 5s
      retries: 5

  redis:
    image: redis:alpine
    volumes:
      - ./data/redis:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

  minio:
    image: minio/minio
    command: server /data --console-address ":9001"
    environment:
      - MINIO_ROOT_USER=${MINIO_ACCESS_KEY}
      - MINIO_ROOT_PASSWORD=${MINIO_SECRET_KEY}
    ports:
      - "9000:9000"
      - "9001:9001"
    volumes:
      - ./data/minio:/data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  # Automatically create the bucket in MinIO
  minio-create-bucket:
    image: minio/mc
    depends_on:
      minio:
        condition: service_healthy
    entrypoint: >
      /bin/sh -c "
      /usr/bin/mc alias set myminio http://minio:9000 ${MINIO_ACCESS_KEY} ${MINIO_SECRET_KEY};
      /usr/bin/mc mb myminio/outline;
      /usr/bin/mc anonymous set public myminio/outline;
      exit 0;
      "

.env

# General Configuration
URL=http://localhost:3000

# Secrets (Generate 32-byte hex strings for these)
SECRET_KEY=generate_a_32_byte_hex_secret_here
UTILS_SECRET=generate_another_32_byte_hex_secret_here

# Database Configuration
POSTGRES_USER=outline
POSTGRES_PASSWORD=strong_postgres_password
POSTGRES_DB=outline
DATABASE_URL=postgres://outline:strong_postgres_password@postgres:5432/outline

# Redis Configuration
REDIS_URL=redis://redis:6379

# Object Storage (MinIO)
MINIO_ACCESS_KEY=minio_access_key
MINIO_SECRET_KEY=minio_secret_key

# SMTP Configuration (Required for email login if OIDC is not used)
SMTP_HOST=smtp.example.com
SMTP_PORT=465
SMTP_USERNAME=your_smtp_username
SMTP_PASSWORD=your_smtp_password
SMTP_FROM_EMAIL=outline@example.com
Categories:

Share:

Ad
Favicon

 

  
 

Similar to Outline

Favicon

 

  
  
Favicon

 

  
  
Favicon