Phenoflow - Import parsed definitions and make them available for generation as CWL workflows
-
Create a
.env
file in project root -
Add
NODE_EXTRA_CA_CERTS=certs/phenoflow.pem
- Add GitHub Enterprise credentials:
GHE_ACCESS_TOKEN=
- (Optional) Add a Zenodo sandbox webhook for DOIs
GHE_ZENODO_WEBHOOK=
- Generate an RSA private key (for JWT signing), generated by
openssl genrsa -out key.pem 2048
, and reference its location (e.g.certs/key.pem
, if the key is generated and stored within certs):
RSA_PRIVATE_KEY_FULL_PATH=
- Add the following, which should be chosen at random:
DEFAULT_PASSWORD=
MYSQL_ROOT_PASSWORD=
MYSQL_USER=
MYSQL_PASSWORD=
MYSQL_DATABASE=
- Add GitHub credentials:
GITHUB_ACCESS_TOKEN=
- (Optional) Add a Zenodo webhook for DOIs
GITHUB_ZENODO_WEBHOOK=
- Generate an RSA private key (for JWT signing), generated by
openssl genrsa -out key.pem 2048
, and reference its name only, e.g.key.pem
:
RSA_PRIVATE_KEY=
- Add a path on the target deployment host to the RSA private key (without the key name), e.g.
/home/ubuntu/.certs/
:
HOST_RSA_PRIVATE_KEY_PATH=
Note: As this is used as a pseudo secret by compose, permissions must be edited.
- Create a node virtual environment (within a python virtual environment), and activate it:
python -m venv .venv
. .venv/bin/activate
pip install nodeenv
nodeenv .nenv
. .nenv/bin/activate
- Install dependencies:
cat requirements.txt | xargs npm install -g
- Run server:
npm start
- Deployment is via Docker. If using remote machine, ensure it is activated:
docker context use [machine-name]
- From the root directory, build container:
docker compose -f docker-compose.dev.yml build
- Run container:
docker compose -f docker-compose.dev.yml up -d
- From the root directory, build container:
docker compose build
- Run container:
docker compose up -d
- Run all tests:
npm test
- Run specific test(s), e.g.:
NODE_ENV=test npx mocha -g "basic" --exit
-
Specify test ID (e.g. `TB1') in docker-compose.dev.test.yml.
-
From the root directory run:
docker-compose -f docker-compose.dev.test.yml build;
docker-compose -f docker-compose.dev.test.yml up;
-
Specify test ID in docker-compose.test.yml.
-
From the root directory run:
docker-compose -f docker-compose.test.yml build;
docker-compose -f docker-compose.test.yml up;
Notes:
-
Tests can be used to set up a default user if you wish to run Phenoflow as a private instance.
-
Tests can also be used to import phenotypes from different data sources.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
This project is licensed under the MIT License - see the LICENSE.md file for details.