open targets platform angular.js front end https://www.targetvalidation.org
283
This is the web app for the Open Targets Platform, based on the Open Targets REST API. The app is based on Angular, while D3 is used for visualization and graphs.
Depending on how you deploy, you might want to do two things:
custom.json config that overrides the value in
app/config/<general,dictionary,datatypes,datasources>/default.json,for example to change evidence_sources displayed
NB: In general, you shouldn't use custom.json to override the {"api":}
variable of the app, otherwise the deploy steps described below will fail.
custom.json to /app/config/**/ to change your fork's
configuration. When deploying with netlify, the custom.json cannot be
changed without first commiting it to the code.yarn run full-setup) and the directory served (app).netlify.toml to point to your API. The app will point to the API
specified with APIHOST in the netlify.toml file.A docker container with a compiled version of the webapp from a NGINX web server is available on quay.io
To run the app locally using the container:
docker run -d -p 8443:443 -p 8080:80 quay.io/opentargets/webapp
Then visit https://localhost:8443
The standard container comes with self-signed certificates, so you will have click through a couple of security warnings to get to the app.
You can specify the variables:
"REST_API_SCHEME=http" (http or https are valid option, https is the default)"REST_API_SERVER=server.example.com" (eg. rest_api to point to a container
named rest_api or api.opentargets.io to point to the production api.
production api is the default)"REST_API_PORT=80" (default is the HTTPS/443 port)The default value is used for each variable if it's not specified.
docker run -d -p 8443:443 -p 8080:80 -e "REST_API_SCHEME=https" -e "REST_API_SERVER=devapi.appspot.com" -e "REST_API_PORT=443" quay.io/opentargets/webapp
Any other modifications, including changing the custom.json for the container,
cannot be made at runtime. You'd have to create your own fork/modifications.
Read on to the developing section.
Installation and tests need some node.js tools: you must have node.js and its
package manager npm installed. You can get them from
http://nodejs.org/
Installing gulp globally also helps
npm install -g gulp
Clone the repository and install the dependencies. Tools are installed via NPM (and yarn)
git clone https://github.com/opentargets/webapp.git
cd webapp
npm full-install
## or use yarn directly
yarn run full-install
This installs the required node modules and calls jspm install which takes
care of all Angular dependencies and 3rd party widgets. So these commands create
three directories:
node_modules - npm packages for the needed tools (http-server and modules
for testing); also all Angular code.app/jspm_packages - some of the packages needed for loading widgets on
demand (deferred loading)Angular code is installed via Bower includes:
After you make your changes you will want to build and run the application:
APIHOST env variable to point to a fully functional rest_api.
Notice that APIHOST can be of the form "https://somesite.com:1234/api/" (recommended)
or a simple prefix /api/ if you are taking care of reverse-proxying the
API there (for eg if you are serving the app locally in nginx)custom.json with your configurations to override the ones
contained in default.jsonyarn run setup or gulp build-all/app.custom.json) and not have to
rebuild the whole app, you can change the APIHOST env var (or
custom.json) and then run only gulp build-configAny webserver that can serve the /app directory will do.
NOTE to have a fully functional app, you also need to have your web server
to reverse proxy /proxy to https://proxy.opentargets.io. In nginx this is
achieved with the following change to nginx.conf:
location /proxy/ {
proxy_pass https://proxy.opentargets.io/;
}
TODO
You can run a nginx webserver using docker and mount the app folder as a volume.
We have a container that is derived from nginx:alpine which you can use
docker run -d --name webapp -p 7899:80 -p 7443:443 -v $PWD/webapp/app:/var/www/app quay.io/opentargets/webapp
Notice that any change to the code will require you to rebuild the content of the app and possibly restart the nginx container.
NB if you do this with the standard nginx container you have to take care
to redirect /proxy to https://proxy.opentargets.io
You can also build your own container, if you want to change the nginx configuration.
NB before building the container you should have built the app at least once,for eg. with gulp build-all
docker build -t mywebapp .
# wait for the build to finish
docker run -d -p 7899:80 -p 7443:443 mywebapp
# or if you want to keep changing the code, mount the volume:
docker run -d -p 7899:80 -p 7443:443 -v $PWD/webapp/app:/var/www/app mywebapp
If you push some changes to the branch, a container with the tag of the branch will be publicly available after a few minutes on quay.io
docker pull quay.io/opentargets/webapp:<yourbranchname>
Read about how to create platform plugins here.
Content type
Image
Digest
Size
17.1 MB
Last updated
over 8 years ago
docker pull thehyve/webapp