Forgejo: Kendi Barındırılan Hafif Yazılım Forge’u
(forgejo.org)- Forgejo, geliştirme platformunu kendi işletmek isteyen ekipler için kendi barındırılan hafif bir yazılım forge’u olup kurulum ve bakım yükünü azaltmaya odaklanır
- Codeberg e.V. çatısı altındaki topluluk tarafından işletilir; hem proje hem de geliştirme süreci özgür yazılım temelini korur
- GitHub’a alışkın kullanıcıların kolayca geçiş yapabileceği bir ortam sunarken, platform sahipliği ve iş birliği verimliliği üzerinde kontrolü kullanıcıların doğrudan elinde tutması için tasarlanmıştır
- Zengin özellikler sunarken düşük sunucu gereksinimlerini korur; diğer forge’lara kıyasla tek haneli ölçekte daha az kaynak gerektirdiğini belirtir
- Güvenlik, ölçeklenebilirlik, federasyon ve gizlilik odağında dağıtık iş birliğine dayalı geliştirmeyi hedefler
Forgejo’nun konumu ve işletim biçimi
- Forgejo, kendi barındırılan hafif bir yazılım forge’u olarak, yazılım geliştirme platformunu kendi sunucularınızda işletmenizi sağlar
- Kolay kurulum ve bakım ile düşük yönetim yükünü hedefler
- Codeberg üzerinde veya diğer herkese açık instance’larda hesap oluşturabilir ya da indirip kendiniz barındırabilirsiniz
- İşletici yapı, Codeberg e.V. çatısı altındaki kapsayıcı topluluktur
- Codeberg e.V. demokratik bir kâr amacı gütmeyen kuruluş olarak tanıtılır
- Forgejo’nun yalnızca özgür yazılım olarak güvenilir olduğu belirtilir
- Ürün odağı güvenlik, ölçeklenebilirlik, federasyon ve gizlilik üzerindedir
- Diğer yazılım forge’larıyla farkları karşılaştırma sayfasında görülebilir
Özellik yönelimi ve katkı alanları
- Forgejo, yazılım geliştirme sürecinin kontrolünü geri almayı, projeleri kendi ortamınızda barındırmayı ve katılımcıların kaliteli yazılım sunmaya birlikte odaklanmasına yardımcı olmayı amaçlar
-
Kullanılabilirlik ve işletim yükü
- Basit proje yönetimini öne çıkarır; iş birliği ve verimlilik için kullanıcı deneyimine önem verir
- GitHub kullanıcılarına tanıdık bir ortam sunarak, kullanıcıların sahip olduğu bir platforma geçiş yapabilmelerini sağlar
- Uzman teknik bilgi olmadan da kendi yazılım forge’unu işletmeyi mümkün kılmak için kurulum ve bakım yükünü azaltır
-
Özgür yazılım ve dağıtık iş birliği
- Zengin özellikler sunarken düşük sunucu profilini korur
- Hem Forgejo’nun kendisi hem de proje geliştirme süreci özgür yazılım kullanır
- Dağıtık bir platform aracılığıyla iş birliğine dayalı yazılım geliştirmeyi mümkün kılan bir yön ortaya koyar
-
Katkıda bulunulabilecek alanlar
1 yorum
Hacker News yorumları
FAQ’ya göre telaffuzu forˈd͡ʒe.jo; Ortabatı Amerikan İngilizcesi kulağına “4 Jay yo” gibi geliyor. Esperanto’da Forge anlamına geldiği söyleniyor
Gitea’nın bir fork’u ama kâr amacı gütmeden işletiliyor ve premium upsell olmadan tamamen özgür lisanslı (GPL); bu hoşuma gidiyor. Topluluk iletişiminin Matrix ve Mastodon üzerinden olması da güzel
Codeberg bunu kullanıyor gibi görünüyor; dışarıdan Gitea/GitHub’a benziyor ve bunda bir sorun yok. Kaynak kodu sağ üstteki küçük branch simgesinden görülebiliyor ve Codeberg’de barındırılıyor. Bugün öğrendiğim şey, Codeberg’ün kendisinin bir Forgejo instance’ı olduğu
https://forgejo.org/2024-02-forking-forward/
https://v10.next.forgejo.org/explore/repos
https://codeberg.org/forgejo/forgejo
Anladığım kadarıyla fork’un ortaya çıkmasının nedeni, Gitea’nın şirketlerden talep geldiğinde özel özellikler geliştiren bir şirket kurmasıydı; lisansı tersine çevirme gibi çok sayıda işaret yoktu
Fedora Project’in bu tarafa taşınmakta olduğu söyleniyor: https://fedoramagazine.org/fedora-moves-towards-forgejo-a-unified-decision/
Forgejo’nun neden Gitea’dan ayrıldığını merak edip bakınca, parasız özgür açık kaynak yaratıcılarının/bakımcılarının yine yukarıdan, belki aşağıdan da ezildiği bir örnek gibi görünüyor
Gitea’nın şirketleşme duyurusuna bakılırsa, yalnızca özgür açık kaynakla maliyetleri karşılayamamışlar; MIT lisansının izin verdiği varlıklı bedavacılar da varmış gibi duruyor
Kilit nokta şu bölüm: “Yıllar boyunca bakımcıları ve projeyi desteklemek için bounty’ler, doğrudan sponsorluklar, hibeler gibi çeşitli yollar denedik. Birçok harika birey ve bazı şirketler son derece cömert davrandı; ancak bazı şirketler, bazı ülkelerin GSYİH’sinden daha büyük gelirler elde ederken Gitea’yı temel ürünlerinde kullandı ve iyileştirmeleri geri vermedi”
Bruce Perens’i pek sevmem ama “Harika bir kurumsal refah programımız var ve kullanıcıları dünyanın en zengin şirketleri. Buna karşılık geliştiriciler o şirketlerde çalışmıyorsa neredeyse hiç karşılık alamıyor” sözü sorunun tam kalbine dokunuyor
Öte yandan kurucular bir şirket kurunca topluluk tepki göstermiş; bunun şirketin kurulmasından ziyade, o şirketin alan adına ve ticari markaya sahip olmasından kaynaklandığı söyleniyor. Dışarıdan küçük bir gerekçe gibi görünüyor ama ayrıntıları bilmiyorum
Her hâlükârda hobi geliştiriciler ve FAANG dışı için FOSS’un başarısız olduğu vaka #187 gibi görünüyor
Özgür yazılım aslında etik bir hareketti ve gelir kaynaklarına öncelik vermesi gerekmiyordu. Çünkü hedef sürdürülebilir geliştirme değil, kullanıcı özgürlüğüydü. “Kullanıcıların yazılımla istedikleri şeyi yapma özgürlüğü olmalı” sözünün hiçbir yerinde “ve bu etik hedef için çalışan birkaç geliştiriciye maaş ödeyebilmeliyiz” diye bir şey yok
OSI’nin kendi tarihçesine göre, bir noktada insanlar açık geliştirme modelinin iş dünyası için de özünde iyi olduğunu düşünmeye başladı, Netscape katıldı ve bazı kişiler bir araya gelip özgür yazılımı açık kaynak olarak yeniden markaladı
http://web.archive.org/web/20071115150105/https://opensource.org/history/
FOSS sözcüğü bana Amerikan tarzı kurumsal Budizm gibi geliyor. Mindfulness ve meditasyonun, asıl derin dini bağlamından koparılıp bir kişisel gelişim programına dönüşmesi gibi; özgün uygulayıcıların tanımakta zorlanacağı bir biçim aldı. Özgür yazılım sürdürülebilir geliştirme değil, kullanıcı özgürlüğü denen doğru şeyi yapmakla ilgiliydi; geri kalan her şey bu amaca yönelik araçtı. Ama bir noktada araç amaç hâline geldi ve FOSS’un neden doğal olarak masrafları karşılamadığını merak eder olduk
Gidişatı doğru okuyan yer GitLab oldu. Ürünü açık kaynak usulüyle sunarken işletme giderlerini karşılayacak dengeyi buldu; hem güven hem gelir elde etti, iyi iş
Açık kaynak çalışmasıyla geçinmek istiyorsanız bunu bir iş gibi yürütmeli ve uygun ticari araçları kullanmalısınız. Aksi hâlde emeğiniz bir gün size sömürü gibi geri dönebilir. Kötü niyetten söz etmiyorum ama adalet bir denge meselesidir; çok çalışmanız sizi düzgün muamele görecek konuma getirmiyorsa bu da adaletsizliktir
Lisansa ek copyleft koşulları koymayı reddedip, sonunda şirketlerin sanki o koşullar varmış gibi iyi niyetle davranmasını beklemek anlaşılması zor bir şey
Google gibi şirketler izin verici lisansları seviyor; hatta toybox gibi yaygın bileşenlerin MIT/BSD lisanslı alternatiflerini desteklemeye kadar gidiyor
Forgejo v9 ve sonrası gerçekten GPL lisanslı gibi görünüyor
Büyük teknoloji korku hikâyesi, açık kaynak projelerinin lisansını tersine çevirmesini meşrulaştırırken işe yarıyor ama buraya uymuyor. Genelde de pek mantıklı değil; bu örnekte ise bakımcıların kendileri bile böyle bir şey söylemiş gibi görünmüyor
MongoDB, ElasticSearch, Redis gibi projeler açık kaynak oldukları için popüler oldu ve ücretsizle rekabet etmek zor olduğundan, muhtemelen yıllarca rekabeti de sınırladılar. Sonra yıllar sonra kullanıcılara sırtlarını dönmüş oldular. MongoDB 1.0 ticari bir ürün olsaydı kimse kullanmazdı; dolayısıyla kazandıkları para da en başta açık kaynak olmaları sayesinde ortaya çıktı
Forgejo’nun ilginç yanlarından biri, forge federation (federasyon) çalışmasının devam ediyor olması
https://codeberg.org/forgejo/forgejo/issues/59#issuecomment-1652830
İdeal bir dünyada GitHub ve GitLab da federasyonu desteklerdi, ama muhtemelen böyle olmayacak gibi görünüyor
Aynı problem alanındaki alternatifler arasında P2P yaklaşımını kullanan https://radicle.xyz/ gibi çözümler var
Forgejo instance’ları arasında faydalı federasyon; instance’lar arası iş birliği, fork’lar, pull request’ler gibi şeyler için OIDC ve birkaç webhook ile pekâlâ çözülebilir. Forgejo ile Mastodon arasında federasyona neden ihtiyaç olduğunu bilmiyorum; bunun ne anlama geldiği de belirsiz
Eskiden 2023’e kadar yıllık ilerleme raporları da yayımlanıyordu, ancak o web sitesine de artık erişilemiyor gibi görünüyor: https://web.archive.org/web/20240830030315/https://forgefriends.org/blog/2023/06/21/2023-06-state-forge-federation/
Yine de aylık güncellemelerde federasyondan en son ekimde bahsedilmişti; o sırada federasyonun Forgejo projesinin “en yüksek önceliği” olduğu ve olmaya devam edeceği vurgulanmıştı
https://forgejo.org/2024-10-monthly-update/#:~:text=Forgejo%20federation%20is%20and%20will%20always%20be%20the%20highest%20priority%20of%20the%20Forgejo%20project
Bir Git deposunu ağa açmak HTTP veya SSH ile çok kolay ve e-posta tabanlı kod inceleme akışlarını da destekliyor. Yine de git-appraise gibi incelemeleri deponun içinde saklayan yaklaşımı epey beğeniyorum
https://github.com/google/git-appraise
CI/CD pipeline’ları da push ile tetiklenebiliyorsa basitçe entegre edilebilir. Ama biz Git’in üzerine merkezi bir arayüz inşa etmiş durumdayız ve şimdi bu arayüzleri birbirleriyle entegre etmeye çalışıyoruz. Git’in zaten merkeziyetsiz olduğunu düşününce bu, geriye doğru gitmek gibi görünüyor
İlgili içerik: https://gitlab.com/groups/gitlab-org/-/epics/11247#why
Şu anda kendi barındırdığım Forgejo, github.com ve gitlab.com arasında mirror’lama yapıyorum; Forgejo instance’ı zorunlu altyapıdan çok kendi kendine barındırma hobimin bir parçası
GitLab Cells de aynı yöne gidebilir gibi görünüyor ve tasarım belgesinde federasyondan bahsediliyor
https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/
Birkaç yıl boyunca Gogs’tan Gitea’ya, oradan da Forgejo’ya geçtim; gerçekten harika bir yazılım.
%90 için kişisel Git depolarını bir SSH sunucusuna koymak yeterli. Chezmoi deposunu tüm bilgisayarlardan erişilebilir bir yere koymak istiyorsanız Forgejo ailesinin çok fazla ek katkısı yok.
Ama kalan %10’da, yani birkaç arkadaşla kodu özel olarak paylaşmak istediğinizde harika. Ücretsiz olması GitHub’ın ücretli planından daha iyi; zaten o %10’luk proje için çalıştıracaksanız, geri kalanını da kişisel referans Git deposu olarak kullanmak daha mantıklı.
Kanban ve kod düzenleyici de var.
Gitea’ya geçince rahat bir nefes aldık; Fedora’nın depo sunucusu olarak Forgejo’yu seçmesiyle Forgejo dikkatimi çekti.
Gereksinimlerim basit: notlar ve kaynak kodu için merkezi bir dosya deposu gibi bir şey. Gitea 1.21’den Forgejo 9’a geçişi test ettim, hiç sürtünme yaşamadım.
Ciddi şekilde taşınmayı düşünüyorum ama uzun vadede hangisinin daha iyi destekleneceği ve ücretsiz kullanım için daha uygun olacağı konusunda hâlâ kararsızım.
Açıkçası bir sonraki durağın CI/CD için Forgejo Actions(https://forgejo.org/docs/next/user/actions/) eklenmiş Forgejo olacağını ya da tamamen derin tarafa gidip Jenkins’e dönmek olacağını düşünüyorum.
Slogan pek açıklayıcı değil. Ana sayfada bir iki kez kaydırdıktan sonra amacının ne olduğunu, yani kendi barındırdığınız bir GitHub alternatifi olduğunu anlayabildim.
Yazılımda “forge” kelimesi farklı şekillerde yorumlanabilir; bunu daha başta net söylemek iyi olurdu.
Teknik olarak Redmine gibi o dönemin sistemleri de forge diye adlandırılabilirdi; sanırım terim sonrasında yerleşti.
Referans: https://en.wikipedia.org/wiki/Forge_(software)
“Forge” deyince aklıma ham maddeyi bitmiş ürüne dönüştüren bir araç geliyor. Örneğin demiri nal hâline getiren demirci atölyesi araçları gibi.
Yazılım benzetmesi yapılacaksa, metin hâlindeki kaynak kodunu çalıştırılabilir ikili dosyaya dönüştüren şey, yani derleyici veya yorumlayıcı daha uygun olur.
GitHub ve SourceForge kaynak kodunu bir yerden başka bir yere taşır. Benzetmeyi zorla uzatırsak daha çok mağaza ve teslimat hizmeti kombinasyonuna benzer. Kaynak kodu hareket eder ama dönüşmez.
Bu yüzden eski bir C/C++ geliştiricisi açısından forge’un kendi barındırılan Git sunucusu anlamına gelen bir terim olması epey tuhaf geliyor.
GitLab CE’yi çalıştırmaya devam etmeye çalışırken CPU ve bellek tüketimi yüzünden çok uğraştıktan sonra Forgejo’ya geçtim ve hayal kırıklığı yaşamadım.
Rootless container olarak çalışıyor ve neredeyse hiç bellek ve CPU kullanmıyor. Güncellemeler de tek bir
podman pullile sorunsuz oluyor.Artık Actions da çalıştırıyorum; Jekyll vb. çalıştırarak statik web sitelerini sürekli güncel tutuyorum.
GitHub, GitLab gibi diğer forge’lardan depoları ve issue’ları içe aktarabilen kendi forge’uma sahip olmak güzel; ileride gelecek ActivityPub tabanlı daha geniş Fediverse entegrasyonunu da dört gözle bekliyorum.
Merkeziyetsiz ama bağlantılı bir kod barındırma yaklaşımı hep istediğim şeydi; şimdi neredeyse oraya varmış gibi hissediyorum.
Birkaç yıl boyunca GitHub → kendi barındırdığım GitLab → Gitea → Forgejo yolunu izledim ve pişman değilim.
Forgejo harika; federasyon tamamlandığında daha da iyi olacak gibi. Birden fazla örnek arasında dağıtık fork ve pull request mümkün olursa kendi barındırılan çözümlerdeki parçalanma sorunu çözülür.
Gitea, arkasına VC fonu alan kâr amaçlı bir kol oluşturduğunda güvenimi kaybetti; Forgejo’nun fork edilmesinin nedeni de tam olarak buydu.
GitLab’dan kaybettiğim tek şey yerleşik CI/CD platformu oldu. Ama pipeline’ları Drone CI’ye taşıyıp webhook ile tetikleyebildim. Yine de GitLab pipeline’larının ne kadar karmaşık olduğuna bağlı olarak bu her zaman mümkün bir seçenek olmayabilir.
Her halükârda birkaç küçük proje için 5 GB RAM yiyen bir GitLab sunucusu barındırmak istemiyordum. Forgejo en yoğun anda bile yaklaşık 500 MB RAM kullanıyor.
Kod inceleme deneyiminin nasıl olduğunu merak ediyorum. Gitea’ya benzeyeceğini tahmin ediyorum ama ikisini de kullanmış değilim.
Yakın zamanda GitHub’da epey ciddi bir kod incelemesi yaptım; kod inceleme aracı olarak oyuncak sürüme yakın geldi. Tüm kaynak kontrol modelini o araca göre tasarlamadıkça ciddi mühendislik işleri için kullanılabilir görünmüyordu; bunu yapınca da geçmiş yönetimini etkileyen başka unsurlardan feragat ediliyor.
Çoğunlukla Gerrit’e alışığım; temel modeli makul ama çok pürüzlü tarafı var ve performans sorunları da bulunuyor.
Birden düşününce, gerçekten hoşuma giden bir inceleme aracı kullanmış değilim galiba. Sektör düzgün araçlar olmadan idare edip gidiyor olabilir mi diye düşünüyorum.
Hatırladığım kadarıyla GitLab tarafı GitHub’dan biraz daha iyiydi ama ayrıntıları hatırlamıyorum.
“Forgejo nedir?” sorusuna “Forgejo, kendi kendine barındırılabilen hafif bir yazılım forge’udur. Kurulumu kolaydır, az bakım ister ve yapması gerekeni yapar” diye cevap veren bir şey mi acaba?
Elbette her şeyin İngilizceye uyması gerekmiyor ve Esperanto olduğu söyleniyor; ama sitenin diğer bölümleri öyle olmadığından çoğu kişi bunu böyle yorumlamayacaktır.