Skip to content

Commit b145a23

Browse files
authored
Review and refactoring of cloud deployment tutorials (DOC-18) (#269)
1 parent 23ebed3 commit b145a23

File tree

10 files changed

+97
-157
lines changed

10 files changed

+97
-157
lines changed

cloud-access/aws-cf-role-stack.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ description: 'How to set up the OpenOpssApp on AWS CloudFormation'
44
icon: 'aws'
55
---
66

7+
import JoinCommunity from '/snippets/join-community.mdx'
8+
79
The OpenOpsApp role stack for [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) is used to create the `OpenOpsApp` role in your AWS account. This will in turn provide the OpenOps platform with the necessary permissions to connect to your AWS resources.
810

911
When creating the stack, you have the option to enable or disable certain permission sets. While the read-only permission set is mandatory, the rest are completely optional. The sets can also be enabled or disabled later by updating the stack.
@@ -24,6 +26,4 @@ When creating the stack, you have the option to enable or disable certain permis
2426

2527
You’re welcome to [download the stack](https://openops.s3.us-east-2.amazonaws.com/OpenOpsAppRoleStack.yml) and modify specific permissions according to your needs. Notice that some AWS components in the OpenOps workflows may not function properly as a result.
2628

27-
## Support
28-
29-
For any questions or issues, please feel free to join our [Slack community](https://slack.openops.com).
29+
<JoinCommunity />

getting-started/deployment/aws-ec2.mdx

Lines changed: 10 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ icon: 'aws'
66

77
import AutoInstall from '/snippets/auto-install.mdx'
88
import Disclaimer from '/snippets/non-production-disclaimer.mdx';
9+
import ExternalDatabases from '/snippets/external-databases.mdx';
910
import HostValidation from '/snippets/host-validation.mdx';
11+
import JoinCommunity from '/snippets/join-community.mdx'
12+
import ManualInstall from '/snippets/manual-install.mdx';
1013
import { NarrowImage } from '/snippets/narrow-image.jsx'
14+
import NetworkPorts from '/snippets/network-ports.mdx';
1115
import TLS from '/snippets/tls.mdx';
12-
import UpdateCredentials from '/snippets/env-update-credentials.mdx';
1316
import UpdateLink from '/snippets/update-link.mdx';
1417

1518
<Disclaimer/>
@@ -60,61 +63,16 @@ It assumes you have appropriate permissions on an existing AWS account.
6063

6164
<AutoInstall/>
6265

63-
Alternatively, you can follow the manual installation steps:
64-
65-
<Expandable title="Installing OpenOps manually">
66-
1. Install the `unzip` utility:
67-
```shell
68-
sudo apt install unzip
69-
```
70-
2. In CloudShell, create a new directory and download the release files:
71-
```shell
72-
mkdir -p openops && cd openops && \
73-
wget https://github.com/openops-cloud/openops/releases/download/0.6.10/openops-dc-0.6.10.zip && \
74-
unzip -o openops-dc-0.6.10.zip && cp --update=none .env.defaults .env
75-
```
76-
3. Update the application URL to use the instance's public IP address:
77-
```shell
78-
sed -i 's/http:\/\/localhost/http:\/\/'$(wget -4qO - https://ifconfig.io/ip)'/g' .env
79-
```
80-
4. <UpdateCredentials/>
81-
5. Install Docker using Snap:
82-
```shell
83-
sudo snap install docker
84-
```
85-
6. Pull the images and start the Docker containers:
86-
```shell
87-
sudo COMPOSE_PARALLEL_LIMIT=4 docker compose pull -q && sudo docker compose up -d
88-
```
89-
If you encounter a rate limit, rerun the pull command. Note that pulling images may take several minutes.
90-
91-
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`.
92-
</Expandable>
93-
94-
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`).
95-
96-
## External databases
97-
98-
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:
99-
100-
```yaml
101-
postgres:
102-
profiles: ['disabled']
103-
image: 'postgres:14.4'
104-
container_name: 'postgres'
105-
```
106-
107-
After making changes, restart the Docker Compose containers:
108-
```shell
109-
sudo docker compose down && sudo docker compose up -d
110-
```
66+
<ManualInstall target="EC2 instance"/>
67+
68+
<NetworkPorts/>
69+
70+
<ExternalDatabases/>
11171

11272
<TLS target="EC2 instance"/>
11373

11474
<HostValidation/>
11575

11676
<UpdateLink/>
11777

118-
## Support
119-
120-
Feel free to join our [Slack community](https://slack.openops.com) if you have any questions or need help with the installation.
78+
<JoinCommunity/>

getting-started/deployment/azure-vm.mdx

Lines changed: 10 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ icon: 'microsoft'
66

77
import AutoInstall from '/snippets/auto-install.mdx'
88
import Disclaimer from '/snippets/non-production-disclaimer.mdx';
9+
import ExternalDatabases from '/snippets/external-databases.mdx';
910
import HostValidation from '/snippets/host-validation.mdx';
11+
import JoinCommunity from '/snippets/join-community.mdx'
12+
import ManualInstall from '/snippets/manual-install.mdx';
1013
import { NarrowImage } from '/snippets/narrow-image.jsx'
14+
import NetworkPorts from '/snippets/network-ports.mdx';
1115
import TLS from '/snippets/tls.mdx';
12-
import UpdateCredentials from '/snippets/env-update-credentials.mdx';
1316
import UpdateLink from '/snippets/update-link.mdx';
1417

1518
<Disclaimer/>
@@ -51,48 +54,20 @@ You’ll need relevant permissions to create a new VM, edit its networking setti
5154

5255
<AutoInstall/>
5356

54-
Alternatively, you can follow the manual installation steps:
55-
56-
<Expandable title="Installing OpenOps manually">
57-
1. Install the `unzip` utility:
58-
```shell
59-
sudo apt install unzip
60-
```
61-
2. Create a new directory and download the OpenOps release files:
62-
```shell
63-
mkdir -p openops && cd openops && \
64-
wget https://github.com/openops-cloud/openops/releases/download/0.6.10/openops-dc-0.6.10.zip && \
65-
unzip -o openops-dc-0.6.10.zip && cp -n .env.defaults .env
66-
```
67-
3. Edit the application URL to use the machine’s public IP address:
68-
```shell
69-
sed -i 's/http:\/\/localhost/http:\/\/'$(wget -4qO - https://ifconfig.io/ip)'/g' .env
70-
```
71-
4. <UpdateCredentials/>
72-
5. Install Docker using Snap:
73-
```shell
74-
sudo snap install docker
75-
```
76-
6. Pull the images and run the Docker containers (rerun the pull command if you encounter a rate limit):
77-
```shell
78-
sudo COMPOSE_PARALLEL_LIMIT=4 docker compose pull && sudo docker compose up -d
79-
```
80-
81-
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`.
82-
</Expandable>
83-
84-
You can now access the application by navigating to the public IP address of your virtual machine, for example, `http://20.20.20.20`.
57+
<ManualInstall target="VM"/>
58+
59+
<NetworkPorts/>
8560

8661
## Getting credentials for Azure connections
8762

8863
See [this guide](https://docs.google.com/document/d/1WhwMk3he4d4vEv_7hIw7u_4ZIz_8ZewUS1yUKxpdYR0/edit?tab=t.0#heading=h.4lq77bkice4n).
8964

65+
<ExternalDatabases/>
66+
9067
<TLS target="VM"/>
9168

9269
<HostValidation/>
9370

9471
<UpdateLink/>
9572

96-
## Support
97-
98-
Feel free to join our [Slack community](https://slack.openops.com) if you have any questions or need help with the installation.
73+
<JoinCommunity/>

getting-started/deployment/gcp-vm.mdx

Lines changed: 10 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ icon: 'google'
66

77
import AutoInstall from '/snippets/auto-install.mdx'
88
import Disclaimer from '/snippets/non-production-disclaimer.mdx';
9+
import ExternalDatabases from '/snippets/external-databases.mdx';
910
import HostValidation from '/snippets/host-validation.mdx';
10-
import RestartContainers from '/snippets/restart-containers.mdx';
11+
import JoinCommunity from '/snippets/join-community.mdx'
12+
import ManualInstall from '/snippets/manual-install.mdx'
13+
import NetworkPorts from '/snippets/network-ports.mdx';
1114
import TLS from '/snippets/tls.mdx';
12-
import UpdateCredentials from '/snippets/env-update-credentials.mdx';
1315
import UpdateLink from '/snippets/update-link.mdx';
1416

1517
<Disclaimer/>
@@ -59,70 +61,16 @@ Depending on your project settings, a default firewall rule might already allow
5961

6062
<AutoInstall/>
6163

62-
Alternatively, you can follow the manual installation steps:
63-
64-
<Expandable title="Installing OpenOps manually">
65-
1. Install the `unzip` utility:
66-
```shell
67-
sudo apt install unzip
68-
```
69-
2. In your SSH session, create a new directory and download the release files:
70-
```shell
71-
mkdir -p openops && cd openops
72-
wget https://github.com/openops-cloud/openops/releases/download/0.6.10/openops-dc-0.6.10.zip
73-
unzip -o openops-dc-0.6.10.zip
74-
cp -u .env.defaults .env
75-
```
76-
3. Update the application URL to use the instance’s external IP address:
77-
```shell
78-
EXTERNAL_IP=$(curl -4 -s ifconfig.co)
79-
sed -i "s|http://localhost|http://$EXTERNAL_IP|g" .env
80-
```
81-
4. <UpdateCredentials/>
82-
5. Install Docker (for Ubuntu):
83-
```shell
84-
sudo apt-get update
85-
sudo apt-get install -y docker.io
86-
sudo systemctl enable docker
87-
sudo systemctl start docker
88-
```
89-
6. Install Docker Compose (using `docker compose` plugin):
90-
```shell
91-
sudo mkdir -p /usr/local/lib/docker/cli-plugins/
92-
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
93-
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
94-
```
95-
7. Pull the images and start the Docker containers:
96-
```shell
97-
sudo COMPOSE_PARALLEL_LIMIT=4 docker compose pull -q && sudo docker compose up -d
98-
```
99-
If you encounter rate limits, rerun the pull command. Pulling images may take several minutes.
100-
101-
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`.
102-
</Expandable>
103-
104-
You can now access the OpenOps application by navigating to the external IP address of your VM (e.g., `http://<YOUR_EXTERNAL_IP>`).
105-
106-
## External databases
107-
108-
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:
109-
110-
```yaml
111-
services:
112-
postgres:
113-
profiles: ["db"]
114-
```
115-
116-
If you remove or disable the `db` profile in `.env` or in Docker Compose, that container won’t start.
117-
118-
<RestartContainers/>
64+
<ManualInstall target="VM"/>
65+
66+
<NetworkPorts/>
67+
68+
<ExternalDatabases/>
11969

12070
<TLS target="VM"/>
12171

12272
<HostValidation/>
12373

12474
<UpdateLink/>
12575

126-
## Support
127-
128-
Feel free to join our [Slack community](https://slack.openops.com) if you have any questions or need help with the installation.
76+
<JoinCommunity/>

getting-started/deployment/local.mdx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ icon: 'laptop-code'
66

77
import AutoInstall from '/snippets/auto-install.mdx'
88
import HostValidation from '/snippets/host-validation.mdx';
9+
import JoinCommunity from '/snippets/join-community.mdx'
910
import UpdateCredentials from '/snippets/env-update-credentials.mdx';
1011
import UpdateLink from '/snippets/update-link.mdx';
1112

@@ -145,7 +146,4 @@ To do this, you need to set two environment variables in the `.env` file under t
145146
* `OPS_ENABLE_HOST_SESSION=true`: enables sharing of the host session with the platform container.
146147
* `HOST_AZURE_CONFIG_DIR="~/.azure"`: defines the path to the host machine's Azure configuration folder that will be shared with the platform container.
147148

148-
149-
## Support
150-
151-
Feel free to join our [Slack community](https://slack.openops.com) if you have any questions or need help with the installation.
149+
<JoinCommunity/>

reporting-analytics/analytics.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ description: 'How to create and use charts and dashboards in OpenOps Analytics'
44
icon: 'chart-line'
55
---
66

7+
import JoinCommunity from '/snippets/join-community.mdx'
78
import { NarrowImage } from '/snippets/narrow-image.jsx'
89

910
You can visualize data that you collect with [OpenOps tables](/reporting-analytics/tables/) and display the visualizations in the **Analytics** view in OpenOps.
@@ -69,4 +70,4 @@ To upload CSV files into your database, click **+** in the top right corner, the
6970

7071
You can now build charts based on the data from your external data source, similar to how you do it with OpenOps tables. When you add charts to the **FinOps** dashboard, they become available in the **Analytics** view in OpenOps.
7172

72-
Feel free to join our [Slack community](https://slack.openops.com) if you have any questions or need help with your installation.
73+
<JoinCommunity/>

snippets/external-databases.mdx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import RestartContainers from '/snippets/restart-containers.mdx';
2+
3+
## External databases
4+
5+
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:
6+
7+
```yaml
8+
services:
9+
postgres:
10+
profiles: ["db"]
11+
```
12+
13+
If you remove or disable the `db` profile in `.env` or in Docker Compose, that container won't start.
14+
15+
<RestartContainers/>

snippets/join-community.mdx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Support
2+
3+
Feel free to join our [Slack community](https://slack.openops.com) if you have any questions or need help with your installation.

snippets/manual-install.mdx

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import UpdateCredentials from '/snippets/env-update-credentials.mdx';
2+
3+
Alternatively, you can follow the manual installation steps:
4+
5+
<Expandable title="Installing OpenOps manually">
6+
1. Install the `unzip` utility:
7+
```shell
8+
sudo apt install unzip
9+
```
10+
2. Create a new directory and download the OpenOps release files:
11+
```shell
12+
mkdir -p openops && cd openops && \
13+
wget https://github.com/openops-cloud/openops/releases/download/0.6.10/openops-dc-0.6.10.zip && \
14+
unzip -o openops-dc-0.6.10.zip && cp -n .env.defaults .env
15+
```
16+
3. Update the application URL to use the instance's external IP address:
17+
```shell
18+
EXTERNAL_IP=$(curl -4 -s ifconfig.co)
19+
sed -i "s|http://localhost|http://$EXTERNAL_IP|g" .env
20+
```
21+
4. <UpdateCredentials/>
22+
5. Install Docker using Snap:
23+
```shell
24+
sudo snap install docker
25+
```
26+
6. Pull the images and start the Docker containers:
27+
```shell
28+
sudo COMPOSE_PARALLEL_LIMIT=4 docker compose pull -q && sudo docker compose up -d
29+
```
30+
If you encounter a rate limit, rerun the pull command. Note that pulling images may take several minutes.
31+
32+
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`.
33+
</Expandable>
34+
35+
You can now access the OpenOps application by navigating to the public IP address of your {target} (e.g., `http://20.20.20.20`).

snippets/network-ports.mdx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## Network ports used by OpenOps
2+
3+
By default, OpenOps does not require any inbound ports other than the application port `80`.
4+
5+
The following ports are used by bundled services and, in most cases, should not be exposed:
6+
* `5432`: The PostgreSQL database used by OpenOps. Expose this port only if you need direct database access, such as for [connecting OpenOps to external analytics tools](/reporting-analytics/connecting-to-external-tools/). Restrict access to a VPN or a trusted IP range.
7+
* `6379`: OpenOps' internal Redis service. Expose this port only if required for debugging or monitoring purposes. Restrict access to a VPN or a trusted IP range.

0 commit comments

Comments
 (0)