This guide explains how to install the OpenOps docker-compose release on a local machine. Note that these settings are for testing purposes only and not for a production environment.

Installing OpenOps automatically

Run the following command to install, configure and run OpenOps:

    curl -fsSL https://openops.sh/install | sh

This script supports macOS, Ubuntu and Windows (via WSL2 Ubuntu).

Installing OpenOps manually

Alternatively, you can follow the manual installation steps provided below for your operating system.

On macOS

  1. Install Docker Desktop by following these instructions.
  2. Open a new terminal window and run the following command to create a folder and download the OpenOps release files:
    mkdir -p openops && cd openops && \
    curl -OL https://github.com/openops-cloud/openops/releases/download/0.2.8/openops-dc-0.2.8.zip && \
    unzip openops-dc-0.2.8.zip && cp -n .env.defaults .env
    
  3. Open the .env file in the OpenOps installation folder. Change the values of the following variables that represent credentials. Do it now, as you won’t be able to change these values after the initial deployment:
    • OPS_OPENOPS_ADMIN_EMAIL: the email of your OpenOps installation’s root admin account.
    • OPS_OPENOPS_ADMIN_PASSWORD: the password of your OpenOps installation’s root admin account.
    • OPS_POSTGRES_USERNAME: the username of the Postgres database that OpenOps uses.
    • OPS_POSTGRES_PASSWORD: the password of the Postgres database that OpenOps uses.
    • OPS_ANALYTICS_ADMIN_PASSWORD: the password of the OpenOps Analytics admin account (the username is hardcoded to admin).
  4. Pull the images and run docker compose:
    COMPOSE_PARALLEL_LIMIT=4 docker compose pull
    docker compose up -d
    
    If you face a rate limit while downloading, run the command again.

You can now access the application by navigating to http://localhost.

On Ubuntu Server

This procedure has been tested on Ubuntu Server 24.04.
  1. During the Ubuntu Server installation, select Docker to be added to the installation. If you need to install Docker later, follow the instructions here.
  2. Log in to your server and run the following commands to create a folder and download the OpenOps release files:
    # create and change directory
    mkdir -p openops && cd openops
    # download the release file
    curl -OL https://github.com/openops-cloud/openops/releases/download/0.2.8/openops-dc-0.2.8.zip
    # refresh package lists
    sudo apt update
    # install unzip
    sudo apt install unzip
    # decompress release file
    unzip openops-dc-0.2.8.zip
    # copy the defaults to env without overwriting existing files
    cp --update=none .env.defaults .env
    
  3. Identify your own IP address:
    # find IP address
    ip -o -4 addr show | awk '{print $2, $4}'
    
    The output should look something like this:
    lo 127.0.0.1/8 # loopback network interface - not here
    enp1s0 192.168.1.50/24 # this looks more like it. We want this inet IP address without the subnet mask: 192.168.1.50
    docker0 172.17.0.1/16 # docker network interface - not here
    
    In this case, the IP address is 192.168.1.50.
  4. Open the .env file in the OpenOps installation folder. Change the values of the following variables that represent credentials. Do it now, as you won’t be able to change these values after the initial deployment:
    • OPS_OPENOPS_ADMIN_EMAIL: the email of your OpenOps installation’s root admin account.
    • OPS_OPENOPS_ADMIN_PASSWORD: the password of your OpenOps installation’s root admin account.
    • OPS_POSTGRES_USERNAME: the username of the Postgres database that OpenOps uses.
    • OPS_POSTGRES_PASSWORD: the password of the Postgres database that OpenOps uses.
    • OPS_ANALYTICS_ADMIN_PASSWORD: the password of the OpenOps Analytics admin account (the username is hardcoded to admin).
  5. In the .env file, find the OPS_PUBLIC_URL variable and replace its value, http://localhost, with the IP address that you’ve previously identified. In our example, the IP address would be http://192.168.1.50.
  6. Pull the images and run docker compose:
    # download the docker volumes and images
    COMPOSE_PARALLEL_LIMIT=4 sudo docker compose pull
    # launch the application
    sudo docker compose up -d
    
    If you face a rate limit while downloading, run the command again.

On Windows (with PowerShell)

  1. Install Docker Desktop by following these instructions.
  2. Add a new folder for OpenOps in your PowerShell console:
    New-Item -ItemType Directory -Force -Path openops
    Set-Location openops
    
  3. Download the OpenOps release files:
    Invoke-WebRequest -Uri "https://github.com/openops-cloud/openops/releases/download/0.2.8/openops-dc-0.2.8.zip" -OutFile "openops-dc-0.2.8.zip"
    Expand-Archive -Path "openops-dc-0.2.8.zip" -DestinationPath .
    if (-Not (Test-Path ".env")) {
        Copy-Item ".env.defaults" ".env"
    }
    
  4. Open the .env file in the OpenOps installation folder. Change the values of the following variables that represent credentials. Do it now, as you won’t be able to change these values after the initial deployment:
    • OPS_OPENOPS_ADMIN_EMAIL: the email of your OpenOps installation’s root admin account.
    • OPS_OPENOPS_ADMIN_PASSWORD: the password of your OpenOps installation’s root admin account.
    • OPS_POSTGRES_USERNAME: the username of the Postgres database that OpenOps uses.
    • OPS_POSTGRES_PASSWORD: the password of the Postgres database that OpenOps uses.
    • OPS_ANALYTICS_ADMIN_PASSWORD: the password of the OpenOps Analytics admin account (the username is hardcoded to admin).
  5. Run docker compose:
    $env:COMPOSE_PARALLEL_LIMIT = "4"
    docker compose pull
    docker compose up -d
    
    If you face a rate limit while downloading, run the command again.

Updating OpenOps to a newer version

See Updating OpenOps.

Cloud templates

On localhost, cloud templates may not be able to load when using the Safari browser.

Configuring Slack approvals

If you would like to run a workflow that uses Slack approvals, please follow the steps:

  1. Download and create a free account in ngrok
  2. Start ngrok
ngrok http http://localhost
  1. Copy the Forwarding address
  2. Go to the OpenOps installation directory
  3. Inside the directory, make a copy of the .env.defaults file and save it as .env
  4. Open the file and set OPS_PUBLIC_URL to the Forwarding address you copied in step 3
OPS_PUBLIC_URL=https://2f91-62-77-75-198.ngrok-free.app
  1. Restart the containers
sudo docker compose down && docker compose up -d

Using Azure CLI in workflows: running with local credentials

It is possible to share your local session with the platform for local applications. To do this, you need to set two environment variables in the .env file under the installation folder:

  • OPS_ENABLE_HOST_SESSION=true: enables sharing of the host session with the platform container.
  • HOST_AZURE_CONFIG_DIR="~/.azure": defines the path to the host machine’s Azure configuration folder that will be shared with the platform container.

Support

Feel free to join our Slack community if you have any questions or need help with the installation.