{"id":31135995,"url":"https://github.com/adityakonda6/python-app-pipeline","last_synced_at":"2026-04-05T22:37:02.529Z","repository":{"id":313166163,"uuid":"1049764199","full_name":"AdityaKonda6/python-app-pipeline","owner":"AdityaKonda6","description":"This repository contains the source code for a simple web application built with Python and Flask.  The primary purpose of this project is to serve as a practical, hands-on demonstration of a complete, end-to-end Continuous Integration and Continuous Deployment (CI/CD) pipeline built with Jenkins, Docker, and AWS.","archived":false,"fork":false,"pushed_at":"2025-10-01T06:59:53.000Z","size":13,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-05T22:36:47.754Z","etag":null,"topics":["aws","aws-ec2","docker","flask","git","jenkins","linux","python","webhook"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdityaKonda6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-03T13:13:01.000Z","updated_at":"2025-12-30T15:06:44.000Z","dependencies_parsed_at":"2025-09-04T10:29:55.151Z","dependency_job_id":"fdd261f4-9b19-4b4d-a983-132f413877fe","html_url":"https://github.com/AdityaKonda6/python-app-pipeline","commit_stats":null,"previous_names":["adityakonda6/python-app-pipeline"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AdityaKonda6/python-app-pipeline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdityaKonda6%2Fpython-app-pipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdityaKonda6%2Fpython-app-pipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdityaKonda6%2Fpython-app-pipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdityaKonda6%2Fpython-app-pipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdityaKonda6","download_url":"https://codeload.github.com/AdityaKonda6/python-app-pipeline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdityaKonda6%2Fpython-app-pipeline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31452899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"ssl_error","status_checked_at":"2026-04-05T21:22:51.943Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-ec2","docker","flask","git","jenkins","linux","python","webhook"],"created_at":"2025-09-18T07:53:59.013Z","updated_at":"2026-04-05T22:37:02.362Z","avatar_url":"https://github.com/AdityaKonda6.png","language":"Dockerfile","funding_links":["https://www.buymeacoffee.com/adityakonda04"],"categories":[],"sub_categories":[],"readme":"# CI/CD Pipeline for a Python Flask Application\n\n## 📖 Project Summary\nThis project demonstrates a complete, end-to-end Continuous Integration and Continuous Deployment (CI/CD) pipeline for a simple web application built with **Python** and **Flask**. The primary goal is to showcase a fully automated workflow that takes code from a `git push` and deploys it as a live Docker container on an AWS EC2 instance without any manual intervention.\n\n---\n\n## 🏛️ Architecture Diagram\nThe pipeline follows a logical, event-driven workflow. A `git push` to the main branch initiates a sequence of automated steps, as illustrated below.\n\n\n**Workflow Breakdown:**\n`Git Push` → `GitHub Webhook` → `Jenkins Server` → `Build \u0026 Test` → `Build Docker Image` → `Push to Docker Hub` → `Deploy to AWS EC2`\n\n1.  **Trigger:** A developer pushes code to the `main` branch on GitHub.\n2.  **CI Server:** A GitHub Webhook notifies the Jenkins server, which automatically triggers a new pipeline run.\n3.  **Build \u0026 Package:** Jenkins checks out the code, and using the `Dockerfile`, builds a new Docker image containing the Flask application and its dependencies.\n4.  **Registry:** The newly built image is tagged with a unique identifier and pushed to a Docker Hub repository.\n5.  **Deployment:** Jenkins securely connects to the production EC2 server, pulls the latest Docker image from Docker Hub, stops the old container, and starts a new one with the updated image.\n\n---\n\n## 🛠️ Technologies Used\nThis project utilizes a modern DevOps toolchain to achieve full automation.\n\n![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white)\n![Flask](https://img.shields.io/badge/Flask-000000?style=for-the-badge\u0026logo=flask\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n![Jenkins](https://img.shields.io/badge/Jenkins-D24939?style=for-the-badge\u0026logo=jenkins\u0026logoColor=white)\n![AWS](https://img.shields.io/badge/AWS-232F3E?style=for-the-badge\u0026logo=amazon-aws\u0026logoColor=white)\n![Ubuntu](https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge\u0026logo=ubuntu\u0026logoColor=white)\n![Git](https://img.shields.io/badge/Git-F05032?style=for-the-badge\u0026logo=git\u0026logoColor=white)\n![GitHub](https://img.shields.io/badge/GitHub-181717?style=for-the-badge\u0026logo=github\u0026logoColor=white)\n\n---\n\n## ⚙️ Setup and Execution (Local)\nTo run the Python application on your local machine without the pipeline.\n\n### Prerequisites\n* Python 3 and `pip` installed.\n* `git` installed.\n\n### Installation \u0026 Running\n1.  Clone the repository:\n    ```sh\n    git clone [https://github.com/AdityaKonda6/python-app-pipeline.git](https://github.com/AdityaKonda6/python-app-pipeline.git)\n    ```\n2.  Navigate to the project directory:\n    ```sh\n    cd python-app-pipeline\n    ```\n3.  Install the required packages:\n    ```sh\n    pip install -r requirements.txt\n    ```\n4.  Run the application:\n    ```sh\n    python app.py\n    ```\n5.  Open `http://127.0.0.1:80` in your browser.\n\n---\n\n## 💡 Challenges \u0026 Solutions\nThis section documents a key technical challenge encountered during the pipeline setup and the steps taken to resolve it.\n\n### Challenge: Jenkins Failing with Docker \"Permission Denied\"\nA common and critical issue arose where the Jenkins pipeline would consistently fail during the Docker build stage.\n\n* **Problem:** The Jenkins console output showed a clear error: `permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock`. This indicated that the `jenkins` user, which executes the pipeline, did not have the necessary permissions to interact with the Docker engine.\n\n* **Diagnostic Process:**\n    1.  I connected to the EC2 instance via SSH.\n    2.  I switched from the default user to the `jenkins` user with the command: `sudo su - jenkins`.\n    3.  I then tried to execute a basic Docker command, `docker ps`, to confirm the issue. This command failed with the exact same \"permission denied\" error, isolating the problem to a user-level permission issue on the host machine, not a flaw in the `Jenkinsfile` or Docker setup itself.\n\n* **Solution:** On Linux systems, the Docker daemon socket is owned by the `root` user and the `docker` group. To allow a non-root user to run Docker commands, they must be added to the `docker` group.\n    1.  I added the `jenkins` user to the `docker` group using the following command:\n        ```sh\n        sudo usermod -aG docker jenkins\n        ```\n    2.  For the group membership changes to take effect, the Jenkins service needed to be restarted:\n        ```sh\n        sudo systemctl restart jenkins\n        ```\n    After restarting, the Jenkins pipeline executed successfully, as the user now had the required permissions to communicate with the Docker socket.\n\n  -----\n\n\n\n## Hey there 👋, I'm [\u003ca href=\"https://adityakonda04.vercel.app/\"\u003eAditya!\u003c/a\u003e](https://github.com/AdityaKonda6)\n\n[![Linkedin Badge](https://img.shields.io/badge/-LinkedIn-0e76a8?style=flat-square\u0026logo=Linkedin\u0026logoColor=white)](https://www.linkedin.com/in/aditya-adi-konda/)\n[![Twitter Badge](https://img.shields.io/badge/-Twitter-00acee?style=flat-square\u0026logo=Twitter\u0026logoColor=white)](https://twitter.com/AdityaKonda7)\n[![Instagram Badge](https://img.shields.io/badge/-Instagram-e4405f?style=flat-square\u0026logo=Instagram\u0026logoColor=white)](https://www.instagram.com/konda_aditya/)\n\u003cimg align=\"right\" height=\"250\" width=\"375\" alt=\"\" src=\"https://github.com/AdityaKonda6/AdityaKonda6/blob/main/giphy2.webp\" /\u003e\n\n\n### Glad to see you here! \u0026nbsp; ![](https://visitor-badge.glitch.me/badge?page_id=adityakonda.adityakonda\u0026style=flat-square\u0026color=0088cc)\n\nI’m a **2025 IT Graduate** passionate about **DevOps, Cloud, and Software Development** 🚀.  \nMy mission? To **bridge the gap between development and operations**—building scalable systems, automating workflows, and ensuring quality from code to deployment.\n\nWith a strong foundation in **Java, SQL, Linux**, and hands-on experience with **CI/CD pipelines, Selenium automation, cloud services, and Android development**, I thrive in solving problems end-to-end—from writing code to deploying it in production.\n\nRecently, at **CWD Limited**, I worked on:\n- **Automation Testing Frameworks** (Selenium, Java, Maven)\n- **Linux-based system configurations \u0026 debugging**\n- **Hardware-software integration testing**\n- API testing with Postman  \n…and in the process, strengthened my DevOps skill set.\n\n💡 Curious mind. Fast learner. Always ready to build, break, and rebuild—better.\n\n---\n\n### 🚀 What I’m Working On:\n- Building **DevOps projects** (Jenkins, Docker, Kubernetes, AWS, Ansible)\n- Enhancing **automation frameworks** for testing \u0026 deployment\n- Crafting **Android apps** and backend services\n- Expanding my **Linux administration** skills\n\n---\n\n### 💼 My Tech Stack:\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/master/topics/java/java.png\" alt=\"Java\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/master/topics/linux/linux.png\" alt=\"Linux\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/master/topics/docker/docker.png\" alt=\"Docker\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/master/topics/kubernetes/kubernetes.png\" alt=\"Kubernetes\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/master/topics/aws/aws.png\" alt=\"AWS\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/master/topics/python/python.png\" alt=\"Python\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/master/topics/javascript/javascript.png\" alt=\"JavaScript\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/master/topics/react/react.png\" alt=\"React\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/master/topics/sql/sql.png\" alt=\"SQL\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/master/topics/git/git.png\" alt=\"Git\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/nodejs/nodejs.png\" alt=\"nodejs\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSTTzPAw-55ssm1Im594xYZ9eRQu2JylrkYLg\u0026usqp=CAU\" alt=\"mongodb\"\u003e\u003c/code\u003e\n\u003ccode\u003e\u003cimg height=\"27\" src=\"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/terminal/terminal.png\" alt=\"terminal\"\u003e\u003c/code\u003e\n\n---\n\n\u003cimg align=\"right\" height=\"250\" width=\"375\" alt=\"\" src=\"https://raw.githubusercontent.com/iampavangandhi/iampavangandhi/master/gifs/coder.gif\" /\u003e\n\n### 📌 Highlights:\n- 🛠 Built **dynamic Selenium automation scripts** integrated with Maven\n- 🚀 Created \u0026 deployed **full-stack and Android applications**\n- 🐧 Comfortable with **Linux system administration \u0026 shell scripting**\n- 📦 Implemented CI/CD workflows for smoother deployments\n- ☁️ Learning \u0026 applying **cloud infrastructure concepts**\n\n--\n\n### 📫 How to Reach Me:\n- Email: **adityakonda04@gmail.com**\n- Portfolio: [adityakonda04.vercel.app](https://adityakonda04.vercel.app/)\n- LinkedIn: [Aditya Adi Konda](https://www.linkedin.com/in/aditya-adi-konda/)\n\n---\n\n### 📊 GitHub Stats:\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e⚡ GitHub Stats\u003c/b\u003e\u003c/summary\u003e\n  \u003cbr /\u003e\n  \u003cimg height=\"180em\" src=\"https://github-readme-stats.vercel.app/api?username=adityakonda6\u0026show_icons=true\u0026hide_border=true\u0026\u0026count_private=true\u0026include_all_commits=true\" /\u003e\n  \u003cimg height=\"180em\" src=\"https://github-readme-stats.vercel.app/api/top-langs/?username=adityakonda6\u0026show_icons=true\u0026hide_border=true\u0026layout=compact\u0026langs_count=8\"/\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e🔥 GitHub Streaks\u003c/b\u003e\u003c/summary\u003e\n  \u003cbr /\u003e\n  \u003cimg height=\"180em\" src=\"https://github-readme-streak-stats.herokuapp.com/?user=adityakonda6\u0026hide_border=true\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e☄️ LeetCode Stats\u003c/b\u003e\u003c/summary\u003e\n  \u003cbr /\u003e\n   \u003cp align=\"center\"\u003e\u003cimg align=\"center\" src=\"https://leetcard.jacoblin.cool/adityakonda04?theme=wtf\u0026font=Coda%20Caption\u0026ext=heatmap\" /\u003e\u003c/p\u003e\n\u003c/details\u003e\n\n---\n\n💬 Always open to collaborations, tech discussions, and exploring new opportunities in **DevOps, Cloud, and Software Development**.\n\n\nLike My Work?\n\n\u003ca href=\"https://www.buymeacoffee.com/adityakonda04\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" height=\"60px\" width=\"217px\" \u003e\u003c/a\u003e\n\n\u003cp align=\"left\"\u003e \u003cimg src=\"https://komarev.com/ghpvc/?username=AdityaKonda6\u0026label=Profile%20views\u0026color=0e75b6\u0026style=flat\" alt=\"AdityaKonda6\" /\u003e \u003c/p\u003e\n\n\u003cp align=\"left\"\u003e \u003ca href=\"https://github.com/ryo-ma/github-profile-trophy\"\u003e\u003cimg src=\"https://github-profile-trophy.vercel.app/?username=AdityaKonda6\" alt=\"AdityaKonda6\" /\u003e\u003c/a\u003e \u003c/p\u003e\n\n\n\u003cdiv align=\"center\"\u003e\n\n### Show some ❤️ by starring some of the repositories!\n### \u003ca href=\"https://adityakonda04.vercel.app/\"\u003eMy Portfolio\u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadityakonda6%2Fpython-app-pipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadityakonda6%2Fpython-app-pipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadityakonda6%2Fpython-app-pipeline/lists"}