Skip to content

Latest commit

 

History

History
171 lines (135 loc) · 7.03 KB

File metadata and controls

171 lines (135 loc) · 7.03 KB
title Local Deployment
description Deploy OpenOps on your local machine
icon laptop-code

import AutoInstall from '/snippets/auto-install.mdx' import HostValidation from '/snippets/host-validation.mdx'; import JoinCommunity from '/snippets/join-community.mdx' import RestartContainers from '/snippets/restart-containers.mdx'; import UpdateCredentials from '/snippets/env-update-credentials.mdx'; import UpdateLink from '/snippets/update-link.mdx';

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.

Before following the instructions, make sure that your machine meets the system requirements for OpenOps.

Installing OpenOps

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

If you can't use the autoinstall script, follow the manual installation steps for your operating system below.

### 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.6.19/openops-dc-0.6.19.zip && \
    unzip openops-dc-0.6.19.zip && cp -n .env.defaults .env
  3. 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.6.19/openops-dc-0.6.19.zip
    # refresh package lists
    sudo apt update
    # install unzip
    sudo apt install unzip
    # decompress release file
    unzip openops-dc-0.6.19.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. 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.
  5. 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.6.19/openops-dc-0.6.19.zip"
    Expand-Archive -Path "openops-dc-0.6.19.zip" -DestinationPath .
    if (-Not (Test-Path ".env")) {
        Copy-Item ".env.defaults" ".env"
    }
  4. 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.

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 in a local installation, you should set the following variable in your .env file:

OPS_SLACK_ENABLE_INTERACTIONS=false

This will open a new tab in your default browser when you approve or reject an action. You can safely close the tab after the action is completed.

After updating your .env file, restart the containers:

sudo docker compose down && docker compose up -d

Configuring allowed SMTP ports

By default, OpenOps allows SMTP connections on ports 25, 465, 587, and 2525. Administrators can customize which SMTP ports are available by setting the OPS_SMTP_ALLOWED_PORTS environment variable in the .env file.

To configure allowed SMTP ports, open the .env file in your installation folder and set the OPS_SMTP_ALLOWED_PORTS variable to a comma-separated list of port numbers:

OPS_SMTP_ALLOWED_PORTS=25,465,587,2525

Port numbers must be valid TCP ports in the range 1-65535. At least one valid port must be configured. Invalid port numbers will be filtered out.

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.

Using Google Cloud CLI in workflows: running with local credentials

It is possible to share your local Google Cloud CLI 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_CLOUDSDK_CONFIG="~/.config/gcloud": defines the path to the host machine's Google Cloud configuration folder that will be shared with the platform container.