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
LITPUB
database (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/file
Easy to use and convenient for development, but not suitable for production.
export FLASK_APP=pronto
export FLASK_ENV=development
flask run
After installing Gunicorn, run the command below to start Pronto with four worker processes:
gunicorn -w 4 -b 127.0.0.1:5000 pronto:app
To 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}'`