How to deploy OpenOps on an AWS EC2 instance
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.
com.amazonaws.us-east-1.ec2-instance-connect
, depending on your region. This allows you to connect to the instance via AWS CloudShell.
The final rules should look like this:
Run the following command in your terminal to install, update, configure and run OpenOps:
Alternatively, you can follow the manual installation steps:
unzip
utility:
.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
).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
). 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
.
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:
After making changes, restart the Docker Compose containers:
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.
TLS requires configuring a custom domain (e.g., https://openops.your-company.com
) to serve your OpenOps installation instead of its public IP address.
To get a custom domain with TLS up and running, you need to set up an AWS Application Load Balancer (ALB) with a valid TLS certificate from AWS Certificate Manager (ACM), then create a new DNS record and update your OpenOps configuration.
openops.your-company.com
)./api/v1/health
openops.your-company.com
A
(Alias) or CNAME
openops-alb-123456789.us-east-1.elb.amazonaws.com
).env
file to reflect your new domain:
If you encounter a 503 error:
.env
./api/v1/health
).For more troubleshooting guidance, see this AWS troubleshooting guide.
See Updating OpenOps.
Feel free to join our Slack community if you have any questions or need help with the installation.
How to deploy OpenOps on an AWS EC2 instance
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.
com.amazonaws.us-east-1.ec2-instance-connect
, depending on your region. This allows you to connect to the instance via AWS CloudShell.
The final rules should look like this:
Run the following command in your terminal to install, update, configure and run OpenOps:
Alternatively, you can follow the manual installation steps:
unzip
utility:
.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
).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
). 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
.
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:
After making changes, restart the Docker Compose containers:
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.
TLS requires configuring a custom domain (e.g., https://openops.your-company.com
) to serve your OpenOps installation instead of its public IP address.
To get a custom domain with TLS up and running, you need to set up an AWS Application Load Balancer (ALB) with a valid TLS certificate from AWS Certificate Manager (ACM), then create a new DNS record and update your OpenOps configuration.
openops.your-company.com
)./api/v1/health
openops.your-company.com
A
(Alias) or CNAME
openops-alb-123456789.us-east-1.elb.amazonaws.com
).env
file to reflect your new domain:
If you encounter a 503 error:
.env
./api/v1/health
).For more troubleshooting guidance, see this AWS troubleshooting guide.
See Updating OpenOps.
Feel free to join our Slack community if you have any questions or need help with the installation.