Skip to content

Installation

Follow those simple step to install new instance of Supervisely to your server.

Pre-requirements

Before you start installation of Supervisely to your host, please make sure your server meets hardware & software requirements below.

Hardware

Minimum hardware requirements are the following:

  • CPU: 4 vCPUs / cores
  • Memory: 8 GB RAM
  • Hard drive: 100 GB storage or more

Choose hard drive size according to your needs. There is also an option to attach any S3 compatible storage to distribute data in your cloud.

Change storage path if necessary

If don't have enough free space on a system drive, but you have mounted another, you can change place where the data is stored by changing DATA_PATH in .env file

GPU instance deployment

If you plan to use smart tool (AI powered semantic segmentation) or model zoo (human-in-the-loop) you will need a server with GPU. Requirements are the following:

  • GPU Memory: 8 GB or more (GeForce GTX 1080, Tesla K80, Tesla P100)

You can install Supervisely and run GPU computations on a different machines using agents (see cluster).

AWS & cloud providers

We recommend to use the following EC2-instances for deployment in AWS:

  • 1 × m5.2xlarge — the platform itself
  • 1 × p2.xlarge — (for Training Module)

Software

You will need the following software to run Supervisely:

  • OS: Linux with kernel 3.10 or newer. Debian-based distributions are preferable: Ubuntu 16.04, Ubuntu 14.04, Debian Jessie
  • Docker CE >= 17.09.1
  • Docker Compose >= 1.18.0

Also, if you plan to use train & run models, make sure you have the following software installed:

Add $USER to docker group

Please make sure you have completed Post-installation steps during installation of Docker. If not, you should prepend commands below with sudo

Installation

When all requirements above have been installed, you can run Supervisely

Step 1. Deploy configuration

In installation package you will find files .env and docker-compose.yml.

Create a new directory on your server anywhere you want (for example, /opt/supervisely) and place those two files in that directory.

Step 2. Setup configuration

Open file .env. There are some configuration variables that you might want to change. Look for <please, insert the value here> - you need to provide values here explicitly, because we don't know those values in advance.

Here are some variables that you can find here:

  • SERVER_ADDRESS - Public or local network address of server where you deploy Supervisely. That value will be used by agents to connect to the cluster. Example: 192.168.1.42 or supervisely.intranet
  • STORAGE_ACCESS_KEY - Access key for S3 integration (optional)
  • STORAGE_SECRET_KEY - Secret key for S3 integration (optional)

Step 3. Run instance

Now it's time to start Supervisely instance. Copy-paste and run those lines in terminal (make sure your working directory is the one with config files):

SERVER_ADDRESS=$(grep "SERVER_ADDRESS=" .env | cut -d '=' -f2-)
AGENT_DOCKER_REGISTRY=$(grep "AGENT_DOCKER_REGISTRY=" .env | cut -d '=' -f2-)
AGENT_DOCKER_LOGIN=$(grep "AGENT_DOCKER_LOGIN=" .env | cut -d '=' -f2-)
AGENT_DOCKER_PASSWORD=$(grep "AGENT_DOCKER_PASSWORD=" .env | cut -d '=' -f2-)

echo "$AGENT_DOCKER_PASSWORD" | docker login "$AGENT_DOCKER_REGISTRY" -u "$AGENT_DOCKER_LOGIN" --password-stdin && \
docker-compose pull && \
docker-compose up -d logstash router http-storage postgres redis && \
sleep 60 && \
docker-compose up migrator && \
docker-compose up -d

if [ 0 -eq $? ]; then
  health_check=$(curl -s -o /dev/null -w "%{http_code}" "$SERVER_ADDRESS/api/health")
  retries=0

  while [[ "$health_check" -ne 200 ]]
  do
    sleep 10
    retries=$((retries+1))

    if [[ retries -ge 6 ]]; then
      echo 'Something went wrong. Please contact support'
      exit 1
    fi

    echo "Retrying connect to api: $retries"
  done

  echo 'Supervisely started successfully. Check this out $SERVER_ADDRESS'
fi;

First, this script will login into our private docker registry with credentials, provided in .env. Next, docker-compose pull will pull docker images from registry and finally, docker-compose up -d will run every service defined in docker-compose.yml in detached mode.

This can take a while, so you please relax and grab yourself come coffee ☕.

Step 4. Enter license key

When the script has finished, you can open Supervisely in your web browser. Go to http://localhost page. You will see the following:

Enter your license key from file license.key here and press "Update license".

You should see a "Success" message - your license has been updated.

Step 5. Start using Supervisely!

Now you can refresh current page. You will see login box:

Enter default credentials: login and password admin. Now your are in. Welcome!

Pro tip

We strongly advice you to complete post-installation steps after initial setup.

Troubleshooting

I open "http://localhost" but see an error

Database is still initializing. Wait a minute and try again.

I try to login but see "You have no permissions for this action. Please, contact administrator."

One of our internal services haven't got the license key. Refresh the page and try again.

When i deploy an agent i see a "runtime" error

Nvidia container runtime has not been installed. Try to run command docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi to see if it works.

If you don't want to run train & inference tasks, please remove checkbox "Use nvidia runtime" under advances settings in new node modal window and run deploy command again.

Import fails with FINAL_ACTION_ERROR

Please make sure that you have drag-and-dropped a folder and not files itself.

There are no or just a few models in Model Zoo

Models are still downloading. It can take a while, just wait some time and refresh Model Zoo page.