Skip to content

databio/bedhost

Folders and files

NameName
Last commit message
Last commit date

Latest commit

df515de · Mar 13, 2024
Dec 19, 2023
Mar 13, 2024
Mar 1, 2024
Mar 13, 2024
Mar 13, 2024
Nov 10, 2023
Apr 30, 2021
Dec 18, 2023
Oct 30, 2019
Jan 16, 2020
Mar 1, 2024
Dec 19, 2023
Nov 2, 2020
Nov 9, 2023

Repository files navigation

bedhost

Code style: black Github badge

bedhost is a Python FastAPI module for the API that powers BEDbase. It needs a path to the bedbase configuration file, which can be provided either via -c/--config argument or read from $BEDBASE_CONFIG environment variable.


dfgeaf Deployed public instance: https://bedbase.org/

Documentation: https://docs.bedbase.org/bedhost

API: https://api.bedbase.org/

Source Code: https://github.com/databio/bedhost/


Running for development

Running with uvicorn provides auto-reload. To configure, this assumes you have previously set up databio/secrets.

  1. Source .env file to populate the environment variables referenced in the configuration file.
  2. Start bedhost using uvicorn and pass the configuration file via the BEDBASE_CONFIG env var.
source ../bedbase.org/environment/production.env
BEDBASE_CONFIG=../bedbase.org/config/api.bedbase.org.yaml uvicorn bedhost.main:app --reload

You can change the database you're connecting to by using a different config file:

  • Using a local config: BEDBASE_CONFIG=../bbconf/tests/data/config.yaml uvicorn bedhost.main:app --reload
  • With new database: BEDBASE_CONFIG=../bedbase.org/config/bedbase2.yaml uvicorn bedhost.main:app --reload

Now, you can access the service at http://127.0.0.1:8000. Example endpoints:

  • 127.0.0.1:8000/bed/78c0e4753d04b238fc07e4ebe5a02984/img/open_chromatin
  • 127.0.0.1:8000/bed/78c0e4753d04b238fc07e4ebe5a02984/img_path/open_chromatin
  • 127.0.0.1:8000/bed/78c0e4753d04b238fc07e4ebe5a02984/file/bedfile
  • 127.0.0.1:8000/bed/78c0e4753d04b238fc07e4ebe5a02984/file_path/bedfile
  • 127.0.0.1:8000/bed/78c0e4753d04b238fc07e4ebe5a02984/metadata
  • 127.0.0.1:8000/bed/78c0e4753d04b238fc07e4ebe5a02984/metadata?attr_ids=md5sum&attr_ids=genome

Running the server in Docker

Building image

  • Primary image: docker build -t databio/bedhost -f .Dockerfile .
  • Dev image docker build -t databio/bedhost:dev -f dev.Dockerfile .
  • Test image: docker build -t databio/bedhost:dev -f test.Dockerfile .

Existing images can be found at dockerhub.

Running container for development

Configuration settings and deployment instructions are in the bedbase.org repository.


Deploying updates automatically

The bedhost/databio image is built by a github action. It will build and push the latest image whenever a release is made. It will also tag that release with a tag for the release name.

For the dev tag, you must deploy this through manual dispatch