1.2 Install

A Concourse installation is composed of a web node, a worker node, and a PostgreSQL node.

There are many ways to deploy Concourse, depending on your personal preference. The Quick Start guide shows how to get Concourse up and running quickly via Docker Compose, and there is also an official Concourse Helm chart.

The documentation found here will primarily focus on the concourse CLI, which is the lowest common denominator, and can also be directly used if you want to just run Concourse yourself on real hardware or your own managed VMs.

The high-level steps to follow for installing Concourse are:

  1. Setup a Postgres database

  2. Generate Secrets for the web and worker nodes

  3. Install the web node

  4. Install the worker node

We don't document every configuration option for the web and worker commands. To view all flags you can run the following docker commands.

docker run -t concourse/concourse web --help
docker run -t concourse/concourse worker --help
Table of contents:
  1. 1.2.1 Running a PostgreSQL node
    1. 1.2.1.1 Prerequisites
    2. 1.2.1.2 Running PostgreSQL
    3. 1.2.1.3 Resource utilization
  2. 1.2.2 The concourse CLI
  3. 1.2.3 Generating Keys
    1. 1.2.3.1 Generating the Keys
    2. 1.2.3.2 Multiple Worker Keys
  4. 1.2.4 Running a web node
    1. 1.2.4.1 Prerequisites
    2. 1.2.4.2 Running concourse web
      1. 1.2.4.2.1 Resource utilization
    3. 1.2.4.3 Operating a web node
      1. 1.2.4.3.1 Scaling
        1. 1.2.4.3.1.1 Database connection pooling
      2. 1.2.4.3.2 Reloading worker authorized key
      3. 1.2.4.3.3 Restarting & Upgrading
      4. 1.2.4.3.4 Downgrading
    4. 1.2.4.4 Configuring the web node
      1. 1.2.4.4.1 Giving your cluster a name
      2. 1.2.4.4.2 Configuring ingress traffic
      3. 1.2.4.4.3 TLS via Let's Encrypt
      4. 1.2.4.4.4 Build log retention
      5. 1.2.4.4.5 Enabling audit logs
      6. 1.2.4.4.6 Configuring defaults for resource types
  5. 1.2.5 Running a worker node
    1. 1.2.5.1 Prerequisites
    2. 1.2.5.2 Running concourse worker
      1. 1.2.5.2.1 Resource utilization
    3. 1.2.5.3 Operating a worker node
      1. 1.2.5.3.1 Scaling Workers
        1. 1.2.5.3.1.1 Horizontal vs Vertical Scaling
      2. 1.2.5.3.2 Worker Heartbeating & Stalling
      3. 1.2.5.3.3 Restarting a Worker
      4. 1.2.5.3.4 Gracefully Removing a Worker
    4. 1.2.5.4 Configuring the worker node
      1. 1.2.5.4.1 Tagging Workers
      2. 1.2.5.4.2 Team Workers
        1. 1.2.5.4.2.1 Tags and Team Workers
      3. 1.2.5.4.3 Healthcheck Endpoint
      4. 1.2.5.4.4 Resource Types
        1. 1.2.5.4.4.1 Bundled Resource Types
        2. 1.2.5.4.4.2 Installing or Upgrading Bundled Resource Types
      5. 1.2.5.4.5 Configuring Runtimes
        1. 1.2.5.4.5.1 containerd runtime
        2. 1.2.5.4.5.2 Transitioning from Guardian to containerd
        3. 1.2.5.4.5.3 Guardian runtime
        4. 1.2.5.4.5.4 Troubleshooting and fixing DNS resolution
          1. 1.2.5.4.5.4.1 Pointing to external DNS servers
          2. 1.2.5.4.5.4.2 Using a local DNS server
          3. 1.2.5.4.5.4.3 A note on allowing host access and DNS proxy
      6. 1.2.5.4.6 Configuring Peer-to-Peer Volume Streaming
        1. 1.2.5.4.6.1 P2P Worker Configuration
        2. 1.2.5.4.6.2 P2P Web Configuration
  6. 1.2.6 Upgrading Concourse
    1. 1.2.6.1 Upgrading the Web Node
    2. 1.2.6.2 Upgrading the Worker Node
      1. 1.2.6.2.1 Linux Workers
      2. 1.2.6.2.2 Darwin and Windows Workers