Data server for data plots.
Developer documentation at https://livedata-ornl.readthedocs.io/en/latest/
- Pixi
- Docker and Docker Compose
- direnv (optional)
-
Clone the repository and
cdinto the project directory. -
Create a pixi environment
live_data_server, containing all the dependenciespixi install pixi shell
-
To deploy this application locally, you will need to set a number of environment variables, for example (bash):
export DATABASE_NAME=livedatadb export DATABASE_USER=livedatauser export DATABASE_PASS=livedatapass export DATABASE_HOST=db export DATABASE_PORT=5432 export LIVE_PLOT_SECRET_KEY="secretKey" # These need to be set for `pytest`, # but are not used in the docker compose export DJANGO_SUPERUSER_USERNAME=$DATABASE_USER export DJANGO_SUPERUSER_PASSWORD=$DATABASE_PASS
Notes:
-
The
DATABASE_PORTmust be set to5432, as Postgres is configured to listen on that port by default. If you need to change the port, you will need to modify thedocker-compose.ymlfile accordingly. -
It is recommended to save these variables into an
.envrcfile which can be managed by direnv. direnv will automatically load the variables when youcdinto the project directory.
-
-
After the secrets are set, type in the terminal shell:
make docker/compose/local
This command will copy
deploy/docker-compose.envlocal.ymlintodocker-compose.ymlbefore composing all the services.Type
make helpto learn about other macros available as make targets. For instance,make docker/pruneallwill stop all containers, then remove all containers, images, networks, and volumes.
After the setup, with the server running, you can test your setup by running pytest:
pixi run test
# or
pytestNOTE:
The environment variables DJANGO_SUPERUSER_USERNAME and DJANGO_SUPERUSER_PASSWORD are defined in the docker-compose.envlocal.yml file, but pytest does not read this file.
You must either have them exported to the shell where pytest is to be run, as described above, or modify the pytest command to include them, e.g.:
DJANGO_SUPERUSER_USERNAME=***** DJANGO_SUPERUSER_PASSWORD=***** pytest- Repository managing the provision for deployment:
- hardware and networking for deployment: https://code.ornl.gov/sns-hfir-scse/infrastructure/neutrons-test-environment/-/blob/main/terraform/servers.tf#L85-97
- configuration independent of source code changes: https://code.ornl.gov/sns-hfir-scse/infrastructure/neutrons-test-environment/-/blob/main/ansible/testfixture02-test.yaml
- Repository managing deployment of the source to the provisioned hardware: https://code.ornl.gov/sns-hfir-scse/deployments/livedata-deploy
Additional documentation is available in the docs directory. To build the documentation in your local machine,
run the following command from within directory docs/:
pixi run -e docs make htmlThe documentation will be built in the docs/_build/html directory. To view the documentation,
open the docs/_build/html/index.html file in a web browser.