Video tutorial coming soon.
Deploy Outline Wiki on Ubuntu — a Notion-like team knowledge base with real-time collaboration, full-text search, Markdown editing, and public page sharing.
Authentik) before any user can log in.Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/outline/outline-ubuntu.sh
chmod +x outline-ubuntu.sh
sudo bash outline-ubuntu.sh
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/outline/outline-ubuntu.sh
chmod +x outline-ubuntu.sh
Script deploys Outline with PostgreSQL and Redis via Docker Compose. An SSO provider must be configured in the .env file before users can log in.
sudo bash outline-ubuntu.sh
Edit the .env file to configure your SSO provider — Google OAuth, Slack, or a self-hosted OIDC provider like Authentik or Authelia. Outline has no built-in username/password login.
nano /opt/outline/.env
Once SSO is configured and the containers are restarted, navigate to your server IP and log in via your SSO provider. The first user to log in becomes the admin.
http://<your-server-ip>:3000
| Port | Purpose |
|---|---|
| 3000 | Web UI |
Outline is a modern, open-source team wiki and knowledge base that feels closest to Notion among self-hosted options. It uses a block-based editor with slash commands, real-time collaborative editing, a full-text search engine, and a clean minimal UI. Content is organized into collections (like Notion workspaces or Confluence spaces), then documents and sub-documents. Outline integrates natively with Slack for search and link previews, Figma for embedded designs, and dozens of other tools. The key tradeoff: Outline requires an external SSO provider — it has no built-in username/password login.
Confluence charges per user and has become bloated over years of feature additions. Notion stores your data in the cloud with limited self-hosting options. Outline gives you a Notion-quality editing experience on your own server, with real-time collaboration that works without the Notion price tag. The Slack integration makes Outline feel native to teams that already live in Slack — search your wiki directly from Slack and get rich previews when you paste an Outline link.
Outline serves the web UI on port 3000 internally, proxied to 80/443 by your reverse proxy. The PostgreSQL (5432) and Redis (6379) ports must remain internal — never expose them. The S3-compatible storage endpoint (if using MinIO for file uploads) should also be internal. Only ports 80 and 443 need to be publicly accessible via your Nginx or Traefik reverse proxy.
BookStack is more structured (books → chapters → pages hierarchy) and has built-in username/password auth — better for teams without an SSO provider. Docmost is newer and simpler with built-in auth. Confluence (cloud) is the enterprise standard with better integrations but significant cost at scale. GitBook is a documentation-focused alternative with a clean UI. Notion itself has limited self-hosting via unofficial tools. Outline wins for teams that already have SSO and want the closest self-hosted Notion equivalent.
Do not use Outline if you do not have an SSO provider — the setup complexity of configuring OAuth or a self-hosted OIDC just to enable login is not worth it for small teams; use BookStack instead. Outline is also not ideal for public-facing product documentation sites (use MkDocs or GitBook) or for structured technical reference docs with versioning (use GitLab/GitHub wikis or Docusaurus). It is optimized for internal team knowledge sharing with an active SSO infrastructure.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Outline's design philosophy delegates authentication to existing identity providers rather than building its own user management system. This avoids password storage, reset flows, and credential management complexity. Supported SSO options: Google OAuth (simplest for Google Workspace teams), Slack OAuth (simplest for Slack teams), GitHub OAuth, OIDC-compatible providers (Authentik, Authelia, Keycloak, Okta, Azure AD). There is no official local auth option. If you need username/password login without SSO, use BookStack or Docmost instead.
In Authentik, create a new OAuth2/OpenID Connect Provider. Set the redirect URI to `https://your-outline-url/auth/oidc.callback`. Note the Client ID, Client Secret, and the OIDC discovery URL (`https://your-authentik-url/application/o/YOUR_APP/.well-known/openid-configuration`). In Outline's .env, set `OIDC_CLIENT_ID`, `OIDC_CLIENT_SECRET`, `OIDC_AUTH_URI`, `OIDC_TOKEN_URI`, `OIDC_USERINFO_URI`, and `OIDC_DISPLAY_NAME`. Restart Outline and the Authentik login button appears on the sign-in page.
Access is controlled at two levels. First, the SSO provider controls who can authenticate — configure the OAuth application in Google/Slack/Authentik to only allow specific users or groups. Second, within Outline, admins can set user roles (Admin, Member, Viewer) and collection permissions (who can read/edit specific collections). New users who authenticate via SSO are created as Members by default. Admins can suspend accounts from Settings → Members.
Yes — individual documents or entire collections can be made publicly accessible without login. Open a document → Share → Share to web. This generates a public URL that anyone can read without authenticating. Collections can also be marked as publicly listed. This is ideal for public-facing knowledge bases, release notes, or API documentation. Internal documents remain behind SSO unless explicitly shared.
After configuring the Slack integration under Settings → Integrations → Slack, you can: (1) Search Outline documents directly from Slack using `/outline search query`. (2) Paste an Outline URL in Slack to get a rich preview with document title and excerpt. (3) Optionally receive notifications in a Slack channel when documents are published or updated. The integration uses a Slack app you create in the Slack API dashboard — you need the app token and signing secret.
Outline has a built-in Confluence importer. Go to Settings → Import → Confluence. Export your Confluence space as a ZIP (Space Export → HTML), then upload the ZIP to Outline's importer. It creates collections and documents matching the Confluence space structure. Formatting fidelity varies — complex Confluence macros may not transfer perfectly. For large migrations, test with a small space first and plan for manual cleanup of formatting issues.
Yes — Outline uses Markdown internally and supports Markdown import and export. Documents are stored as Markdown in the database. The editor renders Markdown formatting in real time — type `**bold**` and it becomes bold. You can also use slash commands for blocks (type `/` to see options). Export any document as Markdown from the document menu. This makes content portable and easy to version in Git if needed.
Backup: dump the PostgreSQL database (`docker exec outline_db pg_dump -U outline outline > outline.sql`) and backup the file storage volume (MinIO bucket or local volume with uploaded images and attachments). Restore: create a fresh Outline deployment with the same .env (same SECRET_KEY), restore the PostgreSQL dump, restore the file storage. The SECRET_KEY must be identical — changing it invalidates all existing sessions and may break encrypted data.