Skip to content

Install Concourse#

System Requirements

Conman (Concourse Version Manager)#

Conman is the recommended way to install and manage Concourse. It lets you install multiple versions side by side, run them simultaneously on different ports, and switch between versions instantly — similar to how nvm works for Node.js.

Install Conman#

1
curl -o- https://packages.cinchapi.com/public/open-source/raw/names/conman/versions/1.0.0/install.sh | bash

After installation, restart your terminal or source your shell profile.

Install Concourse via Conman#

1
2
3
4
5
6
7
8
# Install the latest release
conman install latest

# Install a specific version
conman install 0.12.2

# Start the server
conman start

Managing Versions#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# List installed versions
conman ls

# List available versions
conman ls-remote

# Switch active version
conman use 0.12.2

# Show active version
conman current

# Show installation path
conman which

Running Multiple Versions#

Conman automatically assigns unique ports to each installed version, so you can run multiple versions simultaneously:

Install Client Port JMX Port HTTP Port
1st 1717 9010 18080
2nd 1718 9011 18081
3rd 1719 9012 18082

Override port assignment at install time:

1
conman install 0.12.2 --port 1720

Server Control#

All standard Concourse commands work through conman:

1
2
3
4
5
conman start
conman stop
conman restart
conman status
conman cash          # Launch CaSH shell

Run Commands Against a Specific Version#

1
2
conman run 0.12.2 start
conman run 0.12.2 cash

Uninstall a Version#

1
conman uninstall 0.12.2

Warning

You cannot uninstall a version that is currently running. Stop it first with conman stop.

Building from Source#

If you have Git SSH access to the Concourse repository, you can build and install the latest development snapshot:

1
conman install snapshot

Data Isolation#

Each version gets its own isolated data directories:

1
2
3
4
5
6
7
~/.conman/
├── versions/<version>/     # Server installation
├── data/<version>/         # Isolated data per version
   ├── buffer/
   └── db/
├── cache/                  # Downloaded installer cache
└── current                 # Active version pointer

Shell Completion#

Conman includes tab completion for both Bash and Zsh. If you installed via the one-liner, completion is set up automatically. For manual installations, source the appropriate completion file:

1
2
3
4
5
# Bash
source /path/to/conman/completions/conman.bash

# Zsh
source /path/to/conman/completions/conman.zsh

Binary Install#

For a standalone installation without version management:

  1. Download the installer. From the terminal, navigate to the location where you want to install Concourse and download the installer for the latest version:

    1
    curl -o concourse-server.bin -L http://concoursedb.com/download/latest
    
  2. Run the installer. Execute the downloaded .bin file. You’ll be prompted to enter an administrator password so the installer can add the Concourse scripts and log files to your $PATH. This is recommended but not required. If you don’t want this level of system integration, simply press CTRL+C at the prompt.

    1
    sh concourse-server.bin
    
  3. Start Concourse. Concourse ships with reasonable default configuration so you can use it right out of the box. If necessary, you can configure how Concourse runs by editing the concourse.yaml configuration file located in Concourse’s conf/ directory.

    1
    concourse start
    
  4. Set the admin password. The default administrator credentials are admin/admin. Change the password immediately after installation. You can set the initial password in concourse.yaml:

    yaml init: root: password: your-secure-password

Docker#

You can also quickly get started with Concourse using one of the provided Docker images.

Starting Concourse with Persistent Data#

1
2
3
4
docker run -p 1717:1717 \
    -v /path/to/local/data:/data \
    --name concourse \
    cinchapi/concourse

NOTE: Add a -d flag after docker run to run in the background.

Setting Initial Password#

Set the initial root password via environment variable:

1
2
3
4
5
docker run -p 1717:1717 \
    -e CONCOURSE_INIT_ROOT_PASSWORD=secure-pw \
    -v /path/to/local/data:/data \
    --name concourse \
    cinchapi/concourse

Modifying the Configuration#

You can add or modify any configuration that would normally go in the concourse.yaml file using environment variables.

Simply UPPERCASE the preference key and prepend it with CONCOURSE_. For example, modify the heap_size preference:

1
2
3
4
5
docker run -p 1717:1717 \
    -e CONCOURSE_HEAP_SIZE=2g \
    -v /path/to/local/data:/data \
    --name concourse \
    cinchapi/concourse

Using CaSH#

Spin up an ad-hoc container running CaSH to connect to the dockerized instance:

1
2
3
4
docker run -it --rm \
    --link concourse:concourse \
    cinchapi/concourse shell \
    --host concourse --password admin

Running Client-Side CLIs#

Any client-side CLI can be dockerized using an ad-hoc container linked to the Concourse instance.

For example, perform an interactive import:

1
2
3
4
docker run -it --rm \
    --link concourse:concourse \
    cinchapi/concourse import \
    --host concourse --password admin

Import a file from the host machine:

1
2
3
4
5
6
xargs -I % docker run -i --rm \
    --link concourse:concourse \
    --mount type=bind,source=%,target=/data/% \
    cinchapi/concourse import \
    --host concourse --password admin \
    -d /data/% <<< /absolute/path/to/file

Running Server-Side CLIs#

Run server-side CLIs using docker exec on the container running Concourse:

1
docker exec -it concourse concourse <command> <args>

For example, check server status:

1
docker exec -it concourse concourse status