Gitea | Kendi Git Sunucunuzu Kurun

Mobil uygulama, web uygulaması, oyun geliştirme, ağ yönetimi ve diğer konular ile ilgili bilgileri burada bulabilirsiniz
Cevapla
Kullanıcı avatarı
melihcelenk
Site Admin
Mesajlar: 223
Kayıt: 05 Eki 2021, 03:23

Gitea | Kendi Git Sunucunuzu Kurun

Mesaj gönderen melihcelenk »

Bazen kodunuzu Github, Gitlab, Bitbucket gibi bir yerde tutmak istemeyebilirsiniz. Veya bir oyun geliştiriyorsanız dosyalarınız çok büyük olduğu için limite takılabilirsiniz. Böyle bir durumda kendi git sunucunuzu kurmak iyi bir alternatif olabilir.

Gitea'yı doğrudan exe ile çalıştırmak 3000 portunun kullanımda olmamasını gerektiriyor. Kurulum için Docker kullanmak hem istediğiniz portta çalıştırmayı hem de ayarları kolay bir şekilde yapabilmenizi sağlar. Ayrıca izole bir ortam oluşturur.

https://docs.gitea.com/installation/ins ... l-database

Gitea'yı bir Postgresql database ile ayağa kaldırmak için +'ları silin ve kendinize göre ayarlayın.

Eğer Windows kullanıyorsanız Docker'ı WSL ile kullanmanız yararlı olacaktır. WSL size Windows üzerinde basit bir Linux alanı sağlar. Docker volume'lerinizi bu Linux üzerindeki bir dosya yolu olarak ayarlayın. Aksi takdirde Windows'un izinleri ile Linux'un izinleri uyuşmayıp problem yaşatabilir.

Aşağıdaki docker-compose.yaml dosyasını istediğiniz bir dizine koyun.

Örnek: C:\gitsunucum\docker-compose.yaml

Kod: Tümünü seç

version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: docker.gitea.com/gitea:1.23.7
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=melihcelenkdb
      - GITEA__database__USER=melihcelenk
      - GITEA__database__PASSWD=123456
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: docker.io/library/postgres:14
    restart: always
    environment:
      - POSTGRES_USER=melihcelenk
      - POSTGRES_PASSWORD=123456
      - POSTGRES_DB=melihcelenkdb
    networks:
      - gitea
    volumes:
      - /home/melihcelenk/gitsunucum/postgres:/var/lib/postgresql/data
Bu haliyle kendi bilgisayarınızdan tarayıcıda adres çubuğuna http://localhost:3000 yazarsanız Gitea'ya gidebilirsiniz. Ancak ağınızdaki başka bilgisayarların da gidebilmesi için localhost yerine bilgisayarınızın IP adresini yazmanız gerekir. Örneğin IP adresiniz 192.168.1.100 olsun.

IP adresini yazarak gittiğinizde (http://192.168.1.100:3000) şu uyarıyı göreceksiniz:
Your ROOT_URL in app.ini is "http://localhost:3000/", it's unlikely matching the site you are visiting.
Mismatched ROOT_URL config causes wrong URL links for web UI/mail content/webhook notification/OAuth2 sign-in.
Uygulamanın URL'i localhost, ancak gitmek istediğiniz URL başka olduğu için bu uyarıyı alırsınız. Bu nedenle uygulamanın ayarlarından URL değişkenlerini IP adresinizi içerecek şekilde güncellemelisiniz.

Docker-compose dosyanızın olduğu dizine gidiyorsunuz (C:\gitsunucum) ve ardından şu yolu takip ediyorsunuz:
\gitea\gitea\conf\app.ini

[server] bloğunu bulun. localhost olan alanları IP adresiniz ile güncelleyin. Örneğin IP adresiniz 192.168.1.100 olsun.

Kod: Tümünü seç

[server]
APP_DATA_PATH = /data/gitea
DOMAIN = 192.168.1.100
SSH_DOMAIN = 192.168.1.100
HTTP_PORT = 3000
ROOT_URL = http://192.168.1.100:3000/
Bunu yaptıktan sonra docker container'ınızı restart edin.

Artık http://192.168.1.100:3000 adresine gittiğinizde yukarıdaki uyarıyı görmeyeceksiniz.

Yeni bir repository oluşturduğunuzda standart git adımlarını kullanabilirsiniz. Eğer Github gibi bir yerdeki projenizi buraya taşımak istiyorsanız ise şu adımları gerçekleştirin:

➣ URL üzerinden yeni bir git repository'si oluşturun.
➣ Lokalde projenizin olduğu klasörde terminal açın.
➣ Uzak git bağını temizleyin.
git remote remove origin
➣ Kendi sunucunuzu bağlayın.
Eğer bu repository'i kendi ağınız dışında da insanlar kullanacaksa iki seçeneğiniz var. Portunuzu dışarı açmayı düşünebilirsiniz. Ancak bu seçenek portunuzu aynı zamanda saldırılara da açmak anlamına geliyor. Profesyonel değilseniz bu seçenek yerine VPN kurmayı düşünebilirsiniz. Şirketler de genellikle bu şekilde çalışır. Konumuz VPN olmadığı için buradan kısaca bahsedeceğim.

Ben sizin için en kolay VPN çözümünü araştırdım. ZeroTier istediğimiz ortamı bizim için sağlıyor. Dilerseniz daha karmaşık olan OpenVPN gibi diğer çözümleri de tercih edebilirsiniz.

Bilgisayarınıza ZeroTier uygulamasını indirin.
https://www.zerotier.com/download/

ZeroTier'a Google hesabınız üzerinden kolayca kaydolup giriş yapabilirsiniz.
https://my.zerotier.com/

Giriş yaptıktan sonra bir network oluşturun.

Karşı bilgisayarda da indirip giriş yaptıktan sonra bu network'e bağlanın.

Yönetici bilgisayarda giriş yapan bilgisayar görünecektir. Edit butonuna tıklayın.
resim_2025-04-13_144723906.png
resim_2025-04-13_144723906.png (19.83 KiB) 13 kere görüntülendi
Authorized seçeneğini işaretleyin ve kaydedin.

Artık bilgisayarlarınız Managed IPs'te yazan IP'ler üzerinden birbirini görebilecektir. Örneğin sistem size 10.1.2.100 IP'sini vermiş olsun.

Son olarak app.ini dosyanızdaki [server] bölümünde artık yerel network'ünüzdeki IP'yi değil, VPN network'ünüzdeki IP'nizi yazmalısınız. Docker container'ınızı restart ettikten sonra birbirinizi görebileceksiniz. Tabii artık VPN IP'leri üzerinden haberleştiğimiz için aşağıdaki adımları hem kendi bilgisayarımızda hem de karşı bilgisayarda yeni IP'lerimizle yapmalıyız.

➣ Uzak git bağını temizleyin.
git remote remove origin
➣ Kendi sunucunuzu bağlayın.
Cevapla