Skip to content

bibbox/sys-bibbox

Repository files navigation

Publish Docker image Build Status Node.js GitHub top language GitHub language count GitHub last commit

BIBBOX

Size Limit logo by Anton Lovchikov

The BIBBOX Framework serves as a Basic Infrastructure Building Box (BIBBOX), which provides software solutions in form of apps for biobanking and bioinformatics. It provides the possibility to install apps and serve them directly towards the End-User. In the current state we are building apps to support pathologists, bioinformaticians and biobanks in their direct work as well as in Data-Management.

Size Limit CLI

Documentation

Please refer to the online documentation at bibbox.readthedocs.io, which includes installation instructions, a user guide and a developer guide for the BIBBOX system.

The frontend is built automatically. If you want to make some changes you can rebuild it with the following command:

docker compose -f docker-compose_frontend_builder.yml up --build -d

How It Works

  • Apps provided in the BIBBOX-Store can be easily installed with a few clicks and without any IT-knowledge.
  • Installed instances can be managed in the Instances tab.
    • See the apps dashboard by clicking the gear symbol on the bottom left of the apps tile.
    • Logs of an app are accessed by clicking the book symbol in the bottom-middle of the apps tile.
  • In the Activities tab each event can be expanded and contains a short descriptions about the nature of the given error.
  • The log of the individual system container of the BIBBOX can be inspected in the Sys Logs tab.

Quicktstart (for development)

Please follow the install instructions on our read the docs page - Install Bibbox(Linux) - for further details.

Show short instructions
  1. Install docker and docker-compose

  2. Create the bibbox location folder

cd /opt
sudo mkdir bibbox
cd bibbox
  1. Clone the repository
sudo git clone https://github.com/bibbox/sys-bibbox.git
cd sys-bibbox
  1. Run the installation script
sudo docker network create bibbox-default-network
sudo bash INSTALL.sh
  1. Domain-Settings
  • When asked to specify domainname:
    • You have a public domain under which you BIBBOX is running
    • Add the URL you want to use locally to your /etc/hosts file (or use localhost)
    • Set up a DNS Service (e.g.:dnsmasque) to create a local domain

Initial Login

  • username: tempadmin
  • password: tempadmin

After the first installation please login in as tempadmin --> switch to the Users tab and create a propper admin user. Logout and login as the newly created admin user so that you can delete the tempadmin, this ensures no one else can access your bibbox using the default tempadmin login. Please note that the tempadmin user is not a fully functional user.

Debug Tools

Celery Monitor

http://127.0.0.1:5011

Adminer

http://127.0.0.1:5012

Show default access for the Postgres database
  • server: postgres
  • username: postgres
  • password: postgres
  • database: bibbox

cadvisor

http://127.0.0.1:5013

Customization

Login Theme:

In order to customize the login theme use the theme files in keycloak/themes/custom/login.

Landing Description

Simply change the html text in the frontend/src/assets/landing.html file. The changes will automatoically be loaded. After installation, this text can still be changed under the following path: /opt/bibbox/sys-bibbox/frontend/dist/sys-bibbox-client/assets/landing.html.

Structure

The BIBBOX is structured in multiple docker containers:

apacheproxy

Proxy to enable access to the individual installed app and serves the angular frontend.

backend

The backend is built with Flask. Flask is a Python web application framework based on the Web Server Gateway Interface (WSGI) toolkit.

celery

Celery is a task manager which distributes tasks to worker instances. Celery usually uses a message broker such as Redis for the distribution of tasks.

celery-monitor

Monitor to inspect celery task.

postgres

Postgres is used as database and stores activity ,and system log information, which can be accessed via the frontend.

redis

Redis is an in-memory data structure store, used as a (NoSQL) database, cache, and message broker.

adminer

Adminer can be used to access and manage databases.

cadvisor

cadvisor (Container Advisor) provides resource usage and performance characteristics of the running containers.

keycloak