{"id":27100577,"url":"https://github.com/iamanonymous419/marketverse-gitops","last_synced_at":"2026-04-12T03:35:42.076Z","repository":{"id":286411915,"uuid":"961283465","full_name":"iamanonymous419/marketverse-gitops","owner":"iamanonymous419","description":"This is a gitops repository for Argocd that is used to deploy Project Marketverse and explore gitops and devops, and this file contain IAC  too with Terraform and Ansible","archived":false,"fork":false,"pushed_at":"2025-09-25T09:30:07.000Z","size":401,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-25T10:21:55.647Z","etag":null,"topics":["ansible","argocd","aws","devops","docker","eks-cluster","grafana-dashboard","helm-chart","iac","jenkins","kubernetes","linux","makefile","prometheus","shell-scripting","terraform"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamanonymous419.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-04-06T07:06:17.000Z","updated_at":"2025-09-25T09:30:10.000Z","dependencies_parsed_at":"2025-04-06T10:27:58.670Z","dependency_job_id":"f6ae1a7e-2bee-4562-ab55-2a23a18c6ca2","html_url":"https://github.com/iamanonymous419/marketverse-gitops","commit_stats":null,"previous_names":["iamanonymous419/marketverse-gitops"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iamanonymous419/marketverse-gitops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamanonymous419%2Fmarketverse-gitops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamanonymous419%2Fmarketverse-gitops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamanonymous419%2Fmarketverse-gitops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamanonymous419%2Fmarketverse-gitops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamanonymous419","download_url":"https://codeload.github.com/iamanonymous419/marketverse-gitops/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamanonymous419%2Fmarketverse-gitops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31703501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T21:17:31.016Z","status":"online","status_checked_at":"2026-04-12T02:00:06.763Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ansible","argocd","aws","devops","docker","eks-cluster","grafana-dashboard","helm-chart","iac","jenkins","kubernetes","linux","makefile","prometheus","shell-scripting","terraform"],"created_at":"2025-04-06T13:19:59.672Z","updated_at":"2026-04-12T03:35:42.068Z","avatar_url":"https://github.com/iamanonymous419.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project - MarketVerse Deployment\n\n[![Terraform](https://img.shields.io/badge/IaC-Terraform-7B42BC?logo=terraform)](https://www.terraform.io)\n[![Ansible](https://img.shields.io/badge/Automation-Ansible-EE0000?logo=ansible)](https://www.ansible.com)\n[![AWS](https://img.shields.io/badge/Cloud-AWS-FF9900?logo=amazon-aws)](https://aws.amazon.com)\n[![Jenkins](https://img.shields.io/badge/CI-Jenkins-D24939?logo=jenkins)](https://www.jenkins.io)\n[![ArgoCD](https://img.shields.io/badge/CD-ArgoCD-0DADEA?logo=argo)](https://argoproj.github.io/cd)\n[![Prometheus](https://img.shields.io/badge/Monitoring-Prometheus-E6522C?logo=prometheus)](https://prometheus.io)\n[![Grafana](https://img.shields.io/badge/Dashboards-Grafana-F46800?logo=grafana)](https://grafana.com)\n\nMarketVerse is a cloud-native e-commerce platform that can be deployed using Kubernetes and Minikube. This guide provides step-by-step instructions for deploying MarketVerse on Minikube, setting up monitoring with Prometheus and Grafana, using automation with Makefile, and managing deployments with Argo CD.\n\n\u003e [!WARNING]\n\u003e This project is for **learning purposes** and aims to explore DevOps best practices.\n\n## References\n\n- [Infrastructure as Code (IaC) Guide](/iac/README.md)\n- [Kubernetes Documentation](https://kubernetes.io/docs/)\n- [Minikube Documentation](https://minikube.sigs.k8s.io/docs/)\n- [Argo CD Documentation](https://argo-cd.readthedocs.io/en/stable/)\n- [Prometheus Documentation](https://prometheus.io/docs/introduction/overview/)\n- [Grafana Documentation](https://grafana.com/docs/)\n\n---\n\n## Table of Contents\n\n- [Project - MarketVerse Deployment](#project---marketverse-deployment)\n  - [References](#references)\n  - [Table of Contents](#table-of-contents)\n  - [Prerequisites](#prerequisites)\n  - [Setup and Deployment](#setup-and-deployment)\n    - [1. Clone the Repository](#1-clone-the-repository)\n    - [2. Set Up Kubernetes Namespace](#2-set-up-kubernetes-namespace)\n    - [3. Deploy Database](#3-deploy-database)\n    - [4. Configure and Push Database Schema](#4-configure-and-push-database-schema)\n    - [5. Deploy Application](#5-deploy-application)\n    - [6. Deploy Cron Jobs](#6-deploy-cron-jobs)\n    - [7. Access the Application](#7-access-the-application)\n  - [Automated Deployment with Makefile](#automated-deployment-with-makefile)\n  - [Kubernetes Dashboard in Minikube](#kubernetes-dashboard-in-minikube)\n  - [Monitoring with Grafana and Prometheus](#monitoring-with-grafana-and-prometheus)\n    - [Step 1: Install Prometheus and Grafana](#step-1-install-prometheus-and-grafana)\n    - [Step 2: Expose Prometheus \\\u0026 Grafana](#step-2-expose-prometheus--grafana)\n    - [Step 3: Get Grafana Credentials](#step-3-get-grafana-credentials)\n  - [Argo CD Deployment](#argo-cd-deployment)\n    - [Step 1: Install Argo CD](#step-1-install-argo-cd)\n    - [Step 2: Expose Argo CD UI](#step-2-expose-argo-cd-ui)\n    - [Step 3: Get Argo CD Admin Credentials](#step-3-get-argo-cd-admin-credentials)\n  - [Infrastructure as Code (IaC) Deployment](#infrastructure-as-code-iac-deployment)\n  - [Cleanup](#cleanup)\n    - [🚀 MarketVerse is now successfully deployed on Kubernetes with Argo CD! Happy coding! 🎉](#-marketverse-is-now-successfully-deployed-on-kubernetes-with-argo-cd-happy-coding-)\n\n---\n\n## Prerequisites\n\nEnsure the following tools are installed before proceeding:\n\n- **Docker** → [Install Guide](https://docs.docker.com/get-docker/)\n- **Minikube** → [Install Guide](https://minikube.sigs.k8s.io/docs/start/)\n- **kubectl** → [Install Guide](https://kubernetes.io/docs/tasks/tools/)\n- **Helm** → [Install Guide](https://helm.sh/docs/intro/install/)\n- **Argo CD** → [Install Guide](https://argo-cd.readthedocs.io/en/stable/getting_started/)\n- **Jenkins** (Optional, for CI/CD) → [Install Guide](https://www.jenkins.io/doc/book/installing/)\n\n---\n\n## Setup and Deployment\n\n### 1. Clone the Repository\n\n```bash\n# Clone the project repository\ngit clone https://github.com/iamanonymous419/marketverse-gitops.git marketverse-gitops\ncd marketverse-gitops\n\n# For a specific branch\ngit clone -b main https://github.com/iamanonymous419/marketverse-gitops.git marketverse-gitops\ncd marketverse-gitops\n```\n\n### 2. Set Up Kubernetes Namespace\n\n```bash\nkubectl apply -f namespace.yml\n```\n\n### 3. Deploy Database\n\n```bash\nkubectl apply -f ./database\n```\n\n### 4. Configure and Push Database Schema\n\nBefore running this command, make sure to set up the database URL of the Minikube service:\n\n```env\nDATABASE_URL=\"postgresql://something:something@localhost:5432/database\"\n```\n\nThen, forward the database port and push the schema:\n\n```bash\nkubectl port-forward service/database-service 5432:5432 -n marketverse \u0026\npnpm exec drizzle-kit push\n```\n\nTo verify the tables:\n\n```bash\npsql -h localhost -U something -d database\n```\n\nTo access the database pod:\n\n```bash\nkubectl exec -it pod/database-0 -n marketverse -- bash\npsql -U something -d database\n```\n\n### 5. Deploy Application\n\n```bash\nkubectl apply -f ./app\n```\n\n### 6. Deploy Cron Jobs\n\n```bash\nkubectl apply -f ./cron-job\n```\n\n### 7. Access the Application\n\n```bash\nkubectl port-forward service/marketverse-svc 3000:80 -n marketverse \u0026\n```\n\nNow, open [http://localhost:3000](http://localhost:3000) in your browser.\n\n---\n\n## Automated Deployment with Makefile\n\nFor easier deployment, use the provided Makefile:\n\n```bash\nmake create-ns        # Create Kubernetes namespace\nmake delete-ns        # Delete Kubernetes namespace\n```\n\n```bash\nmake run-database     # Deploy database\nmake delete-database  # Remove database\n```\n\n```bash\nmake run-app          # Deploy application\nmake delete-app       # Remove application\n```\n\n```bash\nmake run-job          # Deploy scheduled jobs\nmake remove-job       # Remove scheduled jobs\n```\n\n```bash\nmake forward-app      # Forward port 3000 for the app\nmake forward-database # Forward port 5432 for the database\n```\n\n🛠️ **Database Schema:**\n\n```bash\nmake schema-push      # Push latest schema changes to DB\n```\n\n🚀 **Full Deployment:**\n\n```bash\nmake run-all          # Deploys everything including schema push\n```\n\n🧹 **Cleanup:**\n\n```bash\nmake delete           # Deletes all resources\n```\n\n---\n\n## Kubernetes Dashboard in Minikube\n\nEnable the Minikube dashboard:\n\n```bash\nminikube addons enable dashboard\nminikube addons enable metrics-server\nminikube dashboard\n```\n\nAccess the dashboard at:\n\n[http://127.0.0.1:37725/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/](http://127.0.0.1:37989/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/)\n\n---\n\n## Monitoring with Grafana and Prometheus\n\n### Step 1: Install Prometheus and Grafana\n\n```bash\nhelm install prometheus prometheus-community/kube-prometheus-stack --namespace monitoring --create-namespace\n```\n\n### Step 2: Expose Prometheus \u0026 Grafana\n\n```bash\nkubectl port-forward svc/prometheus-kube-prometheus-prometheus -n monitoring 9090:9090 \u0026\nkubectl port-forward svc/prometheus-grafana -n monitoring 4000:80 \u0026\n```\n\n### Step 3: Get Grafana Credentials\n\n```bash\nkubectl get secret prometheus-grafana -n monitoring -o jsonpath=\"{.data.admin-password}\" | base64 --decode\n```\n\n**Username:** `admin`\n\n---\n\n## Argo CD Deployment\n\n### Step 1: Install Argo CD\n\n```bash\nkubectl create namespace argocd\nkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml\n```\n\n### Step 2: Expose Argo CD UI\n\n```bash\nkubectl port-forward svc/argocd-server -n argocd 8080:443 \u0026\n```\n\n### Step 3: Get Argo CD Admin Credentials\n\n```bash\nkubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath=\"{.data.password}\" | base64 --decode\n```\n\n**Username:** `admin`\n\n---\n\n## Infrastructure as Code (IaC) Deployment\n\n\u003e [!IMPORTANT]\n\u003e For production-grade AWS EKS deployment using Infrastructure as Code (IaC), please refer to our comprehensive guide:\n\u003e \n\u003e 📄 **[Marketverse Infrastructure as Code (IaC) with Terraform and Ansible](/iac/README.md)**\n\nThis guide provides a complete production-ready infrastructure setup, including:\n\n- ☁️ **AWS EKS Cluster** setup using Terraform\n- 🔄 **CI/CD Pipeline** with Jenkins on AWS EC2\n- 🔐 **Remote Backend** for secure Terraform state management\n- 🚢 **GitOps Deployment** using ArgoCD\n- 📊 **Monitoring Stack** with Prometheus and Grafana\n- 🧩 **Configuration Management** using Ansible\n\n![IaC](https://img.shields.io/badge/IaC-Terraform%20%7C%20Ansible-blue)\n![CI/CD](https://img.shields.io/badge/CI%2FCD-Jenkins%20%7C%20ArgoCD-brightgreen)\n![Cloud](https://img.shields.io/badge/Cloud-AWS%20EKS-orange)\n\n\u003e [!TIP]\n\u003e The IaC deployment is ideal for production environments and follows industry best practices for secure, scalable, and maintainable infrastructure.\n\n---\n\n## Cleanup\n\nTo delete everything:\n\n```bash\nkubectl delete -f namespace.yml\nmake delete\n```\n\n---\n\n### 🚀 MarketVerse is now successfully deployed on Kubernetes with Argo CD! Happy coding! 🎉","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamanonymous419%2Fmarketverse-gitops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamanonymous419%2Fmarketverse-gitops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamanonymous419%2Fmarketverse-gitops/lists"}