Getting Started with AWS

In this guide, we will walk through a simple, straightforward, setup on AWS EC2. Outline comes with images for a Postgres DB instance, as well a Minio for file storage.

For production deployments, we highly recommend you use something like RDS and S3 for these purposes. This can be done during the initial install process or configured after setup is complete.

Spin up a new EC2 instance

  1. Choose Launch Instance from the EC2 dashboard.

  2. Select Ubuntu. Outline should work on any modern version.

  3. Select an instance type of t2.small or higher.

  4. Set the network security groups for ports 22, 80, 443, and 3000. Set sources set to 0.0.0.0/0 and ::/0, and click Review and Launch.


    EC2 Setup

    EC2 Setup


  5. On the next screen, click Launch to start your instance.


Set up your DNS and other services

  1. Before proceeding, go to your DNS provider and provision a subdomain where you would like to locate your Outline instance. For example docs.mycompany.com. Point this subdomain at the public IPv4 address of your EC2 instance.

  2. If you're planning on using a managed database and file storage (like RDS and S3), this would be a good time to provision those as well:

    1. Our setup guide for S3

    2. Our setup guide for RDS


Configure your EC2 instance and start Outline

  1. From your command line tool, SSH into your EC2 instance. You will need to clone this repository into your instance, so we recommend you use SSH agent forwarding

  2. Clone this repo on your instance: git clone git@github.com:outline/outline-onprem.git.

  3. Go into the cloned repo directory: cd outline-onprem.

  4. Run ./install.sh. This will install Docker and Docker Compose, and initialize some configuration files to be edited later.

  5. Follow the instruction prompts. You will be asked to provide your provisioned subdomain at the end of this process.

  6. Run sudo docker-compose pull to download images.

  7. Open the configuration file docker.env and add your license key as the value for the variable LICENSE_KEY. If you don't yet have a key because you're setting up a proof-of-concept or a trial, set the value to trial.

  8. If you are using your own database and/or file storage, open docker.env and modify the Postgres and S3 related configuration values.

  9. Run ./database-setup.sh to initialize your database.

  10. Now you're read to start your Outline server with: sudo docker-compose up -d.

  11. Navigate to your server's address in a web browser. You will see a login screen with a placeholder Slack authentication method.

  12. To configure authentication for your org, open docker.env and add your keys there for the identity providers you will be using.