Interact with an approximate model of Australia's National Electricity Market Dispatch Engine (NEMDE) via an API. Users submit NEMDE case files to the API which are posted to a Redis Queue. Workers monitoring the queue take these parameters, formulate and solve an optimisation problem approximating NEMDE, and then post results back to the queue.
This repository is intended to provide a simple interface allowing users to interact with the model. There is no need to set up solvers or dependancies - these are all managed using Docker containers. If you're interested in model development please see https://github.com/akxen/nemde. Learn how to use the API and explore potential use cases at https://akxen.github.io/dispatch-api-docs.
- Clone repository:
git clone --recurse-submodules https://github.com/akxen/dispatch-api
- Set up MySQL database environment variables. Rename
mysql/nemde-mysql-template.env
tomysql/nemde-mysql.env
. SetMYSQL_PASSWORD
andMYSQL_ROOT_PASSWORD
environment variables. - Set up API environment variables. Rename
api/config/nemde-api-base-template.env
toapi/config/nemde-api-base.env
. Set missing envirnoment variables. EnsureMYSQL_PASSWORD
is the same asMYSQL_ROOT_PASSWORD
inmysql/nemde-mysql.env
. - Set up Redis Queue dashboard environment varaibles. Rename
dashboard-template.env
todashboard.env
. - Set up NEMDE worker environment variables. Rename
nemde-worker/config/nemde-worker-template.env
tonemde-worker/config/nemde-worker.env
. Use the following settings for missing environment variables:
Name | Value |
---|---|
REDIS_HOST | nemde_redis |
REDIS_PORT | 6379 |
REDIS_DB | 0 |
REDIS_QUEUE | public |
- Run
docker-compose up --build
to run services. - See the docs at https://akxen.github.io/dispatch-api-docs to explore potential use cases.