{"id":29267652,"url":"https://github.com/sachelsout/infra-lab","last_synced_at":"2026-04-03T23:34:28.142Z","repository":{"id":298214480,"uuid":"999185862","full_name":"sachelsout/infra-lab","owner":"sachelsout","description":"This repository documents my 3-month journey to learn Infrastructure Engineering through a series of hands-on projects. Each folder represents a day's dedicated project, starting from Docker fundamentals to integrating databases, CI/CD, and more.","archived":false,"fork":false,"pushed_at":"2025-07-23T05:17:46.000Z","size":1330,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-23T07:11:02.809Z","etag":null,"topics":["api","cicd","docker","fastapi","flask","git","grafana","kubernetes","linux","mongodb","postgres","prometheus","python","redis"],"latest_commit_sha":null,"homepage":"","language":"Python","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/sachelsout.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}},"created_at":"2025-06-09T21:48:57.000Z","updated_at":"2025-07-23T05:17:50.000Z","dependencies_parsed_at":"2025-07-03T02:26:20.891Z","dependency_job_id":"78bd9b8d-3575-4d59-b8d6-17af21ef4537","html_url":"https://github.com/sachelsout/infra-lab","commit_stats":null,"previous_names":["sachelsout/infra-lab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sachelsout/infra-lab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachelsout%2Finfra-lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachelsout%2Finfra-lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachelsout%2Finfra-lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachelsout%2Finfra-lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sachelsout","download_url":"https://codeload.github.com/sachelsout/infra-lab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachelsout%2Finfra-lab/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268273068,"owners_count":24223790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"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":["api","cicd","docker","fastapi","flask","git","grafana","kubernetes","linux","mongodb","postgres","prometheus","python","redis"],"created_at":"2025-07-04T18:11:16.191Z","updated_at":"2025-12-30T19:04:37.374Z","avatar_url":"https://github.com/sachelsout.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧱 infra-lab: My 3-Month Infra Engineering Journey\n\nThis repository documents my **3-month journey to learn Infrastructure Engineering** through a series of hands-on projects. Each folder represents a day's dedicated project, starting from Docker fundamentals to integrating databases, CI/CD, and more.\n\n---\n\n## ✅ Week 1: Docker, Flask, Redis, Postgres Basics\n\n| Day | Project | Description |\n|-----|---------|-------------|\n| 1 | [flask-docker-app](https://github.com/sachelsout/infra-lab/tree/main/week-1/flask-docker-app) | A simple Flask web app containerized using Docker. |\n| 2 | [flask-ml-docker-app](https://github.com/sachelsout/infra-lab/tree/main/week-1/flask-ml-docker-app) | ML model (Logistic Regression) exposed via Flask, containerized using Docker. |\n| 3 | [flask-redis-compose-app](https://github.com/sachelsout/infra-lab/tree/main/week-1/flask-redis-compose-app) | Counter app using Flask + Redis with Docker Compose. |\n| 4 | [flask-redis-volume-app](https://github.com/sachelsout/infra-lab/tree/main/week-1/flask-redis-volume-app) | Redis app with Docker volume for data persistence. |\n| 5 | [postgres-flask-app](https://github.com/sachelsout/infra-lab/tree/main/week-1/postgres-flask-app) | Flask + PostgreSQL web app with Docker Compose. |\n| 6 | [file-upload-app](https://github.com/sachelsout/infra-lab/tree/main/week-1/file-upload-app) | File upload and serve app using bind mounts. |\n| 7 | [static-file-server](https://github.com/sachelsout/infra-lab/tree/main/week-1/static-file-server) | Static file server with Flask and bind mounts. |\n\n---\n\n## 🚧 Week 2: Reverse Proxy, Linux CLI, CI/CD\n\n| Day | Project | Description |\n|-----|---------|-------------|\n| 8 | [fastapi-nginx-reverse-proxy](https://github.com/sachelsout/infra-lab/tree/main/week-2/fastapi-nginx-reverse-proxy) | NGINX reverse proxy to FastAPI/Flask app + healthchecks. |\n| 9 | [linux-basics-part1](https://github.com/sachelsout/infra-lab/tree/main/week-2/linux-basics-part1) | Learned essential Linux commands, navigation, and scripting basics. |\n| 10 | [linux-basics-part2](https://github.com/sachelsout/infra-lab/tree/main/week-2/linux-basics-part2) | Advanced bash, piping, redirection, file permissions, and processes. |\n| 11 | [file-upload-app](https://github.com/sachelsout/infra-lab/tree/main/week-1/file-upload-app) + [CI/CD README](https://github.com/sachelsout/infra-lab/tree/main/week-2/cicd-github-actions) | Implemented GitHub Actions for Docker build \u0026 push. |\n| 12 | [file-upload-app](https://github.com/sachelsout/infra-lab/tree/main/week-1/file-upload-app) + [Advanced CI/CD README](https://github.com/sachelsout/infra-lab/tree/main/week-2/advanced-cicd) | Added automated tests + permission fixes using GitHub Actions. |\n| 13 | [prometheus-monitoring](https://github.com/sachelsout/infra-lab/tree/main/week-2/prometheus-monitoring) | Prometheus setup for monitoring containers. |\n| 14 | [grafana-monitoring](https://github.com/sachelsout/infra-lab/tree/main/week-2/grafana-monitoring) | Grafana dashboard to visualize metrics. |\n\n---\n\n## 🛠️ Week 3: Docker Swarm \u0026 Secrets Management\n\n| Day | Project | Description |\n|-----|---------|-------------|\n| 15 | [docker-swarm-file-upload](https://github.com/sachelsout/infra-lab/tree/main/week-3/docker-swarm-file-upload) | Converted the file upload app to run on Docker Swarm using `docker stack deploy`. |\n| 16 | [docker-secrets-env](https://github.com/sachelsout/infra-lab/tree/main/week-3/docker-secrets-env) | Managed secrets securely in Docker Swarm using `docker secret` and environment variables. |\n| 17 | [docker-multi-host-networking](https://github.com/sachelsout/infra-lab/tree/main/week-3/docker-multi-host-networking) | Enable services to communicate across multiple Docker nodes. |\n| 18 | [swarm-healthchecks-restart-policies](https://github.com/sachelsout/infra-lab/tree/main/week-3/swarm-healthchecks-restart-policies) | Implement healthchecks and restart policies for services deployed on Docker Swarm. |\n| 19 | [docker-volumes-swarm](https://github.com/sachelsout/infra-lab/tree/main/week-3/docker-volumes-swarm) | Persist uploaded files in a FastAPI app using named Docker volumes on Docker Swarm. |\n| 20 | [swarm-app-with-db](https://github.com/sachelsout/infra-lab/tree/main/week-3/swarm-app-with-db) | A simple blog backend built with FastAPI and PostgreSQL, containerized using Docker, and deployed using Docker Swarm. |\n\n---\n\n## 🛠️ Week 4: Kubernetes Basics\n| Day | Project | Description |\n|-----|---------|-------------|\n| 22 | [k8s-first-pod](https://github.com/sachelsout/infra-lab/tree/main/week-4/k8s-first-pod) | Deployed a single NGINX container in Kubernetes using Docker Desktop's built-in K8s cluster. |\n| 23 | [k8s-fastapi-demo](https://github.com/sachelsout/infra-lab/tree/main/week-4/k8s-fastapi-demo) | Deployed a simple FastAPI app to a Kubernetes cluster using Docker Desktop's built-in Kubernetes. |\n| 24 | [k8s-configmap-secret-demo](https://github.com/sachelsout/infra-lab/tree/main/week-4/k8s-configmap-secret-demo) | Using ConfigMaps and Secrets in Kubernetes to inject configuration and sensitive data into a FastAPI application. |\n| 25 | [k8s-pv-pvc-demo](https://github.com/sachelsout/infra-lab/tree/main/week-4/k8s-pv-pvc-demo) | Using PersistentVolumes (PV) and PersistentVolumeClaims (PVC) in Kubernetes with a simple FastAPI notes app. |\n| 26 | [k8s-file-upload-app](https://github.com/sachelsout/infra-lab/tree/main/week-4/k8s-file-upload-app) | Deployed a fastAPI-based file upload application to Kubernetes using a Deployment and Service. |\n| 27 | [k8s-probes-demo](https://github.com/sachelsout/infra-lab/tree/main/week-4/k8s-probes-demo) | Using readiness and liveness probes in Kubernetes with a FastAPI application. |\n| 28 | [k8s-dashboard-monitoring](https://github.com/sachelsout/infra-lab/tree/main/week-4/k8s-dashboard-monitoring) | Set up and use the Kubernetes Dashboard to monitor the FastAPI app (k8s-probes-demo) we built on Day 27. |\n\n---\n\n## 🛠️ Week 5: Helm, Advanced K8s, Ingress, GitOps\n| Day | Project | Description |\n|-----|---------|-------------|\n| 29 | [helm-redis-install](https://github.com/sachelsout/infra-lab/tree/main/week-5/helm-redis-install) | Helm Basics: Deploying Redis on Kubernetes. |\n| 30 | [helm-fastapi-app](https://github.com/sachelsout/infra-lab/tree/main/week-5/helm-fastapi-app) | Deploying FastAPI File Upload App on Kubernetes using Helm. |\n\n---\n\n## 🌱 Upcoming Topics\n\n- Secure Docker image practices\n- Ingress, load balancing\n- Full-stack infra design\n\n---\n\n## 🔗 GitHub Repository\n\n👉 [https://github.com/sachelsout/infra-lab](https://github.com/sachelsout/infra-lab)\n\n---\n\n## 🧑‍💻 Author\n\n**Rohan Dawkhar**  \nMS in Data Science @ University of Maryland  \nFollow this repo for regular updates on my Infra Engineering journey.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsachelsout%2Finfra-lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsachelsout%2Finfra-lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsachelsout%2Finfra-lab/lists"}