📤 TASK PORTAL 5 — SUBMISSION METHOD

After completing the tasks, collect all files, source code, configuration files, screenshots, reports, and other evidence related to your completed tasks in one properly organized folder.

Please follow the submission process below carefully.

1️⃣ Create One Main Submission Folder

Create a folder using the following naming format:

DevOps_Internship_Task_Portal_5_YourName

2️⃣ Create Separate Folders for Each Task

Inside the main folder, create separate folders for all 8 tasks:

DevOps_Internship_Task_Portal_5_YourName/ ├── Task_1_Linux_Server_Administration/ ├── Task_2_Git_GitHub_Workflow/ ├── Task_3_Docker_Containerization/ ├── Task_4_Docker_Compose/ ├── Task_5_GitHub_Actions_CICD/ ├── Task_6_Cloud_Deployment_Nginx/ ├── Task_7_Monitoring_Logging/ └── Task_8_Complete_DevOps_Project/

3️⃣ Put All Relevant Evidence Inside Each Task Folder

  • Source code files
  • Dockerfiles
  • Docker Compose files
  • GitHub Actions workflow files
  • Configuration files
  • Terminal/command screenshots
  • Application screenshots
  • Cloud deployment screenshots
  • Monitoring and logging screenshots
  • Task-specific documentation
  • Any other evidence requested for that task

4️⃣ Add a Final Internship Report

Inside the main folder, create a final PDF report containing:

  • Your name and internship details
  • Tasks completed
  • Technologies/tools used
  • Project descriptions
  • Problems encountered and solutions
  • GitHub repository links
  • Deployment details
  • Monitoring approach
  • Final project screenshots
  • Key learning outcomes

5️⃣ Share the Complete Folder

Upload the complete main folder to Google Drive or another suitable cloud-storage service.

Set the folder sharing permission so that the internship team can access the submitted files.

Share the folder with:

📧 hr@corporatewebsol.com

6️⃣ Submit the Folder Link

Copy the shareable folder link and submit the link through the designated internship task submission form/portal.

Recommended sharing setting:
Make sure the submitted folder can be accessed by the internship evaluation team. If you use restricted sharing, specifically add hr@corporatewebsol.com as a viewer/editor according to the instructions provided by the team.

7️⃣ Final Folder Checklist

  • ☐ All 8 task folders created
  • ☐ Required files added to each task folder
  • ☐ Screenshots added
  • ☐ Source code added
  • ☐ GitHub links included
  • ☐ Final PDF report added
  • ☐ Folder shared with HR
  • ☐ Access permission checked
  • ☐ Final folder link copied
  • ☐ Folder link submitted through the internship portal
⚠ SECURITY NOTICE:
Never upload passwords, private SSH keys, API keys, access tokens, database passwords, cloud credentials, or other confidential authentication information to the submission folder or GitHub. Replace sensitive values with placeholders before submission.
📌 Important:
Submit one organized folder containing your complete Task Portal 5 work. Do not send individual files separately unless specifically requested by the internship team.
☑ TASK 1: Linux Server Administration & Service Management INTERMEDIATE
🎯 Objective

Learn how to administer a Linux-based server, manage users and permissions, inspect running services, configure processes, and troubleshoot basic server-level issues.

🛠 Practical Work
  • Create a dedicated DevOps user and configure appropriate permissions.
  • Create a project directory with controlled ownership.
  • Configure file and directory permissions using chmod and chown.
  • Install and inspect a server package such as Nginx.
  • Start, stop, restart, and enable a Linux service.
  • Check CPU, memory, disk, and process utilization.
  • Identify a running process and terminate it safely.
  • Inspect system logs using journalctl.
💻 Commands to Practice
sudo adduser devopsuser sudo usermod -aG sudo devopsuser mkdir ~/devops-project sudo chown devopsuser:devopsuser ~/devops-project chmod 750 ~/devops-project ls -la sudo apt update sudo apt install nginx sudo systemctl start nginx sudo systemctl status nginx sudo systemctl enable nginx top free -h df -h ps aux sudo journalctl -u nginx --no-pager
📌 Submission Evidence
  • Screenshot of created Linux user.
  • Screenshot showing permissions and ownership.
  • Screenshot of Nginx service status.
  • System resource monitoring screenshot.
  • Brief explanation of the commands performed.
☑ TASK 2: Git Workflow & Remote Repository Management INTERMEDIATE
🎯 Objective

Practice a professional Git workflow involving branches, commits, remote repositories, pull operations, merge conflicts, and version tracking.

🛠 Practical Work
  • Create a local DevOps project repository.
  • Create meaningful commits using Git.
  • Create a feature branch.
  • Make changes and push the branch to GitHub.
  • Merge the feature branch into the main branch.
  • Simulate and resolve a basic merge conflict.
  • Inspect Git history and changed files.
  • Add a professional README.md file.
💻 Commands to Practice
mkdir devops-project cd devops-project git init echo "# DevOps Project" > README.md git add . git commit -m "Initial project setup" git branch feature-monitoring git checkout feature-monitoring echo "Monitoring configuration" > monitoring.txt git add . git commit -m "Add monitoring configuration" git remote add origin YOUR_GITHUB_REPOSITORY_URL git push -u origin feature-monitoring git checkout main git pull origin main git merge feature-monitoring git log --oneline --graph --all
📌 Submission Evidence
  • GitHub repository link.
  • Screenshot of branches.
  • Screenshot of commit history.
  • Evidence of successful merge.
  • README explaining the project.
☑ TASK 3: Docker Containerization of a Web Application INTERMEDIATE
🎯 Objective

Understand how Docker containers are created, configured, networked, and deployed for a simple web application.

🛠 Practical Work
  • Create a simple HTML or Node.js web application.
  • Create a Dockerfile for the application.
  • Build a custom Docker image.
  • Run the application inside a container.
  • Map the container port to the host.
  • Inspect container logs and running containers.
  • Create a custom Docker network.
  • Stop, restart, and remove containers.
💻 Commands to Practice
docker --version docker build -t devops-web-app:v1 . docker images docker run -d \ --name devops-web \ -p 8080:80 \ devops-web-app:v1 docker ps docker logs devops-web docker exec -it devops-web /bin/bash docker inspect devops-web docker network create devops-network docker stop devops-web docker start devops-web docker rm devops-web
📌 Submission Evidence
  • Dockerfile.
  • Application source code.
  • Screenshot of Docker image.
  • Screenshot of running container.
  • Browser screenshot showing the application.
  • GitHub repository containing the Docker project.
☑ TASK 4: Docker Compose & Multi-Container Application INTERMEDIATE
🎯 Objective

Learn how Docker Compose can be used to deploy and manage multiple interconnected services as a single application stack.

🛠 Practical Work
  • Create a web application with a backend service.
  • Add a database container such as MySQL or PostgreSQL.
  • Create a docker-compose.yml file.
  • Configure environment variables.
  • Configure service dependencies.
  • Create a persistent database volume.
  • Create an internal Docker network.
  • Start and stop the complete application stack.
💻 Commands to Practice
docker compose config docker compose up -d docker compose ps docker compose logs docker compose logs backend docker compose exec backend sh docker volume ls docker network ls docker compose restart docker compose down docker compose down -v
Important: Do not upload passwords, API keys, or database credentials directly to a public GitHub repository.
📌 Submission Evidence
  • docker-compose.yml file.
  • Application architecture diagram.
  • Screenshot of all running services.
  • Database connection evidence.
  • GitHub repository link.
☑ TASK 5: CI/CD Pipeline with GitHub Actions INTERMEDIATE
🎯 Objective

Build a basic Continuous Integration and Continuous Deployment pipeline that automatically tests and builds an application whenever code is pushed.

🛠 Practical Work
  • Create a GitHub Actions workflow.
  • Trigger the workflow when code is pushed to main.
  • Configure an Ubuntu runner.
  • Checkout the repository.
  • Install application dependencies.
  • Run automated tests or validation.
  • Build a Docker image.
  • Store build information as a workflow artifact.
📄 Suggested Workflow
name: DevOps CI Pipeline on: push: branches: - main pull_request: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Setup Environment run: echo "Environment ready" - name: Install Dependencies run: | echo "Install project dependencies here" - name: Run Tests run: | echo "Run application tests here" - name: Build Docker Image run: | docker build -t devops-app:${{ github.sha }} .
📌 Submission Evidence
  • .github/workflows workflow file.
  • Screenshot showing successful GitHub Actions run.
  • Screenshot of build stages.
  • Repository link.
  • Short explanation of CI/CD workflow.
☑ TASK 6: Cloud Deployment & Reverse Proxy Configuration INTERMEDIATE
🎯 Objective

Deploy a containerized application on a cloud Linux server and configure Nginx as a reverse proxy to route public traffic to the application.

🛠 Practical Work
  • Provision a Linux cloud VM using AWS, Azure, GCP, or another provider.
  • Connect to the server using SSH.
  • Install Docker and Nginx.
  • Deploy the application container.
  • Configure firewall/security-group rules.
  • Configure Nginx as a reverse proxy.
  • Test the application through the server IP/domain.
  • Check Nginx access and error logs.
💻 Commands to Practice
ssh username@SERVER_IP sudo apt update sudo apt install nginx sudo systemctl status nginx docker pull YOUR_IMAGE docker run -d \ --name production-app \ -p 127.0.0.1:5000:5000 \ YOUR_IMAGE sudo nano /etc/nginx/sites-available/devops-app sudo ln -s \ /etc/nginx/sites-available/devops-app \ /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx sudo tail -f /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log
Use a test cloud environment and remove unused resources after completing the task to avoid unnecessary cloud charges.
📌 Submission Evidence
  • Cloud server details screenshot with sensitive credentials hidden.
  • SSH connection evidence.
  • Running Docker container screenshot.
  • Nginx configuration file.
  • Live application URL or server-IP evidence.
☑ TASK 7: Monitoring, Logging & Server Health Dashboard INTERMEDIATE
🎯 Objective

Implement basic infrastructure monitoring and application log analysis to identify resource usage, failures, and service availability.

🛠 Practical Work
  • Monitor CPU, RAM, disk, and network utilization.
  • Collect application logs.
  • Inspect Docker container logs.
  • Identify HTTP 4xx and 5xx responses.
  • Configure a basic health-check endpoint.
  • Monitor whether the application is available.
  • Document one simulated application failure.
  • Restart the failed service and document the recovery process.
💻 Commands to Practice
uptime free -h df -h vmstat ps aux --sort=-%cpu | head docker stats docker ps docker logs production-app sudo journalctl -xe curl -I http://localhost curl http://localhost/health ss -tulpn sudo systemctl status nginx
📌 Submission Evidence
  • System monitoring screenshots.
  • Docker statistics screenshot.
  • Application log sample.
  • Health-check result.
  • Failure and recovery report.
  • Short monitoring architecture diagram.
☑ TASK 8: Complete DevOps Deployment Pipeline & Documentation INTERMEDIATE+
🎯 Objective

Combine the skills learned in this portal to create a complete mini DevOps deployment workflow from source-code commit to containerized deployment and monitoring.

🛠 Practical Work
  1. Create or select a small web application.
  2. Push the project to GitHub.
  3. Create a feature branch and implement a change.
  4. Create a production-ready Dockerfile.
  5. Create Docker Compose configuration if multiple services are used.
  6. Configure a GitHub Actions CI pipeline.
  7. Build the Docker image automatically.
  8. Deploy the application to a Linux cloud server.
  9. Configure Nginx as a reverse proxy.
  10. Implement basic application/server monitoring.
  11. Document the complete deployment process.
💻 Commands to Practice
git status git add . git commit -m "Deploy DevOps application" git push origin main docker build -t devops-final-app:v1 . docker images docker run -d \ --name devops-final \ -p 8080:80 \ devops-final-app:v1 docker ps docker logs devops-final curl http://localhost:8080 sudo systemctl status nginx sudo nginx -t docker stats df -h free -h
📝 Create a DevOps Deployment Report
  1. Project Overview
  2. Technology Stack
  3. Git Repository Structure
  4. Docker Architecture
  5. CI/CD Workflow
  6. Cloud Deployment Architecture
  7. Nginx Reverse Proxy Configuration
  8. Monitoring & Logging Approach
  9. Problems Encountered
  10. Solutions Implemented
  11. Final Application URL
  12. Future Improvements
📌 Final Submission Evidence
  • GitHub repository URL.
  • Dockerfile and configuration files.
  • Successful CI/CD pipeline screenshot.
  • Cloud deployment screenshot.
  • Live application URL.
  • Nginx configuration evidence.
  • Monitoring/logging evidence.
  • Complete DevOps Deployment Report in PDF.
  • Architecture diagram.
  • Final project demonstration screenshots.
📤 TASK PORTAL 5 — SUBMISSION METHOD

After completing the tasks, collect all files, source code, configuration files, screenshots, reports, and other evidence related to your completed tasks in one properly organized folder.

Please follow the submission process below carefully.

1️⃣ Create One Main Submission Folder

Create a folder using the following naming format:

DevOps_Internship_Task_Portal_5_YourName

2️⃣ Create Separate Folders for Each Task

Inside the main folder, create separate folders for all 8 tasks:

DevOps_Internship_Task_Portal_5_YourName/ ├── Task_1_Linux_Server_Administration/ ├── Task_2_Git_GitHub_Workflow/ ├── Task_3_Docker_Containerization/ ├── Task_4_Docker_Compose/ ├── Task_5_GitHub_Actions_CICD/ ├── Task_6_Cloud_Deployment_Nginx/ ├── Task_7_Monitoring_Logging/ └── Task_8_Complete_DevOps_Project/

3️⃣ Put All Relevant Evidence Inside Each Task Folder

  • Source code files
  • Dockerfiles
  • Docker Compose files
  • GitHub Actions workflow files
  • Configuration files
  • Terminal/command screenshots
  • Application screenshots
  • Cloud deployment screenshots
  • Monitoring and logging screenshots
  • Task-specific documentation
  • Any other evidence requested for that task

4️⃣ Add a Final Internship Report

Inside the main folder, create a final PDF report containing:

  • Your name and internship details
  • Tasks completed
  • Technologies/tools used
  • Project descriptions
  • Problems encountered and solutions
  • GitHub repository links
  • Deployment details
  • Monitoring approach
  • Final project screenshots
  • Key learning outcomes

5️⃣ Share the Complete Folder

Upload the complete main folder to Google Drive or another suitable cloud-storage service.

Set the folder sharing permission so that the internship team can access the submitted files.

Share the folder with:

📧 hr@corporatewebsol.com

6️⃣ Submit the Folder Link

Copy the shareable folder link and submit the link through the designated internship task submission form/portal.

Recommended sharing setting:
Make sure the submitted folder can be accessed by the internship evaluation team. If you use restricted sharing, specifically add hr@corporatewebsol.com as a viewer/editor according to the instructions provided by the team.

7️⃣ Final Folder Checklist

  • ☐ All 8 task folders created
  • ☐ Required files added to each task folder
  • ☐ Screenshots added
  • ☐ Source code added
  • ☐ GitHub links included
  • ☐ Final PDF report added
  • ☐ Folder shared with HR
  • ☐ Access permission checked
  • ☐ Final folder link copied
  • ☐ Folder link submitted through the internship portal
⚠ SECURITY NOTICE:
Never upload passwords, private SSH keys, API keys, access tokens, database passwords, cloud credentials, or other confidential authentication information to the submission folder or GitHub. Replace sensitive values with placeholders before submission.
📌 Important:
Submit one organized folder containing your complete Task Portal 5 work. Do not send individual files separately unless specifically requested by the internship team.