Skip to content

askomics/flaskomics-docker-compose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AskOmics - docker-compose file

Some docker-compose files to deploy AskOmics and all its dependencies.

Install docker and docker-compose

# docker
sudo curl -sSL https://get.docker.com/ | sh
# docker-compose
# Debian/ubuntu
sudo apt install -y docker-compose
# Fedora
sudo dnf install -y docker-compose

Deploy AskOmics to perform queries on your own data

  • flaskomics
  • celery-flaskomics (flaskomics worker)
  • redis (database, celery dependency)
  • virtuoso (triplestore)
  • nginx (web proxy)
  • (optional) ouroboros (auto-updater)

Deploy AskOmics with a federated query engine to perform queries on multiple endpoints

  • flaskomics
  • celery-flaskomics (flaskomics worker)
  • redis (database, celery dependency)
  • virtuoso (triplestore)
  • corese (federated query engine)
  • nginx (web proxy)
  • (optional) ouroboros (auto-updater)

Deploy AskOmics dependencies without AskOmics, and persist data

  • redis (database, celery dependency)
  • virtuoso (triplestore)
  • corese (federated query engine)
  • galaxy

Deploy AskOmics dependencies without AskOmics, on different port than dev, and without data persistence. Use this to launch the AskOmics continuous integration (test.sh on AskOmics repository)

  • redis (database, celery dependency)
  • virtuoso (triplestore)
  • corese (federated query engine)
  • galaxy

Configure AskOmics

All properties defined in askomics.ini can be configured via the environment variables defined in the file askomics.env. The environment variable should be prefixed with ASKO_ and have a format like ASKO_$SECTION_$KEY. $SECTION and $KEY are case sensitive.

If you use AskOmics in production mode, the following 3 properties have to be updated with random string:

  • ASKO_flask_secret_key
  • ASKO_askomics_password_salt
  • ASKO_triplestore_password

You can easily obtain a random string with these commands:

python3 -c 'import random as r, string as s; print("".join(r.choices(s.printable[:62], k=20)))'
# or
pwgen -s 20 1

ASKO_triplestore_password have to be the same as DBA_PASSWORD in the virtuoso image.

Configure Virtuoso

All properties defined in virtuoso.ini can be configured via the environment variables defined in virtuoso.env. The environment variable should be prefixed with VIRT_ and have a format like VIRT_$SECTION_$KEY. $SECTION and $KEY are case sensitive.

Update the VIRT_Parameters_NumberOfBuffers and VIRT_Parameters_MaxDirtyBuffers environments according to how much memory do you want to allow to Virtuoso:

Memory available (GB) NumberOfBuffers MaxDirtyBuffers
2 170000 130000
4 340000 250000
6 510000 375000
8 680000 500000
16 1360000 1000000
32 2720000 2000000
48 4000000 3000000
64 5450000 4000000

Run AskOmics

Clone this repository

# Clone
git clone https://github.com/xgaia/flaskomics-docker-compose.git
# cd
cd flaskomics-docker-compose

Choose between standalone and federated

# Clone
cd standalone
# Or
cd federated

Update the config

vim askomics.env
vim virtuoso.env

Pull images

sudo docker-compose pull

Run dockers

sudo docker-compose up -d

See logs

sudo docker-compose logs -f

Update

# Down, pull and re-run
sudo docker-compose down
sudo docker-compose pull
sudo docker-compose up -d

Update with complete reset (database, files, rdf graphs ...)

# Down, pull and re-run
sudo docker-compose down
sudo rm -rf output
sudo docker-compose pull
sudo docker-compose up -d

About

docker-compose files for AskOmics (rebuilded)

Resources

Stars

Watchers

Forks

Packages

No packages published