This the repository hosting the code for the Combinatorial Labelling Optimisation Algorithm Web Service. It is comprised of several microservices:
optimisation-worker
- a container that contains and runs the optimisation algorithm from the final-year-project repositorycompute-api
- a HTTP API that ingests optimisation jobs and passes them on to the optimisaiton worker using a message queapi
- a HTTP API that exposes additional functionality, such as saved jobs and results from the databasefrontend
- a NGINX web server that serves a static React application that interacts with the application APIsreverseproxy
- a NGINX web server that redirects requrests to the two APIs and static frontend from a single endpointpostgresdb
- a Postgres database used to store user optimisation jobs and job resultsredis
- a Redis instance used as a message-queing medium for theoptimisation-worker
andcompute-api
containersphppgadmin
- a PHPGAdmin instance used to grapically manage thepostgresdb
database
This diagram shows the microservices part of this application:
Running this service requires you to have Docker
and docker-compose
installed. To start all the application services, run the following command:
$ sudo docker-compose up
This will create and run all the containers detailed in the previous section. The docker-compose
network will expose the reverseproxy
container on ports 8000
and 8443
for HTTP
and HTTPS
traffic respectively.
It will also expose the phppgadmin
container on port 5580
and 50443
for HTTP
and HTTPS
traffic resepctively.
It should be noted that this software is not production ready.