# 🌍 iklim.co Altyapı ve Sunucu Yönetimi Bu depo, `iklim.co` projesinin **test** ve **production** ortamlarını kurmak, yönetmek ve modernize etmek için gerekli olan Infrastructure-as-Code (IaC) varlıklarını, teknik rehberleri ve operasyonel standartları barındırır. Altyapı yönetimi; Hetzner Cloud üzerinde Terraform ile kaynak provisioning, Ansible ile işletim sistemi yapılandırması ve Docker Swarm üzerinde mikroservis mimarisinin kurgulanması süreçlerini kapsar. --- ## 📂 Depo Yapısı ve Temel Bölümler Bu depodaki dökümantasyon ve kod varlıkları beş ana kategoriye ayrılmıştır: ### 1. 🛣️ Roadmap (`roadmap/`) Ortamların (test ve prod) sıfırdan kurulması veya mevcut yapının güncellenmesi için gerekli olan **iş gereksinimlerini, teknik hedefleri ve adım adım uygulama planlarını** içerir. - Altyapıda yapılacak büyük değişikliklerin (örn: Redis Sentinel geçişi, APISIX konfigürasyonu, RabbitMQ Quorum Queues) stratejik dökümantasyonudur. - [roadmap/test-env/](./roadmap/test-env/) - Test ortamı gereksinimleri ve planları. - [roadmap/prod-env/](./roadmap/prod-env/) - Üretim ortamı HA (High Availability) ve güvenilirlik planları. ### 2. 🛠️ Setup (`setup/`) Altyapının fiziksel olarak ayağa kaldırılması için kullanılan **uygulama dökümanlarıdır**. Bu bölüm şunları yönetmek için kullanılır: - **Terraform:** Bulut kaynaklarının (Server, Network, Firewall) üretilmesi. - **Ansible:** İşletim sistemi hazırlığı, güvenlik sertleştirme (hardening), Docker/Swarm kurulumu. - **CI/CD:** Deployment workflow'larının (Gitea Actions) ve stack manifest'lerinin oluşturulması/güncellenmesi. - Örn: [setup/06-prod-terraform-iaac.md](./setup/06-prod-terraform-iaac.md), [setup/07-prod-ansible-bootstrap.md](./setup/07-prod-ansible-bootstrap.md) ### 3. 🗺️ Setup vs Roadmap Matrisi (`setup-vs-roadmap-map.md`) İşterler doğrultusunda hazırlanan **Roadmap** dökümanları ile bu isterleri teknik olarak hayata geçiren **Setup** dökümanları arasındaki ilişkiyi açıklar. - Hangi roadmap adımının hangi setup dökümanı ile uygulandığını gösteren bir eşleşme matrisidir. - [setup-vs-roadmap-map.md](./setup-vs-roadmap-map.md) dökümanından detaylara ulaşılabilir. ### 4. 📊 Hetzner Sizing Report (`hetzner-sizing-report.md`) İklim altyapı servisleri (API Gateway, Microservices, Databases, Broker) için seçilen **Hetzner sunucu tiplerini, CPU/RAM kapasitelerini ve maliyet/performans analizlerini** anlatır. - Ortam kurulumundan önce kapasite planlaması için temel referans noktasıdır. - [hetzner-sizing-report.md](./hetzner-sizing-report.md) dökümanını inceleyin. ### 5. 💡 Facts (`facts/`) Ortam kurulumları tamamlandıktan sonra ortaya çıkan, **sistemin o anki gerçek durumunu (source of truth) ve bilinmesi gereken kritik teknik detayları** barındıran dökümanlardır. - "Sistem şu an nasıl çalışıyor?" sorusunun cevabıdır. - [facts/firewall.md](./facts/firewall.md): Aktif firewall kuralları ve port matrisi. - [facts/swarm-node-recovery-swag-failover.md](./facts/swarm-node-recovery-swag-failover.md): Node düşmesi durumunda manuel müdahale ve recovery prosedürleri. --- ## 🧱 Kurulum Akışı (Kanonik Sıra) Bir ortamı sıfırdan kurarken veya majör bir güncelleme yaparken şu sırayı takip edin: 1. **Analiz:** [hetzner-sizing-report.md](./hetzner-sizing-report.md) ile kaynak ihtiyacını belirleyin. 2. **Planlama:** `roadmap/` altındaki ilgili ortam dökümanlarını inceleyerek yapılacak değişiklikleri anlayın. 3. **Hizalama:** [setup-vs-roadmap-map.md](./setup-vs-roadmap-map.md) ile hangi setup dökümanlarını kullanacağınızı netleştirin. 4. **Uygulama:** `setup/` dökümanlarını (00'dan 09'a kadar) sırasıyla takip ederek Terraform ve Ansible süreçlerini işletin. 5. **Doğrulama:** Kurulum sonrası sistemin çalışma prensipleri için `facts/` dökümanlarını referans alın. --- ## ✅ Ön Koşullar ve Araçlar - **Terraform >= 1.6**: Altyapı provisioning. - **Ansible**: Konfigürasyon yönetimi. - **Hetzner Cloud API Token**: Ortam bazlı yetkilendirme. - **SSH Key**: Sunucu erişimi için sisteme tanımlı anahtar çifti. --- *iklim.co Infrastructure Team - 2026*