Custom MongoDB installation
Instructions for installing MongoDB instead of running it in docker
The following guide will show how to run the configuration and monitoring GUI using Docker compose. The OS specific parts of the guide, how to install Docker and aws-cli, is written for Ubuntu 22.04.
First install Docker on the machine you want to run the GUI and the GUI database:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
To access the Agile Docker container registry to pull the GUI image, you need to log in install and log into AWS CLI
Install AWS CLI:
sudo apt-get install unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
Configure AWS access, use the access key id and secret access key that you should have received from Agile Content.
Set region to eu-north-1
and leave output format as None
(just hit enter):
aws configure --profile agile-live-gui
AWS Access Key ID [None]: AKIA****************
AWS Secret Access Key [None]: ****************************************
Default region name [None]: eu-north-1
Default output format [None]:
Login to Agile’s AWS Elastic Container Repository to be able to pull the container image: 263637530387.dkr.ecr.eu-north-1.amazonaws.com/agile-live-gui
. If your user is in the docker
group, sudo
part can be skipped.
aws --profile agile-live-gui ecr get-login-password | sudo docker login --username AWS --password-stdin 263637530387.dkr.ecr.eu-north-1.amazonaws.com
The GUI uses MongoDB to store information. When starting up the MongoDB Docker container it will create a database user that the GUI backend will use to communicate with the Mongo database.
Create the file mongo-init.js
for the API user (replace <API_USER>
and <API_PASSWORD>
with a username and password of your choice):
productionsDb = db.getSiblingDB('agile-live-gui');
productionsDb.createUser({
user: '<API_USER>',
pwd: '<API_PASSWORD>',
roles: [{ role: 'readWrite', db: 'agile-live-gui' }]
});
Create a file docker-compose.yml
to start the GUI backend and the MongoDB instance. Give the file the following content:
version: '3.7'
services:
agileui:
image: 263637530387.dkr.ecr.eu-north-1.amazonaws.com/agile-live-gui:latest
container_name: agileui
environment:
MONGODB_URI: mongodb://<API_USER>:<API_PASSWORD>@mongodb:27017/agile-live-gui
AGILE_URL: https://<SYSTEM_CONTROLLER_IP>:<SYSTEM_CONTROLLER_PORT>
AGILE_CREDENTIALS: <SYSTEM_CONTROLLER_USER>:<SYSTEM_CONTROLLER_PASSWORD>
NODE_TLS_REJECT_UNAUTHORIZED: 1
NEXTAUTH_SECRET: <INSERT_GENERATED_SECRET>
NEXTAUTH_URL: http://<SERVER_IP>:<SERVER_PORT>
BCRYPT_SALT_ROUNDS: 10
UI_LANG: en
ports:
- <HOST_PORT>:3000
mongodb:
image: mongo:latest
container_name: mongodb
environment:
MONGO_INITDB_ROOT_USERNAME: <MONGODB_USERNAME>
MONGO_INITDB_ROOT_PASSWORD: <MONGODB_PASSWORD>
ports:
- 27017:27017
volumes:
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
- ./mongodb:/data/db
Details about some of the parameters:
latest
tag for always starting the latest version, set to :X.Y.Z
to lock on a specific version.HOST_PORT
of choice to access the GUI at.API_USER
and API_PASSWORD
should match what you wrote in mongo-init.js
openssl rand -base64 32
Start the UI container by running Docker compose in the same directory as the docker-compose.yml
file`:
sudo docker compose up -d
Once the containers are started you should now be able to reach the GUI at the host-port
that you selected in the docker-compose.yml
-file.
To login to the GUI, use username admin
and type a password longer than 8 characters. This password will now be stored in the database and
required for any new logins. For more information on how to reset passwords and add new users, read more here
After signing in to the GUI, the statuses in the bottom left should all be green, else there is probably a problem in your System Controller or database configuration in the docker-compose.yml
-file.
To stop the GUI and database container run:
sudo docker compose down
On Windows operating system, the GUI supports redirecting the user via links to VLC. To make this work, the following open-source program needs to be installed: https://github.com/stefansundin/vlc-protocol/tree/main
This is not supported on Linux or Mac.
Instructions for installing MongoDB instead of running it in docker