selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
outline-docker-compose logo

Self-host outline-docker-compose

Docker Compose bundle for an Outline wiki with OIDC login

Open SourceBSD-3-Clause
Updated2 years ago
LanguageShell
Setup difficultyModerate
Stars
864
Port
80 (nginx front container inside the stack; published to the host as ${HTTP_IP}:${HTTP_PORT_IP}, default 127.0.0.1:8888)
Requires
Nginx, Oidc-server, PostgreSQL, Redis
Install with Docker Compose
outline-docker-compose screenshot 1outline-docker-compose screenshot 2outline-docker-compose screenshot 3outline-docker-compose screenshot 4outline-docker-compose screenshot 5outline-docker-compose screenshot 6

What is outline-docker-compose?

This repository packages a complete self-hosting setup for the Outline wiki: a generated docker-compose file brings up the Outline app together with PostgreSQL, Redis, an optional MinIO bucket store, a bundled OIDC identity server for user accounts, and an nginx front container. A sample shell config plus a bash script fill in the settings and generate the secret keys for you, and make install creates the compose configuration, starts the stack, registers an OIDC client for Outline and seeds a superuser. Users then sign in through the included OIDC server instead of Slack or Google, and new accounts are added in its admin page; login emails can be restricted to chosen domains with ALLOWED_DOMAINS. From Outline 0.72.0-1 onward, avatars and attachments can be kept in the container's own filesystem by setting FILE_STORAGE to local, which takes the MinIO services out of the stack. Everyday operations are make start, make stop, make logs, make clean and make clean-data, and a sample nginx server block shows how to terminate TLS in front of the deployment. The last commit dates from December 2023 and the pinned wiki image is 0.72.0-3, so it is a fixed snapshot rather than a maintained upstream tracker.

Should you self-host outline-docker-compose?

outline-docker-compose scores 46/100 on selfhost.directory (how scoring works) and ranks #24 of 31 in Wikis. It has 864 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. It is BSD-3-Clause-licensed and written mostly in Shell.

Its closest alternative on selfhost.directory is outline (78/100, 41 093 stars). It scores higher overall, so compare the two before you pick. See outline-docker-compose vs outline side by side.

Features

  • Automatic configuration and secret generation
  • Bundled OIDC authentication server
  • Docker Compose deployment stack
  • Email domain allowlist
  • Makefile lifecycle commands
  • Reverse-proxy and TLS sample config
  • Shared Docker network option
  • User Management

outline-docker-compose README

How to install outline-docker-compose

Install outline-docker-compose with Docker Compose

docker-compose (falls back to `docker compose`)
git clone https://github.com/vicalloy/outline-docker-compose.git
cd outline-docker-compose
cp scripts/config.sh.sample scripts/config.sh
# update config file: vim scripts/config.sh
make install  # Create a docker-compose config file and start it. Initializing the oidc-server(add oidc client for outline and create a superuser).

make install generates the docker-compose configuration, starts the stack and initializes the oidc-server (adds an OIDC client for Outline and creates a superuser). Then open http://127.0.0.1:8888 to log in.

How to configure outline-docker-compose

  • ALLOWED_DOMAINSThe domain in you email. Comma separated list of domains to be allowed (optional). If not set, the first user's domain is allowed by default.

    The domain in you email. Comma separated list of domains to be allowed (optional). If not set, the first user's domain is allowed by default.

  • DEFAULT_LANGUAGEen_USThe default interface language. See translate.getoutline.com for a list of available language codes and their rough percentage translated.

    The default interface language. See translate.getoutline.com for a list of available language codes and their rough percentage translated.

  • DJANGO_SECRET_KEY
  • FILE_STORAGElocalOutline Wiki 0.72.0-1 supports local file storage. Specify what storage system to use. Possible value is one of "s3" or "local". For "local", the avatar images and document attachments will be saved on local disk.

    Outline Wiki 0.72.0-1 supports local file storage. Specify what storage system to use. Possible value is one of "s3" or "local". For "local", the avatar images and document attachments will be saved on local disk.

  • FORCE_HTTPSfalse
  • HTTP_IP127.0.0.1Nginx The nginx bind ip and port. If you use ip address to access outline, this ip and port should be same as the URL. If this server behind a proxy(nginx), you can bind to `127.0.0.1`.

    Nginx The nginx bind ip and port. If you use ip address to access outline, this ip and port should be same as the URL. If this server behind a proxy(nginx), you can bind to `127.0.0.1`.

  • HTTP_PORT_IP8888
  • LANGUAGE_CODEen-ushttps://docs.djangoproject.com/en/2.2/ref/settings/#language-code

    https://docs.djangoproject.com/en/2.2/ref/settings/#language-code

  • MINIO_ACCESS_KEYSecret keys, update by script. You shouldn't edit it.

    Secret keys, update by script. You shouldn't edit it.

  • MINIO_MC_VERSIONRELEASE.2022-11-17T21-20-39Z
  • MINIO_SECRET_KEY
  • MINIO_VERSIONRELEASE.2022-11-17T23-20-09Z
  • NETWORKSoutlinewikiDocker If you server behind a proxy(nginx), and the proxy created by docker. You can use the proxy's network. Set the `NETWORKS` to proxy's network name, and set `NETWORKS_EXTERNAL` to `true` . The sample config for host nginx can be find in `config/sample/nginx_outline.conf`.

    Docker If you server behind a proxy(nginx), and the proxy created by docker. You can use the proxy's network. Set the `NETWORKS` to proxy's network name, and set `NETWORKS_EXTERNAL` to `true` . The sample config for host nginx can be find in `config/sample/nginx_outline.conf`.

  • NETWORKS_EXTERNALfalse
  • OIDC_CLIENT_SECRET
  • OUTLINE_SECRET_KEY
  • OUTLINE_UTILS_SECRET
  • OUTLINE_VERSION0.72.0-3Docker image version

    Docker image version

  • POSTGRES_VERSION15.2-alpine3.17
  • TIME_ZONEUTChttps://en.wikipedia.org/wiki/List_of_tz_database_time_zones

    https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

  • URLhttp://127.0.0.1:8888The url used to vist this web site.

    The url used to vist this web site.

FAQ

I added a new user, but can't log in to Outline

Give the new user an email address, and if that email's domain differs from the admin user's domain, add the domain to the ALLOWED_DOMAINS setting.

More in Documentation Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…