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.