- React
- Webpack
- Typescript
- Tachyons
- Backend: Sanic and jinja2
- Install docker: https://docs.docker.com/install/
- Install docker-compose: https://docs.docker.com/compose/install/
- Install Node 10: https://github.com/nvm-sh/nvm
- Install yarn: https://yarnpkg.com/en/docs/install
In one terminal, run make serve
to start the python server.
In another terminal, run yarn watch
to start the bundler.
Run yarn fix
to lint and auto-format your code using Prettier. Run yarn test
to run the test suite. Note that if Prettier complains, then tests will fail.
Run make reset
to do a hard reset of your docker build, deleting containers and volumes.
There are a few dockerfiles:
Dockerfile
- production imagedev/Dockerfile-python
- development python imagedev/Dockerfile-node
- development js/css watcherdocker-compose.yaml
- development docker-compose config
To build locally, first increment the semantic version in scripts/local-build.sh
and then run that script.
Building for deployment is done via Github Actions. Once a branch is ready for deployment, do a release through Github. An action will be run that builds the Docker image and sends it to Dockerhub. See deployment.md for detailed instructions.
These environment variables can be set:
URL_PREFIX
- path prefix for all links and asset urls (css, js, images) that get generated in the app. Used when behind an nginx proxy.KBASE_ENDPOINT
- prefix to all KBase service endpoints - usually something likehttps://kbase.us/services
for production.KBASE_ROOT
- prefix to all UI asset URLs -https://narrative.kbase.us
in production.