
Initial deployment (Jan 2022)
On request of our client, I have set up basic dockerised deployment for our service on Linode, the backend lives on a docker container running Ubuntu, with Python, Docker, Postgres and the requirements installed. We have mounted the backend image to our Linode server's docker daemon so we can run docker commands within the docker image.
The database also lives on a Postgres image, details on deployment are on the readme of the backend repo. Database data, models, and datasets are all stored with volumes, so data isn't erased if the model goes down. Jeffrey has also written a docker file for the frontend.
We split our code into two repositories, frontend and backend, as these two are independent, so having them on the same repo makes it unnecessarily big and messy. Currently, we have cloned our 2 repos onto the Linode server, and when we showed our client, we simply built the frontend and backend images and exposed the frontend on port 3000. We understand this does not follow best practices, and the next step is to set up a reverse proxy with NGINX.