Web interface to easily describe and submit epidisco jobs
JavaScript Python HTML CSS Mako
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
epidiscoweb
migrations setup db Sep 25, 2016
requirements
tests
.eslintrc.json
.gitignore
.isort.cfg
.travis.yml
Dockerfile
LICENSE
Procfile
README.md
autoapp.py
package.json
requirements.txt
setup.cfg
webpack.config.js

README.md

epidisco-web

Web interface to easily describe and submit epidisco jobs

Using the docker image

If you would like to deploy Epidisco Web using Docker, you can use the one the ready-to-go images from dockerhub:hammerlab/epidisco-web:

  $ docker pull hammerlab/epidisco-web

  # Simple settings
  $ export NUMOFWORKERS=1
  $ export EPIPORT=8000

  # Run the image in daemon mode (where gunicorn serves the website)
  $ docker run -d -p $EPIPORT:$EPIPORT hammerlab/epidisco-web -w $NUMOFWORKERS -b 0.0.0.0:$EPIPORT

and browse to localhost:8000.

Quickstart

First, set your app’s secret key as an environment variable. For example, add the following to .bashrc or .bash_profile.

export EPIDISCO_WEB_SECRET='something-really-secret'

Before running shell commands, set the FLASK_APP and FLASK_DEBUG environment variables:

export FLASK_APP=/path/to/epidisco-web/autoapp.py
export FLASK_DEBUG=1

As well as your Mailgun keys, if you'd like to send emails:

export MAILGUN_DOMAIN=mail.example.com
export MAILGUN_API_KEY=key-foo
export MAILGUN_VALIDATION_KEY=pubkey-foo
export ADMIN_FROM_EMAIL=foo@example.com

If not, be sure to set the DISABLE_EMAILS variable to true (export DISABLE_EMAILS=true) so that epidisco-web can be sure you didn't want to send emails.

Although optional, it is highly recommended that you work within an isolated Python environment (such as conda) for the development:

conda create -n eweb python=3
source activate eweb

Then run the following commands to bootstrap your environment:

git clone https://github.com/armish/epidisco-web
cd epidisco-web
pip install -r requirements/dev.txt
npm install

and bundle the Javascript and run Flask:

npm run bundle
flask run

Browsing to localhost:8080, you will see a pretty welcome screen.

Once you have installed your DBMS, run the following to create your app’s database tables and perform the initial migration :

flask db init
flask db migrate
flask db upgrade
flask run

Deployment

In your production environment, make sure the FLASK_DEBUG environment variable is unset or is set to 0, so that ProdConfig is used.

Shell

To open the interactive shell, run :

flask shell

By default, you will have access to the flask app.

Running Tests

To run all tests, run :

flask test

Migrations

Whenever a database migration needs to be made. Run the following commands :

flask db migrate

This will generate a new migration script. Then run :

flask db upgrade

To apply the migration.

For a full migration command reference, run flask db --help.