Pages

Friday, August 21, 2020

Running Bot Libre Community Edition using Kubernetes on Amazon AWS

This forum post will go over how to run the Bot Libre Community Edition containers from AWS using kubectl on a Kubernetes setup.

What is Kubernetes?

According to kubernetes.io, "Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available."

For an overview of Kubernetes, visit https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/.

You can also visit their home page at https://kubernetes.io/.

Required Software:

  • Kubernetes
  • kubectl

Ensure that kubectl and Kubernetes are configured properly before proceeding

Firewall:

Before starting up the server, make sure to set up your firewall correctly for Bot Libre.

Bot Libre Community Edition requires the following ports to be open:

22 – SSH
80 – HTTP
443 – HTTPS
25 – SMTP
465 – SMTPS
110 – POP3
995 – POP3S
143 – IMAP
993 – IMAPS
6665 – IRC

The procedure for how to set up the firewall depends on the firewall you are using. For example, an Amazon EC2 instance would use security groups. For a typical Linux server, iptables can be used.

For the bare minimums, only the HTTP port needs to be accessible.

AWS Marketplace Product Subscription

You will gain access to the Bot Libre Community Edition container registry by subscribing on the AWS Marketplace.

  1. Go to https://aws.amazon.com/marketplace.
  2. Search for Bot Libre Community Edition, and filter for container products.
    https://aws.amazon.com/marketplace/pp/B08FXT93P9
  3. Click on "Continue to Subscribe".
  4. Read the Terms and Conditions, and click on "Accept Terms".
  5. After your request has been processed, click on "Continue to Configuration".
  6. Select the latest version, and click on "Continue to Launch".

Deploying the Containers

  1. Log in to the Bot Libre Community Edition container registry using the following command:
    • $ aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 117940112483.dkr.ecr.us-east-1.amazonaws.com
  2. Download our Kubernetes manifest file from our GitHub. This can be done with the following command:
  3. Apply the manifest using kubectl:
    • $ kubectl apply -f kubemanifests.yaml
  4. Wait until the app-web and app-db pods are ready.
    • You can use the following command to watch the status of the pods:
      • $ watch kubectl get pods
  5. (Optional) Set up HTTP port forwarding to the app-web pod with the following command:
    • $ kubectl port-forward --address 0.0.0.0 app-web 80:80
    • This can be repeated for other ports to enable Bot Libre to connect to other services.
  6. Open the home page on a web browser. This will take up to 3 minutes to load. If you are starting the container for the first time, a random admin password will be generated.

Retrieving the Admin Password

  1. Once the page has been loaded on a web browser, use the following command with the container name to retrieve the admin password:
    • $ kubectl logs app-web | grep "ADMIN PASSWORD"
  2. Log in to Bot Libre on your web browser by using the username "admin" and the password you have just retrieved.
    • We recommend that you update your admin password after logging in. This is because if the logs have been erased, then you will no longer be able to access the default admin password.

Running the Bot Libre Community Edition docker containers on Amazon AWS

This forum post will go over how to run the Bot Libre Community Edition containers from AWS using Docker Compose on any machine.

Required Software:

Firewall:

Before starting up the server, make sure to set up your firewall correctly for Bot Libre.

Bot Libre Community Edition requires the following ports to be open:

22 – SSH
80 – HTTP
443 – HTTPS
25 – SMTP
465 – SMTPS
110 – POP3
995 – POP3S
143 – IMAP
993 – IMAPS
6665 – IRC

The procedure for how to set up the firewall depends on the firewall you are using. For example, an Amazon EC2 instance would use security groups. For a typical Linux server, iptables can be used.

AWS Marketplace Product Subscription

You will gain access to the Bot Libre Community Edition container registry by subscribing on the AWS Marketplace.

  1. Go to https://aws.amazon.com/marketplace.
  2. Search for Bot Libre Community Edition, and filter for container products.
    https://aws.amazon.com/marketplace/pp/B08FXT93P9
  3. Click on "Continue to Subscribe".
  4. Read the Terms and Conditions, and click on "Accept Terms".
  5. After your request has been processed, click on "Continue to Configuration".
  6. Select the latest version, and click on "Continue to Launch".

Deploying the Containers

  1. Log in to the Bot Libre Community Edition container registry using the following command:
    • $ aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 117940112483.dkr.ecr.us-east-1.amazonaws.com
  2. Download our docker-compose.yml configuration file from our GitHub. This can be done with the following command:
  3. Build and create the containers with the following command:
    • $ sudo docker-compose up --no-start
  4. To start the containers, run the following command:
    • $ sudo docker-compose start
  5. Open the home page on a web browser (this is the same IP address as the server where the Docker commands are run). This will take up to 3 minutes to load. If you are starting the container for the first time, a random admin password will be generated.
    • If you are unsure about your server's public IP address, you can use the following command:
      • $ curl ifconfig.me

Retrieving the Admin Password

  1. Once the page has been loaded on a web browser, use the following command to retrieve the default admin password:
    • $ sudo docker-compose logs | grep "ADMIN PASSWORD"
  2. Log in to Bot Libre on your web browser by using the username "admin" and the password you have just retrieved.
    • We recommend that you update your admin password after logging in. This is because if the logs have been erased, then you will no longer be able to access the default admin password.