Kendi Sunucunda IaC: Docker Compose ile Otomatik Dağıtım
Evde barındırılan sunucu kurmak isteyenler genellikle aynı soruna çarpıyor: tüm servisleri (Forgejo, Traefik, OpenWebUI gibi) tek bir yerde yönetmek, ama aynı zamanda kendi uygulamalarını da eklemek istiyorlar.
Bir geliştirici bu problemi Infrastructure as Code (IaC) yaklaşımıyla çözmek istiyor. Planı basit: Git deposunda Docker Compose dosyalarını sakla, push yap ve sunucu otomatik olarak güncellensin. Ayrıca custom uygulamalar da aynı yapıya uygun olsun.
Önerilen klasör yapısı şöyle görünüyor:
1├── infra/2│ ├── forgejo.dockercompose.yml3│ ├── traefik.dockercompose.yml4│ ├── openwebui.dockercompose.yml5│ └── tailscale.dockercompose.yml6└── src/app1/7├── Dockerfile8└── docker-compose.ymlBu yaklaşımda önemli noktalar var: Standart servisleri `infra/` klasöründe tutmak, kendi uygulamalarını `src/` altında organize etmek, ve tüm bunları tek bir push işlemiyle dağıtmak.
Bu için Gitea/Forgejo üzerinde webhook kurup, push olduğunda sunucuda otomatik script çalıştırmak gerekir. Script tüm Compose dosyalarını bulup `docker-compose up -d` ile güncelleyebilir.
Çoklu custom app için ayrı repo kullanmak da mantıklı olabilir, böylece her app kendi CI/CD'sini yönetir, ama sonuçta yine ana sunucu deposunda trigger edilir.
Bu yöntem Kubernetes gibi ağır araçlara gitmeden, basit ve kontrollü bir self-hosted çözüm sağlıyor.
0 yorum