Deploying the MetalSoft controller

The MetalSoft controller runs as a collection of docker containers.


  • A system with at least 8CPU; 16GB RAM; 50GB SSD
  • SSL certificate for your domain.
  • docker-ce, docker-compose

The following instructions apply to a Centos 7.x host but any operating system that supports docker should work.

Install Docker and Docker-compose

yum -y install epel-release
#this is required only for troubleshooting
#yum -y install libselinux-python vim-enhanced wget screen tmux mc telnet mtr traceroute git tcpdump links parted xfsprogs ntp htop bash-completion psmisc bwm-ng yum-protectbase
yum -y install device-mapper-persistent-data lvm2
wget -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
wget -O /usr/local/bin/docker-compose
chmod u+x,g+x /usr/local/bin/docker-compose
systemctl enable docker
systemctl start docker
mkdir -p /root/agents /opt/BSIAgentsVolume /opt/Agent_logs /opt/agents /opt/containerd

Prepare your environment

Create a SSL certificate for you chosen domain and copy it to /opt/bsi-certs/${SUBDOMAIN}.${DOMAIN}.pem. It will be used by haproxy

Run the initialization script that will create required environment variables.

$ ./

Copy docker-compose.yml file to a new directory in your $HOME**

$ mkdir ~/docker-infra

$ cp docker-compose.yml ~/metalsoft-controller/

Bring the containers up

Bring the containers up.

$ cd ~/docker-infra/

$ docker-compose up -d