Recently N8N presented this list of interesting workflow automation software and one of them, Outline, picked my curiosity and I decided to try it out. Here's how I deployed it on my server with docker compose and Traefik as a proxy layer.
Are you interested in how to set up traefik? Find how I configured it on my other article here
What is Outline?
On their website https://www.getoutline.com/, outline presents itself as "Your team’s knowledge base". A tool to basically write any shared written document your organization may need for functioning correctly.
Why hosting it yourself?
If you're an individual who enjoys hosting this kind of software yourself or if you need to cut the cost of SaaS software, this tool seems like a great way to run it without committing to a paid subscription. If you don't have a server already, Digital Ocean have a great offering. Once you find that it became a fundamental tool for your business, you can cut on the management cost by picking a cloud plan hosted by outline directly.
How to install Outline?
To install outline, I opted for a docker compose installation, with secrets managed externally by doppler and pushed when running the docker compose file using doppler run -- .
Here's my docker compose file
As you can see in the x-defaults section I define all the environment variables which I then push into the different services. If you're not using doppler you can set the variables with in the same terminal before you start the dockers.
Another option to load environment variables in the services is to use a .env file like how is done in the original documentation. Here's an example of how it must be https://github.com/outline/outline/blob/main/.env.sample. To load this file replace <<: *defaults for env_file: ./docker.env
The docker file uses two networks, the traefik one for the public facing endpoint and an internal one just for this dockers.
To stay safe online, traefik creates a ssl certificate and exposes your site on the domain specified on the docker labels using https.