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-workerandcompute-apicontainersphppgadmin- a PHPGAdmin instance used to grapically manage thepostgresdbdatabase
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.
