Installation

The recommended way to use the BEL.bio API is to use the docker image. We publish the released BEL.bio API releases as docker images on Dockerhub at https://hub.docker.com/r/belbio/bel_api/.

Configuration

Configuration is described in the BEL Python package documentation

Configuration documentation

Docker Compose

# docker-compose build && docker-compose up -d
version: "3.2"

volumes:
  bel_arango_data:
    driver: local
  bel_elasticsearch_data:
    driver: local
  bel_kibana_data:
    driver: local

services:

  # BEL API - core requirement
  # belbio_conf api_url: http://localhost:8000
  bel_api:
    container_name: bel_api
    image: belbio/bel_api
    ports:
      - "8000:8000"
    volumes:
      - ./belbio_conf.yml:/app/belbio_conf.yml
      - ./belbio_secrets.yml:/app/belbio_secrets.yml
    environment:
      - SERVER_MODE=DEV
      - traefik.enable=true
      - traefik.backend=bel_api
      - traefik.frontend.rule=Host:belapi.test;PathPrefixStrip:/v1
      - traefik.port=8000
    # restart: always

  # ArangoDB - document/graph store - core requirement
  # belbio_conf arangodb_host: localhost  port: 8529
  bel_arangodb:
    container_name: bel_arangodb
    image: arangodb:3.3.4
    ports:
      - "8529:8529"
    volumes:
      - bel_arango_data:/var/lib/arangodb3
    environment:
      - ARANGO_NO_AUTH=1
    healthcheck:
         test: curl -f bel_arangodb:8529/_api/version || exit 1
    # restart: always

  # Elasticsearch - terminology search - core requirement
  # belbio_conf elasticsearch: http://localhost:9200
  bel_elasticsearch:
    container_name: bel_elasticsearch
    image: docker.elastic.co/elasticsearch/elasticsearch:6.1.0
    ports:
      - "9200:9200"
    volumes:
      - bel_elasticsearch_data:/usr/share/elasticsearch/data
      - ./elasticsearch.yml:/conf/elasticsearch.yml
    # logging:
    #   driver: none
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - xpack.security.enabled=false
      - xpack.watcher.enabled=false
    ulimits:
      memlock:
        soft: -1
        hard: -1
    # deploy:
    #   resources:
    #     limits:
    #       memory: 1g
    # restart: always

Development Installation

Please read Contributing to understand how to contribute to this project.

  1. Fork the bel_api project at https://github.com/belbio/bel_api
  2. git clone <your project fork>
  3. make dev_install
  4. To make bel python package editable pip install -e <directory of bel python package>