Issue Link

Issue from Wednesday with screenshots

Deployment Services/Packages review

Docker

Docker allows different applications to be stored in separate containers with different configurations and necessary dependencies. The container in this case is self-sufficient and contains all the stuff needed to run the backend. This allows for the easy management of python/pip packages and ports. Because the ports and dependencies are specified in the container (docker-compose.yml and Dockerfile), the running backend will be able to communicate with the rest of the world through the port 8080 in my case. Persistent data management is also made possible because everything is mounted to the container, meaning that even if it is stopped the data will be there.

Nginx

Nginx is a web server/reverse proxy server used to forward requests from the users to backend servers. In the deployment case, we used Nginx as a means to receive HTTP/HTTPS requests from clients trying to access the page, forwarding them to the backend servers. In a way, the nginx server is acting as a middleman between the user and the actual backend. In real life, nginx can protect applications by acting as a layer of defense, filtering out malicious requests and performing load balancing tasks.

Route 53

Route 53 is a DNS web service by AWS. It translates domain names (website.com) into IP addresses. In our deployment case, Route 53 helps by storing the registered domain name, mapping it to an IP (203.nighthawkcodingsociety.com -> public IP of the terminal). It allows users to access the backend through a domain name instead of an IP address.

Certbot

Certbot obtains and renews SSL/TLS certificates for websites. These are cryptographic keys that encrypt data transmitted between the user’s browser and the website’s server. In our deployment case, Certbot helps to ensure secure access to the website, protecting any sensitive information from being revealed or tampered with. The process by which the user accesses the website is basically encrypted using public/private key encryption.