Docker Installation

In this page we go over different options and configurations available for installing Remo using Docker.

The latest containers are made available in Docker Hub. You can check for available tags here: https://hub.docker.com/r/rediscoveryio/remo/tags.

Some points to note when using Docker:

  • access to Remo via the Electron interface is not current available
  • you have the option to run a separate PostgreSQL server for increased reliability (default behaviour is to have a separate container for a PostgreSQL server)

The code below will create a remo_home folder, which it's used to store the config file and to store data.

Installation steps

1. Docker-compose tool

If it's not installed already, you will need to install the docker-compose tool: https://docs.docker.com/compose/install/ .

# install docker, docker-compose
sudo apt update
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# if this doesn't work, you might have to logout and login again, or reboot
newgrp docker

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

2. Download docker-compose.yml

We will be using this yml file, which is similar to the one below.

You can notice that it contains the Remo version under rediscoveryio/remo:0.5.6. Make sure to change the version number to the last available in our Docker Hub.

In case you want to link data from your machine in Remo, you'd have to make a path outside the Container visible to the inside by adding it to the backend volume section.

For example, if you add:

- /home/andrea/data/my_datasets:/datasets

you would make the local path /home/andrea/data/my_datasets visible inside the container as /datasets/.

You can then use the path inside the container to pass folders and files to Remo.

# docker-compose.yml file
version: '3.2'

volumes:
  postgres_data: {}

services:
  postgres:
    image: postgres:11-alpine
    restart: always
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=remo
      - POSTGRES_DB=remo
      - POSTGRES_PASSWORD=remo
    ports:
      - "5432:5432"

  # change the tag to the latest from Docker Hub
  remo:
    image: rediscoveryio/remo:0.5.8
    depends_on:
      - postgres
    volumes:
      - ./remo_home:/root/.remo
    ports:
      - "8123:8123"
    links:
      - postgres

3. Build Container

Once you downloaded the file, you can run Remo using the following:

    docker-compose up -d

Finally, you can access Remo by browsing to http://localhost:8123/:

External PostgreSQL server

If installing Remo with Docker, you have the option to have PostgreSQL server running elsewhere for increased reliability.

By default, Docker installation of Remo would create two separate containers, one for the app and one for the DB.

To have Remo connect to an external PostgreSQL server and automatically create the database there:

1. Specify DB URL

Set the right database URL in remo.json config file.

By default, this would look like this:

"db_url": "postgres://remo:[email protected]:5432/remo"

2. Launch the app with docker run

    docker run \
    -v $(pwd)/remo_home:/root/.remo \
    -p 8123:8123 \
    --name remo \
     rediscoveryio/remo:0.5.6

This will automatically look for the database URL in the config file. If you don't have a config file yet, you can also set the DB_URL using an env variable

    docker run \
    -e DB_URL='postgres://user:[email protected]:5432/db_name'
    -v $(pwd)/remo_home:/root/.remo \
    -p 8123:8123 \
    --name remo \
     rediscoveryio/remo:0.5.6