🎬

Video tutorial coming soon.

🗂️ Deploy Outline Wiki — Modern Team Knowledge Base

Deploy Outline Wiki on Ubuntu — a Notion-like team knowledge base with real-time collaboration, full-text search, Markdown editing, and public page sharing.

⚠️ This script is provided for demo and testing purposes only. Not intended for production use.
⚠️ SSO Required: Outline Wiki has no built-in local authentication — you must configure an SSO provider (Google OAuth, Slack, or a self-hosted OIDC like Authentik) before any user can log in.

📦 Resources & Setup Scripts

Grab the automated bash script from GitHub to follow along with the video.

Automated install — one command deploys Outline with PostgreSQL and Redis.
View on GitHub

Quick Install:

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/outline/outline-ubuntu.sh
chmod +x outline-ubuntu.sh
sudo bash outline-ubuntu.sh

Tutorial Steps

1 Download the Script

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/outline/outline-ubuntu.sh

2 Make it Executable

chmod +x outline-ubuntu.sh

3 Run the Installer

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

4 Configure SSO

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

5 Access the Web UI

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

Ports Used

PortPurpose
3000Web UI

Overview

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.

Why Use It

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.

When You Need It

    Who Should Use It

      Real Use Cases

        Main Features

          How to Use After Installation

            Security Best Practices

              Ports and Firewall Notes

              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.

              Backup and Maintenance

                Common Mistakes

                  Troubleshooting

                    Alternatives

                    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.

                    When Not to Use It

                    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 Professional Help

                    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.

                      Contact Us

                      Frequently Asked Questions

                      Why does Outline require SSO? Can I add local username/password login?

                      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.

                      How do I set up Authentik as the SSO provider for Outline?

                      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.

                      How do I control which users can access Outline?

                      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.

                      Can external users (outside my SSO domain) access Outline docs?

                      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.

                      How does the Slack integration work?

                      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.

                      How do I migrate from Confluence to Outline?

                      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.

                      Does Outline support Markdown?

                      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.

                      How do I backup and restore Outline?

                      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.