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 EC2 instance. It assumes you have appropriate permissions on an existing AWS account.

Initial deployment

Create a new EC2 instance

  1. On the EC2 home page, click Launch Instance: Launch instance
  2. Choose a name for your instance and configure the following settings:
    • Application and OS Images (Amazon Machine Image)
      • Choose Ubuntu as the instance image, as it simplifies Docker installation. Ubuntu Server 24.04 LTS was the latest available version when this guide was written.
      • Keep 64-bit (x86) as the instance architecture.
    • Instance Type. The t3.large instance type provides decent performance. You can choose a different type according to your needs, but it’s not recommended to select a size smaller than t3.medium.
    • Key Pair. Creating a new SSH key pair is recommended but not mandatory.
    • Network Settings. Allow SSH traffic from your own IP address: Network settings
    • Configure Storage. Choose 50GB to ensure you have enough space for Docker images and databases.
  3. Launch the instance and navigate to it once it’s created by clicking on the instance ID. Instance launched
  4. Configure the network settings and open the necessary ports. Under Security, click on the security group. Security tab Click Edit inbound rules, then Add rule, and add two rules:
    1. In the first rule, for Type, choose HTTP, and under Source, select My IP.
    2. In the second rule, for Type, choose SSH. Click the text box next to Source, and select the prefix list that contains the words “ec2-instance-connect”. The full name should be similar to com.amazonaws.us-east-1.ec2-instance-connect, depending on your region. This allows you to connect to the instance via AWS CloudShell. Prefix lists The final rules should look like this: New inbound rules
  5. Click Save rules to finish the configuration.

Connect to the instance with CloudShell

  1. Navigate to your EC2 instance and click Connect to open an in-browser CloudShell session. Connect Connect to instance
  2. Click Connect and wait for CloudShell to initialize.

Install OpenOps

Run the following command in your terminal to install, update, configure and run OpenOps:
curl -fsS https://openops.sh/install | sh
Alternatively, you can follow the manual installation steps: You can now access the OpenOps application by navigating to the public IP address of your EC2 instance (e.g., http://20.20.20.20).

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: Disabling a profile After making changes, restart the Docker Compose containers:
sudo docker compose down && sudo docker compose up -d

Enabling TLS

For production usage, it’s recommended to enable TLS (HTTPS). In addition to the security aspect, this also ensures that workflow templates load properly in all browsers. The easiest way to enable TLS is to use an OpenOps script that requests and sets up a TLS certificate from Let’s Encrypt. Before running the script, make sure you have a domain name that points to your ‘s external IP address. If you’re configuring DNS right before running the script, you may need to wait for the DNS change to propagate.
  1. Run the following command in your terminal:
    curl -fsS https://openops.sh/tls | sh
    
  2. When prompted, enter a domain name that points to the external IP address of your .
  3. When prompted, enter an email address to receive certificate-related notifications from Let’s Encrypt.
The script will use the Certbot library to request a certificate for your domain from Let’s Encrypt. It receives and saves the certificate, updates the OpenOps configuration file accordingly, and restarts OpenOps. By default, the certificate expires in 3 months. See https://certbot.org/renewal-setup if you want to configure auto-renewal.

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.