The application is deployed on whisper.webredirect.org.
Note: The application server is currently turned off.
You can find the work on the front end and back end in the respective repositories and branches:
-
Front End:
- Repository: Front End Repository
- Branch:
production
-
Back End:
- Repository: Back End Repository
- Branch:
production
Note: The files in this repository are the same as those in the other repositories. They are included here for easy access.
The application utilizes two Azure VMs:
- One dedicated to the application.
- One dedicated to Jenkins for continuous integration and continuous deployment (CI/CD).
This project is fully containerized using Docker, with Docker Compose simplifying the deployment process.
- Frontend: Handles the user interface and client-side logic.
- Backend: Manages the server-side logic and database interactions.
- Jenkins: Manages the continuous integration and continuous deployment (CI/CD) process.
All these images are pushed to Docker Hub for easy access and deployment. You can find them here: Docker Hub.
Below is the list of containers running on the application server:
- Frontend: The built image for handling the user interface and client-side logic.
- Backend: The built image for managing server-side logic and database interactions.
- Redis: Utilized for caching to enhance application performance.
- Fluentd: Responsible for collecting and managing logs.
Below is the list of containers running on the Jenkins server:
- Jenkins: The built image for handling the CI/CD process.
NGINX acts as a reverse proxy and web server for the application. It handles incoming requests and routes them as follows:
- Requests starting with
/apior/socket.ioare routed to the backend container. - All other requests are served by the frontend container.
This setup ensures seamless communication between the frontend and backend while serving static assets efficiently.
-
Pull Request Creation:
- A pull request is created to merge changes into the
productionbranch. - This triggers a workflow that builds the application and runs automated tests to ensure functionality and stability.
- A pull request is created to merge changes into the
-
Merge and Deployment:
- Once the pull request is approved and merged into the
productionbranch:- The pipeline pushes the updated application image to Docker Hub.
- A deployment script is triggered, which deploys the new image to the application server.
- Once the pull request is approved and merged into the
Both the frontend and backend have two scripts for deployment:
- Deploy Script: This script runs on the Jenkins machine and SSHs into the application server.
- Remote Deploy Script: This script runs on the application server to pull the updated image and restart the service.

