This guide is for testing and evaluation purposes only and is not intended for production deployments. Please reach out to us at support@openops.com if you’d like to learn how to set up OpenOps in a production environment.

This guide explains how to install the OpenOps Docker Compose release on a newly created GCP Compute Engine VM instance.

It assumes you have appropriate permissions on an existing Google Cloud Platform (GCP) project.

Initial deployment

Create a new VM instance

  1. In the Google Cloud Console, navigate to Compute EngineVM instances.
  2. Click Create Instance.
  3. Enter a name for your virtual machine.
  4. Under Machine configuration, configure the following:
    • Region and zone: Choose a region and zone close to your users (e.g., us-east1-b).
    • Series: Choose any recommended series (e.g., E2) or another family you prefer.
    • Machine type: Choose a machine size similar to e2-standard-2 or larger. Avoid very small machines, as OpenOps may need additional CPU/RAM for running Docker containers smoothly.
  5. Under OS and storage:
    • Click Change.
    • Select Ubuntu as the operating system (Ubuntu 24.04 LTS if available, or a close alternative).
    • Increase the Size to at least 50GB to accommodate Docker images and databases.
    • Click Select.
  6. Under Networking, check Allow HTTP traffic. This will automatically create a firewall rule to open port 80.
  7. Leave other settings as defaults (or adjust according to your preferences), then click Create to launch the VM.

Configure firewall for SSH and HTTP

Depending on your project settings, a default firewall rule might already allow SSH access. By checking Allow HTTP traffic while creating the instance, HTTP (port 80) is also open. If you need to adjust or review these rules:

  1. In the VPC network menu, go to Firewall.
  2. Locate or create firewall rules for:
    • SSH (TCP/22) from your IP or a limited source range.
    • HTTP (TCP/80) for public access or your desired source range.

Connect to the instance

  1. Once your VM is running, go to the VM instances list.
  2. Click SSH next to your instance to open an in-browser terminal.

Automatically install OpenOps

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

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

Manually install OpenOps

Alternatively, you can follow the manual installation steps:

  1. Install the unzip utility:
    sudo apt install unzip
    
  2. In your SSH session, create a new directory and download the release files:
    mkdir -p openops && cd openops
    wget https://github.com/openops-cloud/openops/releases/download/0.2.8/openops-dc-0.2.8.zip
    unzip -o openops-dc-0.2.8.zip
    cp -u .env.defaults .env
    
  3. Update the application URL to use the instance’s external IP address:
    EXTERNAL_IP=$(curl -4 -s ifconfig.co)
    sed -i "s|http://localhost|http://$EXTERNAL_IP|g" .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. Install Docker (for Ubuntu):
    sudo apt-get update
    sudo apt-get install -y docker.io
    sudo systemctl enable docker
    sudo systemctl start docker
    
  6. Install Docker Compose (using docker compose plugin):
    sudo mkdir -p /usr/local/lib/docker/cli-plugins/
    sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
    sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
    
  7. Pull the images and start the Docker containers:
    sudo COMPOSE_PARALLEL_LIMIT=4 docker compose pull -q && sudo docker compose up -d
    
    If you encounter rate limits, rerun the pull command. Pulling images may take several minutes.

You can now access the OpenOps application by navigating to the external IP address of your VM (e.g., http://<YOUR_EXTERNAL_IP>). If you did not update credentials in the .env file, the default username is admin@openops.com and the password is please-change-this-password-1.

External databases

To use external PostgreSQL or Redis databases, modify the relevant variables in the .env file. You can disable the corresponding containers by adding a profile in the docker-compose.yml file, for example:

services:
  postgres:
    profiles: ["db"]

If you remove or disable the db profile in .env or in Docker Compose, that container won’t start.

After making any changes to the .env file, restart the OpenOps containers:

sudo docker compose down
sudo docker compose up -d

TLS

For production usage, it’s recommended to serve the application over HTTPS. One way to achieve this on GCP is by using a HTTPS Load Balancer to terminate SSL/TLS and forward traffic to your VM. Alternatively, you can configure a TLS proxy or run a reverse proxy like Nginx with Certbot on your VM.

Without TLS, some features (such as certain cloud templates) may not load properly in Safari.

Updating OpenOps to a newer version

See Updating OpenOps.

Support

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