Gitea | Kendi Git Sunucunuzu Kurun
- melihcelenk
- Site Admin
- Mesajlar: 223
- Kayıt: 05 Eki 2021, 03:23
Gitea | Kendi Git Sunucunuzu Kurun
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
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:
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.
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.
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. 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.
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
IP adresini yazarak gittiğinizde (http://192.168.1.100:3000) şu uyarıyı göreceksiniz:
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.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.
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/
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.
➣ Kendi sunucunuzu bağlayın.git remote remove origin
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.git remote add origin http://192.168.1.100:3000/melihcelenk/projem.git
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. 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.
➣ Kendi sunucunuzu bağlayın.git remote remove origin
git remote add origin http://10.1.2.100:3000/melihcelenk/projem.git