Outline
Overview
Outline is a modern team knowledge base and wiki platform deployed as part of the Mondo Open Platform Service (MOPS). This document covers the deployment and configuration of Outline using Docker Compose with Traefik as a reverse proxy.
Service Details
Component | Value |
---|---|
URL | https://wiki.trymondo.com |
Image | outlinewiki/outline:0.82.0 |
Database | PostgreSQL 17.4 |
Cache | Redis 7.4.2 |
Networks | traefik-net, outline-net |
Architecture
Outline is deployed as a multi-container application with the following components:
- Outline: Main application container serving the wiki interface and API
- PostgreSQL: Database for storing wiki content, users, and metadata
- Redis: In-memory cache for improved performance
Prerequisites
- Docker Engine (24.0+)
- Docker Compose v2
- Traefik reverse proxy configured and running
- External networks:
traefik-net
andoutline-net
- DNS configured for
wiki.trymondo.com
- Auth0 or other compatible OIDC provider
- SMTP credentials for email notifications
Deployment Configuration
Environment Variables
Create a .env
file with the following variables:
Generate secure, random strings for OUTLINE_SECRET_KEY and OUTLINE_UTILS_SECRET. These are used to encrypt sensitive data and sign sessions.
You can generate secure random strings with: bash openssl rand -hex 16
Docker Compose File
Network Configuration
Before deployment, ensure the required networks exist:
Deployment Instructions
-
Create the deployment directory structure:
-
Create the configuration files:
-
Deploy the service:
-
Verify the services are running:
-
Access Outline at
https://wiki.trymondo.com
and sign in using your Auth0 credentials.
Auth0 Configuration
Before deploying Outline, you need to configure Auth0:
- Create a new application in Auth0
- Set the application type to “Regular Web Application”
- Configure the following URLs:
- Allowed Callback URLs:
https://wiki.trymondo.com/auth/oidc.callback
- Allowed Logout URLs:
https://wiki.trymondo.com
- Allowed Callback URLs:
- Note the Client ID and Client Secret for the
.env
file
Traefik Integration
Outline is configured with the following Traefik settings:
- Host Rule:
wiki.trymondo.com
- Entrypoint: websecure (HTTPS)
- TLS: Enabled with production certificate resolver
- Backend Port: 3000
- Middleware: secureHeaders for enhanced security
Configuration Highlights
File Storage
Outline is configured to use local file storage with the following settings:
- Storage Directory:
/opt/outline/storage
- Maximum Upload Size: 25MB (26,214,400 bytes)
- Storage Path: Mounted to
./data/uploads
on the host
Database Connection Pool
PostgreSQL connection pooling is configured for optimal performance:
- Minimum Connections: 2
- Maximum Connections: 10
Maintenance
Backup Strategy
Back up Outline regularly using the following steps:
!!! note Consider scheduling regular backups using cron and storing them offsite.
Updates
To update Outline:
-
Update the image tag in
docker-compose.yml
-
Apply the update:
-
Check logs for any issues:
Always back up your data before updating Outline to a new version.
Troubleshooting
Auth0 Connection Issues
If you can’t sign in with Auth0:
-
Verify Auth0 configuration:
- Check the callback URL in Auth0
- Verify Client ID and Secret in
.env
-
Check Outline logs for auth errors:
Database Connection Problems
If Outline can’t connect to the database:
-
Verify PostgreSQL container is running:
-
Check database logs:
-
Test database connection:
File Upload Issues
If file uploads aren’t working:
-
Check permissions on the upload directory:
-
Verify the user ID matches what’s in the
docker-compose.yml
file: -
Check for storage-related errors in logs:
User Management
Adding Users
Outline uses Auth0 for authentication, so users are managed through Auth0:
- Users must be able to sign in through Auth0
- On first login, users will be created in Outline
- Admin users can promote others to admin through the Outline UI
Setting Up Teams
To organize users into teams:
- Sign in as an admin
- Go to Settings > Teams
- Create new teams and invite members by email
Document Structure
Outline uses a hierarchical document structure:
- Collections: Top-level containers for related documents
- Documents: Individual wiki pages within collections
- Sections: Hierarchical organization within documents
Integration Examples
Slack Integration
To integrate Outline with Slack:
- Go to Settings > Integrations
- Click on Slack and follow the configuration steps
- Users will be able to share and search Outline documents directly from Slack
API Usage
Outline provides a REST API for integration with other systems:
- Generate an API token in Settings > API Tokens
- Use the token to authenticate API requests:
Additional Resources
- Official Outline Documentation
- Outline GitHub Repository
- Auth0 Documentation
- PostgreSQL Documentation
- Traefik Documentation
Best Practices
- Enable regular backups of database and uploads
- Monitor disk space usage on the uploads directory
- Update Outline regularly for security patches
- Use document templates for consistent content
- Organize collections by team or project area
Was this page helpful?