InterPro curation system
Pronto is a web application aiming to assist InterPro curators in creating/editing InterPro entries.
- Python>=3.11 with
oracledb,Flask,mysqlclient, andpsycopg. - A public database link to the
LITPUBdatabase (literature service) must exist. - Several
PRONTO_*tables must exist in Oracle, see SCHEMA.md.
Deploy the code locally:
git clone https://github.com/ProteinsWebTeam/pronto.git
cd pronto
pip install .Create a copy of config.cfg (e.g. config.local.cfg), and set the following options:
ORACLE_IP- Connection string for InterPro production Oracle database.ORACLE_GOA- Connection string for GOA production Oracle database.MYSQL- Connection string for InterPro7 MySQL database.POSTGRESQL- Connection string for Pronto PostgreSQL database.SECRET_KEY- key used to sign cookies (prevent forgery).
Format for connection strings: <user>/<password>@<host>:<port>/<schema>.
Run the following command, then copy the printed string and paste it into the config file.
python -c "import os; print(os.urandom(16).hex())"Pronto relies on the file the PRONTO_CONFIG environment variable points to. On Linux or OS X, you can set this environment variable with:
export PRONTO_CONFIG=/path/to/config/fileEasy to use and convenient for development, but not suitable for production.
export FLASK_APP=pronto
export FLASK_ENV=development
flask runAfter installing Gunicorn, run the command below to start Pronto with four worker processes:
gunicorn -w 4 -b 127.0.0.1:5000 pronto:appTo accept connections from all your network (i.e. not only your local machine), and detach the server from the terminal:
gunicorn --daemon -w 4 -b 0.0.0.0:5000 pronto:app
# To kill the process:
# kill `ps aux |grep gunicorn | grep pronto | awk '{print $2}'`