Skip to content

Commit

Permalink
Merge pull request #33 from CoronaWhy/develop
Browse files Browse the repository at this point in the history
Fixing all inconsistencies with infra in develop branch.
  • Loading branch information
antonpolishko authored Mar 2, 2021
2 parents 91ab200 + 2c3f9f6 commit d7a34e8
Show file tree
Hide file tree
Showing 114 changed files with 665 additions and 333 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributives/*/var/
distributives/*/*/var/
distros/*/var/
distros/*/*/var/

# vim swap
[._]*.s[a-v][a-z]
Expand Down
8 changes: 8 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
BeFAIR (Be Findable, Accessible, Interoperable, Reusable) Open Science Framework was created in January 2021 as yet another CoronaWhy Labs infrastructure project.
The ultimate goal of BeFAIR is to provide both local and distributed networked services for researchers, based on cutting-edge technologies and easy to use.
In FAIR we trust, come and join us!

Here is an incomplete list of MUCH-APPRECIATED CONTRIBUTORS, in the alphabethical order:
Anton Polishko (Coronawhy)
Maksym Komar (Evologics GmbH)
Slava Tykhonov (DANS-KNAW, the Royal Netherlands Academy of Arts and Sciences)
9 changes: 5 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
include mk/helpers.mk

DISTRO_ACTIVE_LINK=distributive-active
DISTROS_DIR=distros
DISTRO_ACTIVE_LINK=distro-active

# help: show all targets with tag 'help'
help:
@$(call generate-help,$(MAKEFILE_LIST) mk/common.mk)
@$(call generate-help,$(MAKEFILE_LIST) mk/distro-common.mk)
.PHONY: help

# help: run configurator
Expand All @@ -17,9 +18,9 @@ menuconfig-docker:
docker run -it --rm -v $(shell pwd):/work -w /work ubuntu /work/bin/menuconfig
.PHONY: menuconfig-docker

# help: check all distributives consistency
# help: check all distros consistency
check-all:
@for DIR in distributives/*; do \
@for DIR in $(DISTROS_DIR)/*; do \
printf "============================="; \
printf " Checking %-20s " $$DIR; \
printf "=============================\n"; \
Expand Down
27 changes: 14 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ BeFAIR (Be Findable, Accessible, Interoperable, Reusable) Open Science Framework
BeFAIR is a Common Distributed Research Infrastructure where users can add and run any tools and components by themselves using Debian's way of managing services.
All selected services should be available on a selected subdomain name and could be easily integrated together with [Dataverse](https://dataverse.org), BeFAIR data repository.

BeFAIR distributive was designed as out-of-the-box Distributed Networked Infrastructure that any research community can install with one command just as normal Operating System. The roadmap includes releases containing Open Data available for the different sciences, however [COVID-19 Data Hub](http://datasets.coronawhy.org) is our current priority.
BeFAIR was designed as out-of-the-box Distributed Networked Infrastructure that any research community can install with one command just as normal Operating System. The roadmap includes releases containing Open Data available for the different sciences, however [COVID-19 Data Hub](http://datasets.coronawhy.org) is our current priority.

# Acknowledgements
BeFAIR infrastructure is standing the Shoulder of Giants. Please find below the acknowledgements for resources and contributions from the finished on ongoing projects.
Expand Down Expand Up @@ -35,9 +35,9 @@ The list of services integrated in BeFAIR:
* [INDRA](https://indralab.github.io) (INDRA REST API https://indra.readthedocs.io/en/latest/rest_api.html)
* [Apache Superset](https://github.com/apache/superset) (in progress)
* [FAIRDataPoint](https://github.com/FAIRDataTeam/FAIRDataPoint) (in progress)
* CoronaWhy API (FastAPI with OpenAPI spec)

To Do (we re accepting Pull Requests, please join the project if you want to contribute!):
* CoronaWhy API (FastAPI with OpenAPI spec)
* Elasticsearch
* SPARQL endpoint (Virtuoso as a service)
* Grlc (SPARQL queries into RESTful APIs convertor)
Expand All @@ -46,9 +46,9 @@ To Do (we re accepting Pull Requests, please join the project if you want to con
* OCR Tesseract (OCR as a service)
* Kibana

BeFAIR is using Traefik load balancer and proxy service. Please define traefikhost in the configuration of your distributive (see distributive/ folder) to start enabled services.
BeFAIR is using Traefik load balancer and proxy service. Please define traefikhost in the configuration of your distro (see distros/ folder) to start enabled services.

if you want to enable some service, for example, INDRA, run this from ./distributives/your_domain_name where your_domain_name should correspond to your domain (default is localhost):
if you want to enable some service, for example, INDRA, run this from ./distros/your_distro_name where your_distro_name should correspond to your project name or domain (default is localhost):
```
ln -s ../../services-available/indra.yaml indra.yaml
```
Expand Down Expand Up @@ -77,24 +77,25 @@ newgrp docker

If you see the message: "ERROR: Network traefik declared as external, but could not be found", please create the network manually using `docker network create traefik` and try again.

After Docker is installed you can run BeFAIR:
After Docker is installed you can check the consistency of all BeFAIR distros:
```
git clone https://github.com/CoronaWhy/befair
cd befair
cd distributives
make check-all
```

You'll find a lot of distributives for the different research communities there. Choose some of the, for example, "fair", and start with command:
You can find all available installations in distros/ folder. Different distros are suitable for various research communities.

Choose some distro, for example, "fair", and start/stop all services with commands:
```
cd fair
cd distros/fair
make up
make down
```

Warning: please use init commands for Apache Airflow and Apache Superset:
```
make airflow
make superset
```
# Menuconfig

BeFAIR has a tool to manage all services, it's located in bin/menuconfig. You can enable/disable both services and distros there in a convinient way.

# Citation for the academic use

Expand Down
18 changes: 9 additions & 9 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
+ check yaml syntax
+ .env is present
- [menuconfig] user can use command 'e) export' even if menu for it not showed becouse
of error in active distributive. need to fix
of error in active distro. need to fix
- [menuconfig] implement export docker-compose.override.yaml from *.override.yaml files
- [menuconfig] handle .env files in

Expand All @@ -13,30 +13,30 @@
- [menuconfig] view/edit services

- make export, make export-tgz
- make menuconfig from distributive directory and exports/(?)
- make menuconfig from distro directory and exports/(?)


+ services-avalable/*.mk
- allow run several distributives in same host
- allow run several distros in same host
- fix tcp ports intersection
- build custom docker images from images/
+ make config
+ make new-distro
- add to HACKING.md example how to make new serivce using whoami service
+ implement consistency of distributive checking (see check_consistency() in bin/menuconfig)
+ implement consistency of distro checking (see check_consistency() in bin/menuconfig)
- track service dependence from other services
+ add possibility remove (backup?) distributives
+ add possibility remove (backup?) distros

+ [menuconfig] add/remove service to current distributive from services-available/
+ [menuconfig] add/remove service to current distro from services-available/
+ symbolic link default yaml
- copy of example env/config/secrets files

- create new service from skeleton typical compose service ..
+ create new distributive by copying existent
+ create new distributive from scratch
+ create new distro by copying existent
+ create new distro from scratch
- use some skeleton project or it(?)

- switch between default service and distributive specific and/or customized service
- switch between default service and distro specific and/or customized service
- backup/remove service customizations

- make log upper menu. remove clear. before drawing menu store cursor,
Expand Down
Loading

0 comments on commit d7a34e8

Please sign in to comment.