Geliştiriciler için GitHub alternatifi çözümler her geçen gün daha fazla önem kazanıyor. Özellikle veri gizliliği, maliyet kontrolü ve altyapı bağımsızlığı isteyen ekipler için kendi kod deponuzu kurmak güçlü bir seçenek haline geliyor. Bu rehberde, hafif ve hızlı bir Git sunucusu olan Gitea ile kendi sisteminizi nasıl kurabileceğinizi adım adım inceleyeceğiz.
Neden Kendi Kod Deponuzu Kurmalısınız?
GitHub ve GitLab gibi platformlar güçlü olsa da, her proje için uygun olmayabilir. Özellikle özel Git sunucusu kullanmak isteyen ekipler için veri kontrolü kritik bir konudur. Kendi altyapınızda çalışan bir Git repository, kodlarınızın nerede tutulduğunu ve kimlerin eriştiğini tamamen kontrol etmenizi sağlar.
Ayrıca şirket içi projelerde, CI/CD entegrasyonu, özel erişim politikaları ve offline çalışma gibi ihtiyaçlar için kendi sisteminizi kurmak çok daha esnek bir yapı sunar.
Gereksinimler ve Kurulum Ortamı
Bu rehberde Docker ile Gitea kurulumu yapacağız. Bu yöntem hem hızlı hem de taşınabilir bir yapı sağlar.
- Linux Sunucu: Ubuntu, Debian veya CentOS (En az 2 GB RAM önerilir)
- Docker & Docker Compose: Konteyner tabanlı kurulum için
- Git: Lokal geliştirme ve push işlemleri için
Adım 1: Docker ve Docker Compose Kurulumu
Öncelikle sunucunuza Docker kurulumu yapmanız gerekiyor. Ubuntu için aşağıdaki komutları kullanabilirsiniz:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo usermod -aG docker $USER
newgrp docker
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Bu adım sonunda Docker ortamı hazır hale gelir.
Adım 2: Gitea Docker Compose Dosyası
Şimdi Gitea kurulumu için bir yapılandırma dosyası oluşturuyoruz:
mkdir -p /opt/gitea
cd /opt/gitea
nano docker-compose.yml
Aşağıdaki docker-compose.yml içeriğini ekleyin:
version: "3"
services:
gitea:
image: gitea/gitea:1.21.9
container_name: gitea
restart: always
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:22"
environment:
- GITEA__SERVER__DOMAIN=sunucu_ip
- GITEA__SERVER__SSH_PORT=2222
- GITEA__SERVER__ROOT_URL=http://sunucu_ip:3000/
- GITEA__DATABASE__DB_TYPE=sqlite3
- GITEA__DATABASE__PATH=/data/gitea.db
networks:
- gitea_network
networks:
gitea_network:
driver: bridge
Adım 3: Gitea Servisini Başlatma
Artık Gitea Docker container başlatabilirsiniz:
docker compose up -d
Kurulumdan sonra tarayıcıdan http://sunucu_ip:3000 adresine giderek arayüze erişebilirsiniz.
Adım 4: İlk Kurulum Ayarları
İlk girişte Gitea kurulumu ekranı açılır. Önerilen ayarlar:
- Veritabanı: SQLite3
- SSH Port: 2222
- HTTP Port: 3000
- Repository Path: /data/git/repositories
Kurulum sonrası admin hesabı oluşturulur ve sistem kullanıma hazır hale gelir.
Adım 5: Git Repo Oluşturma ve Kullanım
Artık kendi Git sunucunuz aktif. Yeni bir repository oluşturduktan sonra aşağıdaki komutlarla kod gönderebilirsiniz:
cd /proje
git init
git add .
git commit -m "ilk commit"
git remote add origin ssh://git@sunucu_ip:2222/kullanici/repo.git
git push -u origin master
Bu işlemle birlikte projeniz tamamen sizin kontrolünüzde çalışan bir özel Git deposu üzerinde tutulur.
Güvenlik ve Performans Önerileri
Gitea güvenliği için HTTPS kullanmanız önerilir. Bunun için Nginx veya Caddy ile ters proxy kurulumu yapabilirsiniz. Ayrıca SSH erişimi için anahtar tabanlı kimlik doğrulama kullanmak güvenliği artırır.
Yedekleme için `/opt/gitea/data` klasörünü düzenli olarak arşivlemeniz gerekir. Bu klasör tüm repository ve veritabanını içerir. Büyük projeler için SQLite yerine MySQL veya PostgreSQL tercih edilmesi performansı artırır.
Sonuç: Kendi Git Altyapınızı Kurun
GitHub alternatifi olarak kendi sisteminizi kurmak, hem veri kontrolü hem de esneklik açısından büyük avantaj sağlar. Gitea gibi hafif çözümler sayesinde, birkaç adımda tamamen size ait bir kod barındırma platformu oluşturabilirsiniz.