Botium Box - Community Edition [DEPRECATED]
UPDATE 2020/10/23: DEPRECATED
As of 2020/10/23 the community version is fully deprecated. No panic, we offer a much better alternative. Check out the Botium Box Mini!
UPDATE 2020/06/15: As Chatbots grow in importance, automated testing solutions will remain critical for ensuring that Chatbots actually do what their designers intend. We've been busy working on a product that allows testers to have visual insights and deeper understanding in their Chatbot's performance, offering several solutions to boost their interaction! Botium Coach will be introduced to the market as part of our online event on the 24th of June.
Chatbots are driving the industry. With Botium we are driving chatbots. Botium is a suite of open source software components that support chatbot makers in training and quality assurance.
Botium Box is running on standard components available for free. You can install it on your own server (on premise), or use cloud providers for serverless installation, or even a mixture of those approaches.
IF YOU LIKE WHAT YOU SEE, PLEASE CONSIDER GIVING US A STAR ON GITHUB!
Release Notes
Check them out in the Botium Wiki
Getting Botium Box
All you need is part of this Github repository. You can download via git or via curl or manual download, your choice.
Using git
> git clone https://github.com/codeforequity-at/botium-box-basic-dist.git
> cd botium-box-basic-dist
If you already have installed it before and just doing an update, a git pull is enough:
> cd botium-box-basic-dist
> git pull
In case of file conflicts, if you changed the files locally, you will have to merge the changes.
Using curl
> curl -L --output botium-box-basic-dist.zip https://github.com/codeforequity-at/botium-box-basic-dist/archive/master.zip
> unzip botium-box-basic-dist.zip
> cd botium-box-basic-dist-master
If you already have installed it before and just doing an update, you have to download to another location and merge the new files to this directory.
Manual download
Just click on the Clone or download button above and use Download ZIP, unpack the file locally.
Getting Community Edition License
Point your browser to https://registration.botiumbox.com to register and apply for a community license. You will receive it as email attachment named license.key.
Botium Box Installation with AWS CloudFormation
You can install Botium Box with the included AWS CloudFormation template.
You need a working AWS account. There will be costs involved for the created EC2 instance
- Open the Cloud Formation service in the AWS Console and create a new CloudFormation stack
- Upload the CloudFormation template file botium-box-ce-single-instance.template from the cloudformation folder of this repository.
- Enter the Botium Box License key you received earlier (Copy & Paste file content from license.key) and select values for other parameters.
- Use at least a t2.small instance type for first steps
- Use at least a t2.medium instance type for production usages
- After some minutes, the CloudFormation stack is ready, you can see progress in the Events and Resources tabs of the stack
- In the Outputs tab, the URL for accessing Botium Box is shown
Botium Box Installation on Kubernetes
You can run Botium Box on your Kubernetes environment, locally in Minikube, or on a cloud server as Amazon Elastic Kubernetes Service.
Persistent data storage is not part of the Kubernetes definitions in this repository. You can install MySQL in your Kubernetes environment as well. All major cloud providers support hosted MySQL installations, for example
Prerequisites
- A working Kubernetes environment
- kubectl connected to your Kubernetes environment
- A MySQL-compatible database, installed locally or hosted in the cloud
- MySQL connectivity (check Firewalls etc)
- MySQL hostname
- MySQL username
- MySQL password
Download this Git repository to your local workstation.
Adapting Configuration
Copy the file kubernetes/02-configmap.yml.template to kubernetes/02-configmap.yml.
In the file kubernetes/02-configmap.yml, enter your MySQL connection information for the placeholders:
- {{ my-mysql-host-name }}
- {{ my-mysql-user-name }}
- {{ my-mysql-password }}
In the file kubernetes/02-configmap.yml, enter the contents of the license key file your received:
- {{ my-botium-box-license-key }}
IMPORTANT: the double curly brackets are part of the placeholders, so be sure to remove them!
Deploy to Kubernetes
> kubectl apply -f ./kubernetes
Wait several minutes for the cluster to come up, then list the status of the services. The EXTERNAL_IP column in the line starting with box is the URL to point your browser to.
> kubectl get svc -n botium-box-ce
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
box LoadBalancer xxx.xxx.xxx.xxx some-ip-adress 80:32588/TCP 92m
prisma ClusterIP xxx.xxx.xxx.xxx <none> 4466/TCP 92m
redis ClusterIP xxx.xxx.xxx.xxx <none> 6379/TCP 92m
See the log output of Botium Box:
> kubectl logs -l name=box -n botium-box-ce
Use Kubernetes Dashboard (optional)
Optionally you can use Kubernetes web dashboard for basic management operations for Amazon EKS and for Azure AKS.
Changing Configuration and Restarting
When changing the configuration (for example after changing the license key), run this command again:
kubectl apply -f ./kubernetes
To restart the Botium Box, scale down to 0 replicas and scale up again:
kubectl scale --replicas=0 deployment box -n botium-box-ce kubectl scale --replicas=1 deployment box -n botium-box-ce
Botium Box Installation with Docker
You can run Botium Box on your own server on-premise, or on a cloud server - for example, see here for instructions how to set up docker and docker-compose on an Amazon EC2 instance.
Prerequisites
If you have a firewall, you have to make sure that it allows inbound connections to port 4000 (default Botium Box listen port), or any other port if you are not using the default port
Adapting Configuration
In case you are using your own MySQL database, adapt the configuration in docker-compose.yml.
Place the license key file license.key in the resources directory to make it available to Botium Box.
Run Botium Box
The Docker-Compose file contains all prerequisites for running Botium Box and is the recommended and most easy way to run Botium Box.
-
Start Botium Box by running docker-compose:
docker-compose up -d
-
Show log output from docker-compose (optional):
docker-compose logs -f
-
Point your browser to http://127.0.0.1:4000 (or the IP address of your cloud server)
To make your Botium testsets, resources and working directory point to a folder of your choice, you have to edit the docker-compose.yml file!
Update Botium Box
If you already have installed Botium Box before and just want to update to the latest Botium Box build, first get the new files from this repository (see Getting Botium Box above), and then use docker-compose to pull the new images:
> docker-compose stop
> docker-compose rm web
> docker-compose pull
> docker-compose up -d
Data Migration from Previous Release
In most cases, the data will be migrated automatically. Under rare circumstances it will happen that you have to kick of the data migration manually (for example, with Botium Box Release 2.2).
See Botium Wiki for instructions.
Login to Botium Box
Default usernames:
- admin
- testmanager
- tester
- guest
Default password: "nooneknows"
First Steps
See the Botium Wiki for your first steps in Botium Box
Install Samples
Botium Box comes with some sample projects installed. You can find more samples to import into Botium Box here.
Have fun.
Frequently Asked Questions
Can you help me install Kubernetes?
No.
Can you help me setup my Kubernetes cluster?
No.
Can you help me with my Kubernetes problems?
No.
Can you help me install Docker?
No.
Can you help me with my Docker problems?
No.
Can you help me setting up MySQL?
No.
While these answers may sound rude, we are by no means experts in any of these technologies, and there are better places to ask for help on these topics!