How to Migrate from Confluence to Outline
·OSSAlt Team
confluenceoutlinemigrationwikiguide
How to Migrate from Confluence to Outline
Outline has a native Confluence importer — making it the easiest Confluence migration path among open source wiki tools. Export your Confluence spaces, upload to Outline, and your pages transfer with formatting intact.
What Transfers
| Content | Status |
|---|---|
| ✅ Pages and hierarchy | Native import |
| ✅ Text formatting | Well preserved |
| ✅ Images | Imported |
| ✅ Tables | Supported |
| ✅ Code blocks | Supported |
| ✅ Links between pages | Internal links mapped |
| ⚠️ Macros | Some need manual cleanup |
| ⚠️ Attachments | Most import, large files may need re-upload |
| ❌ Comments | Not preserved |
| ❌ Page history/versions | Not preserved |
Step 1: Export from Confluence
- Go to your Confluence space → Space Settings
- Click Content Tools → Export
- Select HTML or XML export
- Choose Full Export
- Download the ZIP file
Repeat for each space you want to migrate.
Step 2: Deploy Outline
git clone https://github.com/outline/outline.git
cd outline/docker
cp .env.sample .env
# Configure: DATABASE_URL, REDIS_URL, SECRET_KEY, URL, AUTH provider
docker compose up -d
Requirements: PostgreSQL, Redis, S3 storage (MinIO), auth provider (OIDC/Google/Slack).
Step 3: Import via Native Importer
- Open Outline → Settings → Import
- Select Confluence as the source
- Upload the exported ZIP file
- Outline processes the export and creates documents
Pages maintain their hierarchy as nested documents within a collection.
Step 4: Organize Collections
Map Confluence spaces to Outline collections:
| Confluence | Outline |
|---|---|
| Space | Collection |
| Page tree root | Top-level documents |
| Child pages | Nested documents |
| Labels | Tags (manual) |
| Templates | Document templates |
Step 5: Set Up Auth and Permissions
Configure OIDC (Keycloak, Authentik, Google):
OIDC_CLIENT_ID=outline
OIDC_CLIENT_SECRET=your-secret
OIDC_AUTH_URI=https://auth.yourdomain.com/authorize
OIDC_TOKEN_URI=https://auth.yourdomain.com/token
OIDC_USERINFO_URI=https://auth.yourdomain.com/userinfo
OIDC_DISPLAY_NAME=SSO Login
Set collection-level permissions for team access control.
Step 6: Handle Confluence Macros
| Confluence Macro | Outline Handling |
|---|---|
| Code block | ✅ Preserved |
| Info/Note/Warning | Convert to blockquote or callout |
| Table of contents | Auto-generated sidebar |
| Jira links | Convert to plain URLs |
| Page include | Link to document instead |
| Draw.io | Export as image, embed |
| Expand | Not supported (flatten) |
Cost Savings
| Team Size | Confluence Standard | Outline Self-Hosted | Savings |
|---|---|---|---|
| 10 users | $61/month | $15/month | $552/year |
| 50 users | $303/month | $30/month | $3,276/year |
| 100 users | $578/month | $50/month | $6,336/year |
Migration Timeline
| Week | Task |
|---|---|
| Week 1 | Deploy Outline, import Confluence spaces |
| Week 2 | Clean up macros, organize collections, set up auth |
| Week 3 | Invite team, run both platforms |
| Week 4 | Primary docs move to Outline, sunset Confluence |
Compare wiki platforms on OSSAlt — editing experience, import support, and self-hosting side by side.