Repository of feature models in UVL format integrated with Zenodo and FlamaPy - Developed by DiversoLab
git clone https://github.com/diverso-lab/uvlhub.git
Create an .env
file in the root of the project with this information. It is important to obtain a token in Zenodo first.
FLASK_APP_NAME=UVLHUB.IO
MYSQL_HOSTNAME=db
MYSQL_DATABASE=uvlhubdb
MYSQL_USER=uvlhubuser
MYSQL_PASSWORD=uvlhubpass
MYSQL_ROOT_PASSWORD=uvlhubrootpass
ZENODO_ACCESS_TOKEN=<GET_ACCESS_TOKEN_IN_ZENODO>
To deploy the software under development environment, run:
docker compose -f docker-compose.dev.yml up -d
This will apply the migrations to the database and run the Flask application.
However, if during development there are new changes in the model, run inside the web
container:
flask db migrate
flask db upgrade
To run unit test, please enter inside web
container:
pytest app/tests/units.py
docker compose -f docker-compose.prod.yml up -d
To have an elastic growth of services, the use of Docker Swarm is recommended.
First, we start a new cluster
docker swarm init --advertise-addr <IP_SERVER>
Now, we start the services
docker stack deploy -c docker-compose.swarm.yml uvlhub
To stop the deployment:
docker stack rm uvlhub
To generate a new certificate, run:
chmod +x ssl_setup.sh && ./ssl_setup.sh
To renew a certificate that is less than 60 days from expiry, execute:
chmod +x ssl_renew.sh && ./ssl_renew.sh
To update all project dependencies automatically, run:
chmod +x update_dependencies.sh && ./update_dependencies.sh
Note: it is the responsibility of the developer to check that the update of the dependencies has not broken any functionality and each dependency maintains backwards compatibility. Use the script with care!