{"id":30358647,"url":"https://github.com/julianzanetti/homelab","last_synced_at":"2026-04-14T10:33:13.108Z","repository":{"id":305809297,"uuid":"1023924435","full_name":"julianzanetti/homelab","owner":"julianzanetti","description":"Documentation of my DevOps Homelab deployed on AWS with Terraform and managed with Kubernetes (k3s) and GitOps configuration with ArgoCD.","archived":false,"fork":false,"pushed_at":"2025-09-26T00:04:53.000Z","size":73,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-26T00:27:50.802Z","etag":null,"topics":["ansible","argocd","aws","github-actions","gitops","grafana","homelab","k3s","kubernetes","linux","prometheus","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","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/julianzanetti.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-07-21T23:20:37.000Z","updated_at":"2025-09-22T20:11:20.000Z","dependencies_parsed_at":"2025-08-07T20:19:43.886Z","dependency_job_id":"12f697ae-e7ea-43ae-beba-93625e394a81","html_url":"https://github.com/julianzanetti/homelab","commit_stats":null,"previous_names":["julianzanetti/homelab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/julianzanetti/homelab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julianzanetti%2Fhomelab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julianzanetti%2Fhomelab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julianzanetti%2Fhomelab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julianzanetti%2Fhomelab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/julianzanetti","download_url":"https://codeload.github.com/julianzanetti/homelab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julianzanetti%2Fhomelab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31793215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: 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":["ansible","argocd","aws","github-actions","gitops","grafana","homelab","k3s","kubernetes","linux","prometheus","terraform"],"created_at":"2025-08-19T11:01:59.419Z","updated_at":"2026-04-14T10:33:13.102Z","avatar_url":"https://github.com/julianzanetti.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧱 Homelab DevOps in AWS\nThis repo contains all of the configuration and documentation of my homelab in AWS, the project is a personal lab environment on AWS with real DevOps practices. \n\nThe goal is to simulate a productive 24/7 infrastructure with multiple applications, observability, GitOps, security and automation. This homelab is the place where I can try out and learn new things. By self-hosting some aplications, it makes me feel responsible for the entire process of deploying and mantaining. It forces me think about backup strategies, security, scalability, etc.\n\n## 🚀 Technologies used\n- Kubernetes (K3s)\n- Docker\n- Terraform + Ansible\n- AWS:\n  - EC2 Spot + EBS\n  - Route 53\n  - IAM\n- Don Web (domain)\n- Helm\n- PostgreSQL (with monitoring)\n- ArgoCD\n- Prometheus + Grafana + Loki\n- Let's Encrypt (cert-manager)\n- GitHub Actions (CI/CD)\n- Homepage (central dashboard)\n\n## 🌍 Apps deployed (In progress...)\n| App               | Subdomain              |\n|-------------------|--------------------------|\n| Homepage          | [home.julianzanetti-lab.com](https://home.julianzanetti-lab.com)      |\n| Portfolio Web     | [julianzanetti-lab.com](https://julianzanetti-lab.com)           |\n| PendingTask       | [pendingtask.julianzanetti-lab.com](https://pendingtask.julianzanetti-lab.com)   |\n| Grafana           | [grafana.julianzanetti-lab.com](https://grafana.julianzanetti-lab.com)   |\n| ArgoCD            | [argocd.julianzanetti-lab.com](https://argocd.julianzanetti-lab.com)    |\n| Prometheus        |           -              |\n| Loki              |           -              |\n\n## 🧩 Infrastructure\n3 EC2 Spot instances (`t4g.small` x3) with EBS volumes (`10GB each one`) and custom domain. K3s is installed on them and orchestrates all services, exposed with HTTPS thanks to NGINX Ingress + cert-manager.\n\n## 🧠 Objective\nLearn and demonstrate professional skills in:\n\n- True cloud deployment\n- Centralised monitoring and logging\n- Cloud security\n- GitOps + CI/CD\n- Infrastructure as code\n\n## 📸 Screenshots\n- Instances:\n\u003cimg width=\"2315\" height=\"295\" alt=\"image\" src=\"https://github.com/user-attachments/assets/e035effd-f7de-4a54-b1f3-c914d1846c13\" /\u003e\n\n- Homepage:\n\u003cimg width=\"1365\" height=\"712\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c4a032e3-346a-4f91-b256-07f0e6cf3e93\" /\u003e\n\n- Portfolio:\n\u003cimg width=\"2559\" height=\"1312\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c353ed7a-a27c-4ab7-aba4-643cbfa15fcc\" /\u003e\n\n- Pendingtask:\n\u003cimg width=\"2559\" height=\"861\" alt=\"image\" src=\"https://github.com/user-attachments/assets/4c8b3be2-2922-4cff-9856-e6bad736626d\" /\u003e\n\n- ArgoCD:\n\u003cimg width=\"2559\" height=\"1280\" alt=\"image\" src=\"https://github.com/user-attachments/assets/95d2df08-7455-4fad-a30e-fa3b5f0192ff\" /\u003e\n\n- Grafana:\n\u003cimg width=\"2559\" height=\"1350\" alt=\"image\" src=\"https://github.com/user-attachments/assets/a06366c9-2d56-400a-9c37-42b174a6d34a\" /\u003e\n\n\n## ✅ Roadmap by stages\n- ### 🟩 Stage 1 - Apps\n    - ✅ PendingTask and Portfolio with Docker.\n    - ✅ Try in Minikube.\n    - ✅ Create all necessary YAML manifests.\n\n- ### 🟩 Stage 2 — AWS Infrastructure\n    - ✅ Configure Terraform to deploy:\n        - ✅ VPC infra\n        - ✅ Security Groups\n        - ✅ 3 EC2 Spot Instances (1 master, 2 workers) + EBS\n        - ✅ Elastic IP\n    - ✅ Test provisioning and connectivity\n\n- ### 🟩 Stage 3 — K3s \u0026 Core Services\n    - ✅ Install K3s and connect nodes with Ansible\n    - ✅ Deploy NGINX Ingress Controller with Helm\n    - ❌ Route DNS to Elastic IP with DonWeb *(Deprecated – migrated to Route 53)*\n    - ✅ Configure Route53 hosted zone for julianzanetti-lab.com\n    - ✅ Create IAM user and policy for cert-manager DNS access\n    - ✅ Deploy cert-manager with Helm\n    - ✅ Set up ClusterIssuer with DNS-01 using Route53\n    - ✅ Issue Let's Encrypt certificates automatically for each app\n    - ✅ Force HTTPS with valid TLS certificates in all apps\n\n- ### 🟦 Stage 4 — Deploy \u0026 GitOps\n    - 🟧 Deploy all applications to cluster\n    - ☐ Deploy PostgreSQL Exporter\n    - ✅ Install Prometheus, Grafana and Loki\n    - ✅ Install ArgoCD and link Git repo\n\n- ### 🟪 Stage 5 — Final touches\n    - ✅ Create Grafana dashboards\n    - ☐ Automate deployments with GitHub Actions\n    - ✅ Add screenshots to README\n    - ☐ Backup and snapshot strategy (optional)\n    - ☐ Script to keep the 3 spot instances up\n    - 🟧 Migrate Infraestructure to ASG (1 on-demand + 2 spot)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulianzanetti%2Fhomelab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjulianzanetti%2Fhomelab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulianzanetti%2Fhomelab/lists"}