Learning Deployment Hands-On

Vanshika Sabharwal2025-10-26

During my internship with Palisadoes, I had the incredible opportunity to work closely with the President himself on the Deployment section of their projects. This experience gave me a hands-on understanding of real-world deployment practices and the inner workings of a professional codebase.

One of the first things I did was gain access to the Server. The President sent me an SSH key and instructed me to set up a password for myself. Once I completed that, I could access the whole server. As the project was divided into three main components: frontend, backend, and mobile. I primarily worked on the frontend and backend, which allowed me to see how different parts of a system interact and how deployment is managed across multiple services.

While going through the code, I noticed a CRON job designed to continuously pull the latest code from the GitHub repository. This was an eye-opening experience, as it demonstrated how automated scripts ensure the codebase stays up-to-date without manual intervention. I also observed an interesting issue we were facing: CORS errors.

The problem arose because we were using two different frontend URLs, one for the web and another for mobile. Thankfully, the CORS issue was not there for mobile. The problem was that the backend was allowing all frontend web URLs to make requests. This caused issues when an auth token was sent from the frontend to the backend. I learned that the correct way to resolve this was to explicitly allow only the specific frontend web URL that should access the backend, ensuring secure and smooth communication between services.

Through this process, I also gained a deeper understanding of how nightly deployments were handled. The CRON job ran every night to update the codebase, followed by a bash script that deployed the latest version. Additionally, I learned that the deployment was being managed on an Apache server, with a purchased domain name pointing to it, making the project accessible online.

This internship taught me not only the technical aspects of deployment but also how automation, proper configuration, best practices, and server management play a crucial role in delivering reliable software. Being involved directly in these processes, especially under the guidance of the President, was a truly enriching learning experience.