diff --git a/.circleci/config.yml b/.circleci/config.yml index edb590a88..8871419be 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -24,6 +24,18 @@ jobs: # We don't run e2e tests on fork PRs because they don't have access to the secret env vars. - run: if [ -z "${CIRCLE_PR_REPONAME}" ]; then ./scripts/e2e.sh; fi + # Check the website that this PR creates for broken links. + website_link_check: + docker: + - image: lkysow/netlify-broken-link-checker:latest + environment: + GITHUB_ORG: runatlantis + GITHUB_REPO: atlantis + MUFFET_ARGS: '-e https://github\.com/runatlantis/atlantis/edit/master/.* -e https://github.com/helm/charts/tree/master/stable/atlantis#customization' + DELAY_SECONDS: 30 + steps: + - run: check-links + # Build and push 'latest' Docker tag. docker_master: working_directory: /go/src/github.com/runatlantis/atlantis @@ -77,6 +89,10 @@ workflows: filters: branches: ignore: /.*-docs/ + - website_link_check: + filters: + branches: + ignore: master - docker_master: requires: [e2e] filters: diff --git a/runatlantis.io/.vuepress/config.js b/runatlantis.io/.vuepress/config.js index ee81209ad..ed5477542 100644 --- a/runatlantis.io/.vuepress/config.js +++ b/runatlantis.io/.vuepress/config.js @@ -34,29 +34,58 @@ module.exports = { {text: 'Blog', link: 'https://medium.com/runatlantis'} ], sidebar: { - '/docs/': [ - '', - 'pull-request-commands', - 'deployment', - 'server-configuration', - 'apply-requirements', - 'locking', - 'autoplanning', - ['atlantis-yaml-reference', 'atlantis.yaml Reference'], - 'upgrading-atlantis-yaml-to-version-2', - 'security', - 'faq', - ], '/guide/': [ '', 'test-drive', 'getting-started', - 'requirements', 'atlantis-yaml-use-cases' + ], + '/docs/': [ + ['', 'Overview'], + { + title: 'Installing Atlantis', + collapsable: true, + children: [ + 'installation-guide', + 'requirements', + 'access-credentials', + 'webhook-secrets', + 'deployment', + 'configuring-webhooks', + 'server-configuration', + 'security' + ] + }, + { + title: 'Using Atlantis', + collapsable: true, + children: [ + ['using-atlantis', 'Overview'] + ] + }, + { + title: 'Customizing Atlantis', + collapsable: true, + children: [ + ['customizing-atlantis', 'Overview'], + 'atlantis-yaml-reference', + 'upgrading-atlantis-yaml-to-version-2', + 'apply-requirements' + ] + }, + { + title: 'How Atlantis Works', + collapsable: true, + children: [ + ['how-atlantis-works', 'Overview'], + 'locking', + 'autoplanning' + ] + } ] }, repo: 'runatlantis/atlantis', docsDir: 'runatlantis.io', editLinks: true, } -} \ No newline at end of file +} diff --git a/runatlantis.io/.vuepress/style.styl b/runatlantis.io/.vuepress/style.styl index f0fd8e7bc..ed600df81 100644 --- a/runatlantis.io/.vuepress/style.styl +++ b/runatlantis.io/.vuepress/style.styl @@ -32,3 +32,7 @@ } } } + +.sidebar-heading { + font-size: inherit +} diff --git a/runatlantis.io/docs/README.md b/runatlantis.io/docs/README.md index da4d83c95..215e12758 100644 --- a/runatlantis.io/docs/README.md +++ b/runatlantis.io/docs/README.md @@ -1,18 +1,14 @@ -# Overview - -This documentation is divided into sections: -* [Pull Request Commands](pull-request-commands.html) - the commands that Atlantis supports via pull request comments. -* [Production-Ready Deployment](deployment.html) - how to deploy Atlantis. -* [Server Configuration](server-configuration.html) - how to configure the Atlantis server. -* [Apply Requirements](apply-requirements.html) - what requirements can be set before `atlantis apply` is allowed. -* [Locking](locking.html) - how and why Atlantis does locking. -* [Autoplanning](autoplanning.html) - how Atlantis runs plan automatically. -* [`atlantis.yaml` Reference](atlantis-yaml-reference.html) - reference docs for the `atlantis.yaml` configuration file. -* [Security](security.html) - what you need to think about in terms of security for Atlantis. -* [FAQ](faq.html) - Frequently asked questions. - - - +# Atlantis Documentation +These docs are for users that are ready to get Atlantis installed and start using it. +:::tip Looking to get started? +If you're new here, check out the [Guide](/guide/) +where you can try our [Test Drive](/guide/test-drive.html) or [Run Atlantis Locally](/guide/getting-started.html). +::: +### Next Steps +* [Installing Atlantis](/docs/installation-guide.html) – Get Atlantis up and running +* [Using Atlantis](using-atlantis.html) – How do I use Atlantis to run Terraform +* [Customizing Atlantis](customizing-atlantis.html) – Modify how Atlantis works for my use case +* [How Atlantis Works](how-atlantis-works.html) – Internals of what Atlantis is doing diff --git a/runatlantis.io/docs/access-credentials.md b/runatlantis.io/docs/access-credentials.md new file mode 100644 index 000000000..0e5d3203d --- /dev/null +++ b/runatlantis.io/docs/access-credentials.md @@ -0,0 +1,46 @@ +# Git Host Access Credentials +This doc describes how to create credentials on your Git host (GitHub, GitLab or Bitbucket) +that Atlantis will use to make API calls. +[[toc]] + +## Create an Atlantis user (optional) +We recommend creating a new user named **@atlantis** (or something close) or using a dedicated CI user. + +This isn't required (you can use an existing user), however all the comments that Atlantis writes +will come from that user so it might be confusing if its coming from a personal account. + + +
An example comment coming from the @atlantisbot user
+ +## Generating an Access Token +Once you've created a new user (or decided to use an existing one), you need to +generate an access token. Read on for the instructions for your Git host. + +### Create a GitHub Token +**NOTE: The Atlantis user must have "Write permissions" (for repos in an organization) or be a "Collaborator" (for repos in a user account) to be able to set commit statuses:** + +- create a Personal Access Token by following [https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token) +- create the token with **repo** scope +- record the access token + +### Create a GitLab Token +- follow [https://docs.gitlab.com/ce/user/profile/personal_access_tokens.html#creating-a-personal-access-token](https://docs.gitlab.com/ce/user/profile/personal_access_tokens.html#creating-a-personal-access-token) +- create a token with **api** scope +- record the access token + +### Create a Bitbucket Cloud (bitbucket.org) App Password +- create an App Password by following [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html#Apppasswords-Createanapppassword](https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html#Apppasswords-Createanapppassword) +- Label the password "atlantis" +- Select **Pull requests**: **Read** and **Write** so that Atlantis can read your pull requests and write comments to them +- record the access token + +### Create a Bitbucket Server (aka Stash) Personal Access Token +- Click on your avatar in the top right and select **Manage account** +- Click **Personal access tokens** in the sidebar +- Click **Create a token** +- Name the token **atlantis** +- Give the token **Read** Project permissions and **Write** Pull request permissions +- Click **Create** and record the access token + +## Next Steps +Once you've got your user and access token, you're ready to create a webhook secret. See [Creating a Webhook Secret](webhook-secrets.html). diff --git a/runatlantis.io/docs/configuring-webhooks.md b/runatlantis.io/docs/configuring-webhooks.md new file mode 100644 index 000000000..8de7d1138 --- /dev/null +++ b/runatlantis.io/docs/configuring-webhooks.md @@ -0,0 +1,88 @@ +# Configuring Webhooks +Atlantis needs to receive Webhooks from your Git host so that it can respond to pull request events. + +:::tip Pre-Requisites +* You have created an [access credential](access-credentials.html) +* You have created a [webhook secret](webhook-secrets.html) +* You have [deployed](deployment.html) Atlantis and have a url for it +::: + +See the instructions for your specific provider below. +[[toc]] + +## GitHub/GitHub Enterprise Webhook +You can install your webhook at the organization level, or for each repository. + +If only some of the repos in your organization are to be managed by Atlantis, then you +may want to only install on specific repos for now. + +::: tip +If you're not sure if you have a GitHub organization see [https://help.github.com/articles/differences-between-user-and-organization-accounts/](https://help.github.com/articles/differences-between-user-and-organization-accounts/) +::: + +If you're installing on the organization, navigate to your organization's page and click **Settings**. +If installing on a single repository, navigate to the repository home page and click **Settings**. +- Select **Webhooks** or **Hooks** in the sidebar +- Click **Add webhook** +- set **Payload URL** to `http://$URL/events` (or `https://$URL/events` if you're using SSL) where `$URL` is where Atlantis is hosted. **Be sure to add `/events`** +- double-check you added `/events` to the end of your URL. +- set **Content type** to `application/json` +- set **Secret** to the Webhook Secret you generated previously + - **NOTE** If you're adding a webhook to multiple repositories, each repository will need to use the **same** secret. +- select **Let me select individual events** +- check the boxes + - **Pull request reviews** + - **Pushes** + - **Issue comments** + - **Pull requests** +- leave **Active** checked +- click **Add webhook** + +## GitLab Webhook +If you're using GitLab, navigate to your project's home page in GitLab +- Click **Settings > Integrations** in the sidebar +- set **URL** to `http://$URL/events` (or `https://$URL/events` if you're using SSL) where `$URL` is where Atlantis is hosted. **Be sure to add `/events`** +- double-check you added `/events` to the end of your URL. +- set **Secret Token** to the Webhook Secret you generated previously + - **NOTE** If you're adding a webhook to multiple repositories, each repository will need to use the **same** secret. +- check the boxes + - **Push events** + - **Comments** + - **Merge Request events** +- leave **Enable SSL verification** checked +- click **Add webhook** + +## Bitbucket Cloud (bitbucket.org) Webhook +- Go to your repo's home page +- Click **Settings** in the sidebar +- Click **Webhooks** under the **WORKFLOW** section +- Click **Add webhook** +- Enter "Atlantis" for **Title** +- set **URL** to `http://$URL/events` (or `https://$URL/events` if you're using SSL) where `$URL` is where Atlantis is hosted. **Be sure to add `/events`** +- double-check you added `/events` to the end of your URL. +- Keep **Status** as Active +- Don't check **Skip certificate validation** because NGROK has a valid cert. +- Select **Choose from a full list of triggers** +- Under **Repository** **un**check everything +- Under **Issues** leave everything **un**checked +- Under **Pull Request**, select: Created, Updated, Merged, Declined and Comment created +- Click **Save** +
+
+## Bitbucket Server (aka Stash) Webhook
+- Go to your repo's home page
+- Click **Settings** in the sidebar
+- Click **Webhooks** under the **WORKFLOW** section
+- Click **Create webhook**
+- Enter "Atlantis" for **Name**
+- set **URL** to `http://$URL/events` (or `https://$URL/events` if you're using SSL) where `$URL` is where Atlantis is hosted. **Be sure to add `/events`**
+- Double-check you added `/events` to the end of your URL.
+- Set **Secret** to the Webhook Secret you generated previously
+ - **NOTE** If you're adding a webhook to multiple repositories, each repository will need to use the **same** secret.
+- Under **Repository** select **Push**
+- Under **Pull Request**, select: Opened, Modified, Merged, Declined, Deleted and Comment added
+- Click **Save**
+
+## Next Steps
+* Now you're finally ready to use Atlantis! Open up a Terraform pull request
+ and you should see Atlantis respond.
diff --git a/runatlantis.io/docs/customizing-atlantis.md b/runatlantis.io/docs/customizing-atlantis.md
new file mode 100644
index 000000000..d7f6cf0cb
--- /dev/null
+++ b/runatlantis.io/docs/customizing-atlantis.md
@@ -0,0 +1,7 @@
+# Customizing Atlantis
+
+How Atlantis exactly operates for each repo can be customized via an
+`atlantis.yaml` file placed at the root of each repo.
+
+* Read about the possible [use cases](/guide/atlantis-yaml-use-cases.html)
+* Check out the [atlantis.yaml reference](atlantis-yaml-reference.html)
diff --git a/runatlantis.io/docs/deployment.md b/runatlantis.io/docs/deployment.md
index de06315dc..982ceb86a 100644
--- a/runatlantis.io/docs/deployment.md
+++ b/runatlantis.io/docs/deployment.md
@@ -1,255 +1,86 @@
-# Production-Ready Deployment
-[[toc]]
+# Deployment
+This doc covers getting Atlantis up and running in your infrastructure.
-## Install Terraform
-`terraform` needs to be in the `$PATH` for Atlantis.
-Download from https://www.terraform.io/downloads.html
-```bash
-unzip path/to/terraform_*.zip -d /usr/local/bin
-```
-Check that it's in your `$PATH`
-```
-$ terraform version
-Terraform v0.10.0
-```
-If you want to use a different version of Terraform see [Terraform Versions](#terraform-versions)
-
-## Hosting Atlantis
-Atlantis needs to be hosted somewhere that github.com/gitlab.com/bitbucket.org or your GitHub/GitLab Enterprise installation can reach.
-Developers in your organization also need to be able to access Atlantis to view the UI and to delete locks.
-
-By default Atlantis runs on port `4141`. This can be changed with the `--port` flag.
-
-## Install Atlantis
-Get the latest release from [https://github.com/runatlantis/atlantis/releases](https://github.com/runatlantis/atlantis/releases) and unpackage it.
-
-## Add Webhook
-Once you've decided where to host Atlantis you need to add that URL as a webhook
-to your Git host so that Atlantis gets notified about pull request events.
-See the instructions for your specific provider below:
-
-### GitHub/GitHub Enterprise Webhook
-If you already have a GitHub organization we recommend installing the webhook at the **organization level** rather than on each repository, however both methods will work.
-
-::: tip
-If you're not sure if you have a GitHub organization see [https://help.github.com/articles/differences-between-user-and-organization-accounts/](https://help.github.com/articles/differences-between-user-and-organization-accounts/)
+::: tip Pre-Requisites
+* You have created an [access credential](access-credentials.html)
+* You have created a [webhook secret](webhook-secrets.html)
:::
-If you're installing on the organization, navigate to your organization's page and click **Settings**.
-If installing on a single repository, navigate to the repository home page and click **Settings**.
-- Select **Webhooks** or **Hooks** in the sidebar
-- Click **Add webhook**
-- set **Payload URL** to `http://$URL/events` (or `https://$URL/events` if you're using SSL) where `$URL` is where Atlantis is hosted. **Be sure to add `/events`**
-- double-check you added `/events` to the end of your URL.
-- set **Content type** to `application/json`
-- set **Secret** to a random key (https://www.random.org/strings/). You'll need to pass this value to the `--gh-webhook-secret` flag when you start Atlantis
- - **NOTE** If you're adding a webhook to multiple repositories, each repository will need to use the **same** secret.
-- select **Let me select individual events**
-- check the boxes
- - **Pull request reviews**
- - **Pushes**
- - **Issue comments**
- - **Pull requests**
-- leave **Active** checked
-- click **Add webhook**
+[[toc]]
-### GitLab Webhook
-If you're using GitLab, navigate to your project's home page in GitLab
-- Click **Settings > Integrations** in the sidebar
-- set **URL** to `http://$URL/events` (or `https://$URL/events` if you're using SSL) where `$URL` is where Atlantis is hosted. **Be sure to add `/events`**
-- double-check you added `/events` to the end of your URL.
-- set **Secret Token** to a random key (https://www.random.org/strings/). You'll need to pass this value to the `--gitlab-webhook-secret` flag when you start Atlantis
- - **NOTE** If you're adding a webhook to multiple repositories, each repository will need to use the **same** secret.
-- check the boxes
- - **Push events**
- - **Comments**
- - **Merge Request events**
-- leave **Enable SSL verification** checked
-- click **Add webhook**
+## Architecture Overview
+### Runtime
+Atlantis is a simple [Go](https://golang.org/) app. It receives webhooks from
+your Git host and executes Terraform commands locally. There is an official
+Atlantis [Docker image](https://hub.docker.com/r/runatlantis/atlantis/).
-### Bitbucket Cloud (bitbucket.org) Webhook
-- Go to your repo's home page
-- Click **Settings** in the sidebar
-- Click **Webhooks** under the **WORKFLOW** section
-- Click **Add webhook**
-- Enter "Atlantis" for **Title**
-- set **URL** to `http://$URL/events` (or `https://$URL/events` if you're using SSL) where `$URL` is where Atlantis is hosted. **Be sure to add `/events`**
-- double-check you added `/events` to the end of your URL.
-- Keep **Status** as Active
-- Don't check **Skip certificate validation** because NGROK has a valid cert.
-- Select **Choose from a full list of triggers**
-- Under **Repository** **un**check everything
-- Under **Issues** leave everything **un**checked
-- Under **Pull Request**, select: Created, Updated, Merged, Declined and Comment created
-- Click **Save**
-
+### Routing
+Because Atlantis needs to receive webhooks from your Git host, it must be routable
+from that Git host. If you're using a public Git host like GitHub.com, GitLab.com
+or Bitbucket.org then you'll need to expose Atlantis to the internet.
-### Bitbucket Server (aka Stash) Webhook
-- Go to your repo's home page
-- Click **Settings** in the sidebar
-- Click **Webhooks** under the **WORKFLOW** section
-- Click **Create webhook**
-- Enter "Atlantis" for **Name**
-- set **URL** to `http://$URL/events` (or `https://$URL/events` if you're using SSL) where `$URL` is where Atlantis is hosted. **Be sure to add `/events`**
-- Double-check you added `/events` to the end of your URL.
-- Set **Secret** to a random key (https://www.random.org/strings/). You'll need to pass this value to the `--bitbucket-webhook-secret` flag when you start Atlantis
- - **NOTE** If you're adding a webhook to multiple repositories, each repository will need to use the **same** secret.
-- Under **Repository** select **Push**
-- Under **Pull Request**, select: Opened, Modified, Merged, Declined, Deleted and Comment added
-- Click **Save**
+If you're using a private Git host like GitHub Enterprise, GitLab Enterprise or
+Bitbucket Server, then you just need Atlantis to be routable from there.
-## Create an access token for Atlantis
-We recommend using a dedicated CI user or creating a new user named **@atlantis** that performs all API actions, however for testing,
-you can use your own user. Here we'll create the access token that Atlantis uses to comment on the pull request and
-set commit statuses.
+### Data
+Atlantis has no external database. Atlantis stores Terraform plan files on disk.
+If Atlantis loses that data in between a `plan` and `apply` cycle, then users will have
+to re-run `plan`. Because of this, you may want to provision a persistent disk
+for Atlantis.
-### Create a GitHub Token
-**NOTE: The Atlantis user must have "Write permissions" (for repos in an organization) or be a "Collaborator" (for repos in a user account) to be able to set commit statuses:**
-
-- create a Personal Access Token by following [https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token)
-- create the token with **repo** scope
-- copy the access token
+## Deployment
-### Create a GitLab Token
-- follow [https://docs.gitlab.com/ce/user/profile/personal_access_tokens.html#creating-a-personal-access-token](https://docs.gitlab.com/ce/user/profile/personal_access_tokens.html#creating-a-personal-access-token)
-- create a token with **api** scope
-- copy the access token
+Pick your deployment type:
+* [Kubernetes Helm Chart](#kubernetes-helm-chart)
+* [Kubernetes Manifests](#kubernetes-manifests)
+* [OpenShift](#openshift)
+* [AWS Fargate](#aws-fargate)
+* [Google Kubernetes Engine (GKE)](#google-kubernetes-engine-gke)
+* [Docker](#docker)
+* [Roll your own](#roll-your-own)
-### Create a Bitbucket Cloud (bitbucket.org) App Password
-- create an App Password by following [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html#Apppasswords-Createanapppassword](https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html#Apppasswords-Createanapppassword)
-- Label the password "atlantis"
-- Select **Pull requests**: **Read** and **Write** so that Atlantis can read your pull requests and write comments to them
-- copy the access token
-### Create a Bitbucket Server (aka Stash) Personal Access Token
-- Click on your avatar in the top right and select **Manage account**
-- Click **Personal access tokens** in the sidebar
-- Click **Create a token**
-- Name the token **atlantis**
-- Give the token **Read** Project permissions and **Write** Pull request permissions
-- Click **Create** and copy the access token
+### Kubernetes Helm Chart
+Atlantis has an [official Helm chart](https://hub.kubeapps.com/charts/stable/atlantis).
-## Start Atlantis
-Now you're ready to start Atlantis! The exact command depends on your Git host:
+To install:
+1. `cd` into a directory where you're going to configure your Atlantis Helm chart
+1. Create a `values.yaml` file by running
+ ```bash
+ helm inspect values stable/atlantis > values.yaml
+ ```
+1. Edit `values.yaml` and add your access credentials and webhook secret
+ ```yaml
+ # for example
+ github:
+ user: foo
+ token: bar
+ secret: baz
+ ```
+1. Edit `values.yaml` and set your `orgWhitelist`
+ ```yaml
+ orgWhitelist: github.com/runatlantis/*
+ ```
+ See [Repo Whitelist](server-configuration.html#repo-whitelist) for more information.
+1. Configure any other variables. See [https://github.com/helm/charts/tree/master/stable/atlantis#customization](https://github.com/helm/charts/tree/master/stable/atlantis#customization)
+ for documentation.
+1. Run
+ ```sh
+ helm install -f values.yaml stable/atlantis
+ ```
-### GitHub Command
-```bash
-atlantis server \
---atlantis-url="$URL" \
---gh-user="$USERNAME" \
---gh-token="$TOKEN" \
---gh-webhook-secret="$SECRET" \
---repo-whitelist="$REPO_WHITELIST"
-```
-### GitHub Enterprise Command
-```bash
-HOSTNAME=YOUR_GITHUB_ENTERPRISE_HOSTNAME # ex. github.runatlantis.io
-atlantis server \
---atlantis-url="$URL" \
---gh-user="$USERNAME" \
---gh-token="$TOKEN" \
---gh-webhook-secret="$SECRET" \
---gh-hostname="$HOSTNAME" \
---repo-whitelist="$REPO_WHITELIST"
-```
+Atlantis should be up and running in minutes! See [Next Steps](#next-steps) for
+what to do next.
-### GitLab Command
-```bash
-atlantis server \
---atlantis-url="$URL" \
---gitlab-user="$USERNAME" \
---gitlab-token="$TOKEN" \
---gitlab-webhook-secret="$SECRET" \
---repo-whitelist="$REPO_WHITELIST"
-```
-
-### GitLab Enterprise Command
-```bash
-HOSTNAME=YOUR_GITLAB_ENTERPRISE_HOSTNAME # ex. gitlab.runatlantis.io
-atlantis server \
---atlantis-url="$URL" \
---gitlab-user="$USERNAME" \
---gitlab-token="$TOKEN" \
---gitlab-webhook-secret="$SECRET" \
---gitlab-hostname="$HOSTNAME" \
---repo-whitelist="$REPO_WHITELIST"
-```
-
-### Bitbucket Cloud (bitbucket.org) Command
-```bash
-atlantis server \
---atlantis-url="$URL" \
---bitbucket-user="$USERNAME" \
---bitbucket-token="$TOKEN" \
---repo-whitelist="$REPO_WHITELIST"
-```
-
-### Bitbucket Server (aka Stash) Command
-```bash
-BASE_URL=YOUR_BITBUCKET_SERVER_URL # ex. http://bitbucket.mycorp:7990
-atlantis server \
---atlantis-url="$URL" \
---bitbucket-user="$USERNAME" \
---bitbucket-token="$TOKEN" \
---bitbucket-webhook-secret="$SECRET" \
---bitbucket-base-url="$BASE_URL" \
---repo-whitelist="$REPO_WHITELIST"
-```
-
-Where
-- `$URL` is the URL that Atlantis can be reached at
-- `$USERNAME` is the GitHub/GitLab/Bitbucket username you generated the token for
-- `$TOKEN` is the access token you created. If you don't want this to be passed in as an argument for security reasons you can specify it in a config file (see [Configuration](/docs/server-configuration.html#environment-variables)) or as an environment variable: `ATLANTIS_GH_TOKEN` or `ATLANTIS_GITLAB_TOKEN` or `ATLANTIS_BITBUCKET_TOKEN`
-- `$SECRET` is the random key you used for the webhook secret. If you don't want this to be passed in as an argument for security reasons you can specify it in a config file (see [Configuration](/docs/server-configuration.html#environment-variables)) or as an environment variable: `ATLANTIS_GH_WEBHOOK_SECRET` or `ATLANTIS_GITLAB_WEBHOOK_SECRET`
-- `$REPO_WHITELIST` is which repos Atlantis can run on, ex. `github.com/runatlantis/*` or `github.enterprise.corp.com/*`. See [www.runatlantis.io/docs/security.html#repo-whitelist](/docs/security.html#repo-whitelist) for more details.
-
-Atlantis is now running!
-**We recommend running it under something like Systemd or Supervisord.**
-
-## Docker
-Atlantis also ships inside a docker image. Run the docker image:
-
-```bash
-docker run runatlantis/atlantis:latest server