Geliştirme · KYC yok
Gitea'i Offshore VPS Üzerinde Barındırın
No-KYC, kripto ile ödemeli bir VPS üzerinde kendi hafif Git platformunuzu (forge) çalıştırın ve her repo'yu, her issue'yu ve her CI pipeline'ı üçüncü taraf bulut hizmetlerinin dışında tutun.
Bu nedir
Gitea, Go dilinde yazılmış, kendi sunucunuzda barındırabileceğiniz bir Git hizmetidir — depo, pull request, issue, wiki, release ve Actions (CI/CD) sunan hafif bir GitHub/GitLab alternatifidir. Tek bir ikili dosya (binary) veya Docker image olarak dağıtılır ve düşük bellek kullanımına sahiptir; bu da kaynak kodları üzerinde tam kontrol isteyen ekipler için idealdir.
Neden offshore barındırma
Kaynak kodu, bir ekibin sahip olduğu en hassas verilerden biridir; bunu kimliksiz, offshore bir VPS üzerinde barındırmak, büyük kod barındırma platformlarının ve onların veri saklama/kaldırma (takedown) politikalarının erişiminin dışında tutar. Kripto ile ve KYC olmadan ödeme yapmak, projenizin altyapısının kurumsal bir kimliğe bağlı olmaması anlamına gelir; sınırsız bant genişliği ise klonlama işlemlerinin, CI çalıştırmalarının ve release indirmelerinin ölçüm sürprizleriyle karşılaşmadan akmasını sağlar.
Dağıtım
Çalışan bir referans kurulum
Bunu yeni bir ChainVPS örneğine kopyalayın. Yer tutucuları değiştirin, ardından çalıştırın.
# docker-compose.yml — Gitea + PostgreSQL on Ubuntu 24.04
# 1) apt install docker.io docker-compose-v2
# 2) put this file in /opt/gitea and run: docker compose up -d
# 3) open http://SERVER_IP:3000 to finish the web installer
services:
server:
image: gitea/gitea:1.22
container_name: gitea
restart: always
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=CHANGE_ME_STRONG_DB_PW
# correct clone URLs — set to your domain once DNS is ready:
- GITEA__server__DOMAIN=git.example.com
- GITEA__server__ROOT_URL=https://git.example.com/
- GITEA__server__SSH_PORT=222
- GITEA__service__DISABLE_REGISTRATION=true
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000" # web UI — front with a TLS reverse proxy in production
- "222:22" # git-over-SSH (host 222 -> container 22)
depends_on:
- db
networks:
- gitea
db:
image: postgres:16
container_name: gitea-db
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=CHANGE_ME_STRONG_DB_PW
- POSTGRES_DB=gitea
volumes:
- ./postgres:/var/lib/postgresql/data
networks:
- gitea
networks:
gitea:
external: false
Güvenlik duvarı
Açılması gereken portlar
| Port | Protokol | Amaç |
|---|---|---|
| 3000 | TCP | Gitea web arayüzü ve HTTP git — üretimde bir TLS ters proxy'nin (Caddy/Nginx) arkasında tutun |
| 222 | TCP | SSH üzerinden Git (host portu, container'daki 22 numaralı porta eşlenir) — SSH anahtarlarıyla clone/push işlemleri için |
| 443 | TCP | Alan adı ve sertifika hazır olduğunda, ters proxy'niz üzerinden HTTPS |
| 22 | TCP | Yönetim için host SSH — Gitea'nın 222 portundan ayrı bir portta ve yalnızca anahtarla (key-only) tutun |
Doğru boyutlandırma
Hangi plana ihtiyacınız var
VPS Nano/Small (1-2 vCPU, 2 GB RAM)
Tek geliştirici veya az sayıda kullanıcı, birkaç düzine repo, CI yok. Gitea boşta yaklaşık 150-200 MB RAM kullanır.
VPS Pro (2-4 vCPU, 4-8 GB RAM)
Küçük ekip, aktif pull request'ler, artı CI için bir veya iki Gitea Actions runner'ı. Büyük release dosyaları için bir depolama birimi (storage volume) ekleyin.
Dedicated (ya da repo'lar için Storage VPS)
Çok sayıda eşzamanlı kullanıcı, büyük monorepo'lar, yoğun CI eşzamanlılığı veya LFS ağırlıklı medya. Ayrılmış (dedicated) CPU, clone/pack işlemlerini hızlı tutar; repo/LFS verileri için bir Storage planıyla birleştirin.
En iyi konumlar: Gizlilik odaklı bir konum seçin — İsviçre (CH) ve İzlanda (IS), kaynak kodu için en güçlü veri koruma duruşunu sunar; Hollanda (NL), Romanya (RO), Moldova (MD) ve Lüksemburg (LU) ise sağlam offshore alternatifleridir. Git round-trip'leri gecikmeye duyarlı olduğundan, clone/push gecikmesini azaltmak için katkıda bulunanlarınıza en yakın bölgeyi seçin.
Sıkı güvenlik altına alın
Sıkılaştırma kontrol listesi
- 3000 portunu asla doğrudan internete açık bırakmayın — Gitea'yı bir TLS ters proxy'nin (Caddy otomatik HTTPS veya Nginx + certbot) arkasına koyun ve clone URL'lerinin doğru olması için GITEA__server__ROOT_URL değerini https alan adına ayarlayın.
- Yönetici hesabınızı oluşturduktan hemen sonra DISABLE_REGISTRATION=true değerini ayarlayın (compose dosyasında zaten mevcut), böylece kimse kendi kendine kayıt olamaz; kullanıcıları manuel olarak veya yönetici panelinden davet edin.
- SSH üzerinden git'i 222 portunda, host'un kendi sshd'sini ise farklı bir portta tutun; ikisi de yalnızca anahtarla (PasswordAuthentication no) çalışsın. Gitea, authorized_keys dosyasını kendi içinde yönetir, bu yüzden onu elle düzenlemeyin.
- Her hesap için 2FA'yı etkinleştirin ve yönetici için zorunlu kılın; DB şifresini ortam değişkenlerinden çıkarıp bir Docker secret'ına veya 600 izinli bir .env dosyasına taşıyın.
- ./gitea dizinini (repo'lar, config, LFS) ve gitea veritabanının bir pg_dump'ını düzenli bir programla yedekleyin; yükseltmelerin bilinçli olması için image'ı latest yerine belirli bir sürüm etiketine (gitea/gitea:1.22) sabitleyin — büyük sürüm güncellemelerinden önce release notlarını okuyun.
Bunu şurada devreye alın
Doğru ChainVPS ürünü
Sorular
Hosting Gitea — SSS
Ayrı bir servise ihtiyaç duymadan CI/CD çalıştırabilir miyim?
Evet. Gitea'nın yerleşik Actions özelliği vardır (GitHub Actions ile uyumlu). Bunu etkinleştirin, ardından instance'ınıza karşı bir runner container'ı (gitea/act_runner) kaydedin. Gerçek CI yükü için, build'lerin web servisini aç bırakmaması adına Orta veya daha büyük bir plan kullanın.
SQLite mi, MySQL mi, yoksa PostgreSQL mi?
SQLite, tek ve hafif bir kullanıcı için işe yarar ve ayrı bir DB container'ı gerektirmez. Herhangi bir ekip veya büyüme yolu için compose dosyasında gösterildiği gibi PostgreSQL kullanın — eşzamanlılığı çok daha iyi yönetir ve pg_dump ile yedeklemesi çok kolaydır.
Repo'larımı GitHub/GitLab'dan nasıl taşırım (migrate ederim)?
Gitea'nın yerleşik migrasyon aracı, bir repoyu URL üzerinden issue'lar, PR'lar, release'ler ve wiki dahil olmak üzere içe aktarır. Özel repoları ve metadata'yı çekebilmek için migrasyon formuna kaynak platform için bir token ekleyin.
Bu, büyük dosyaları (Git LFS) destekliyor mu?
Evet, LFS yerel olarak desteklenir ve /data altında saklanır. Büyük ikili dosyalar veya medya barındırıyorsanız, ./gitea dizinini bir Storage VPS biriminin üzerine koyun ve diski buna göre planlayın — LFS nesneleri hızla birikir.
Kodum, no-KYC bir sunucuda özel/gizli kalır mı?
Repo'larınız tamamen seçtiğiniz offshore yargı bölgesindeki VPS diskinizde yaşar; hiçbir şey üçüncü bir tarafa yansıtılmaz (mirror edilmez). Tam kontrol için kaydı kapalı tutun, HTTPS + SSH anahtarları kullanın, 2FA'yı etkinleştirin ve şifrelenmiş off-box yedekler alın.
Kendi barındırmak için daha fazlası
Diğer tek tıkla kurulan yazılım yığınları
Hemen kur Gitea
önümüzdeki 60 saniye içinde.
Sınırsız bant genişliği · DDoS dahil · 21 kripto para birimi · KYC yok.