3 poin oleh GN⁺ 2025-12-02 | 1 komentar | Bagikan ke WhatsApp
  • Menjelaskan secara rinci proses dan hasil memindahkan proyek pribadi serta situs web dari GitHub ke Codeberg
  • Menggunakan fitur "migrate from GitHub" milik Forgejo untuk memindahkan repositori, issue, PR, wiki, dan rilis secara lengkap
  • Menjalankan pengalihan tautan dan penanganan stub repositori GitHub dengan skrip otomatis untuk menandai perpindahan secara jelas
  • Dalam migrasi CI/CD, memanfaatkan Forgejo Actions dari Codeberg dan menyusun workflow yang lebih ringan sesuai batasan lingkungan
  • Situs web dipindahkan tanpa downtime dengan memakai git-pages dan Grebedoc, dan seluruh migrasi selesai dalam satu akhir pekan

Ringkasan migrasi

  • Memindahkan situs yang di-host di GitHub Pages dan 45 repositori ke Codeberg
    • Tidak selesai hanya dengan beberapa klik, dan memerlukan beberapa tahap pekerjaan manual
    • Seluruh proses selesai selama akhir pekan dan berjalan tanpa kendala berarti
  • Tujuannya adalah menunjukkan bahwa pengembang lain juga bisa berpindah dengan mudah

Tahap 1: Memindahkan repositori

  • Codeberg berbasis Forgejo dan menyediakan fitur "migrate from GitHub"
    • Di GitHub, dapat membuat Personal Access Token (PAT) agar metadata seperti issue ikut terbawa
    • Karena rate limit API GitHub, mengimpor banyak repositori sekaligus bisa gagal
  • Issue, PR, wiki, dan rilis berpindah dengan sempurna sehingga referensi ke GitHub tidak lagi diperlukan

Tahap 2: Pengalihan tautan

  • Tautan GitHub di dalam repositori lokal diubah massal ke alamat Codeberg
    • Menggunakan perintah sed dan find untuk penggantian otomatis berbasis teks
  • URL git remote tiap repositori juga diubah ke Codeberg lalu di-push ke semua repositori

Tahap 3: Penanganan stub repositori GitHub

  • Menambahkan README pemberitahuan perpindahan ke repositori GitHub, lalu mengubah deskripsi dan tautan homepage ke Codeberg
    • Membuat skrip otomatis untuk menerapkannya ke banyak repositori sekaligus
    • Mengarsipkan repositori dengan perintah gh repo archive

Tahap 4: Memindahkan CI/CD

  • Dokumentasi CI Codeberg menekankan prinsip meminimalkan konsumsi energi
    • Karena itu, hanya proyek yang benar-benar memerlukan CI saja yang dipertahankan, seperti situs web dan build dokumentasi
  • Codeberg menyediakan dua jenis CI: Woodpecker dan Forgejo Actions
    • Dipilih Forgejo Actions, yang mirip dengan GitHub Actions
  • Perbedaan utama
    • Sebagian besar Actions tetap dapat berjalan
    • Hanya tersedia runner Linux, tanpa macOS dan Windows
    • Perangkat lunak yang terpasang lebih sedikit dan sumber daya lebih terbatas
    • Dengan lazy runners, beban bisa didistribusikan dan eksekusi menjadi lebih ramah lingkungan
  • Untuk meningkatkan performa CI, sempat memakai image Docker dengan LaTeX prainstal, tetapi kembali ke image Ubuntu bawaan karena masalah versi

Tahap 5: Hosting ulang situs web

  • Ingin memindahkan situs yang berjalan di GitHub Pages ke Codeberg Pages, tetapi fitur tersebut sedang dalam mode pemeliharaan
    • Pembaruan tertunda karena masalah kompleksitas dan performa
  • Sebagai alternatif, ditemukan dan digunakan git-pages dan Grebedoc
    • Mendukung unggah sebelum perubahan DNS, sehingga perpindahan tanpa downtime dimungkinkan
    • Mendukung redirect sisi server dan header kustom
    • Migrasi selesai sambil tetap mempertahankan tautan lama (eldred.fr/fortISSimO)
  • Codeberg berencana melakukan migrasi bertahap ke git-pages di masa mendatang
  • Kepuasan terhadap layanan ini lebih tinggi daripada GitHub Pages, sehingga ikut mendukung Patreon pengembang git-pages

Waktu yang dibutuhkan

  • Pemindahan repositori (tahap 1–3): setengah hari
  • Pemindahan CI (tahap 4): setengah hari
  • Pemindahan situs web (tahap 5): beberapa hari, termasuk membereskan utang teknis
  • Secara keseluruhan selesai dalam akhir pekan, dan lebih sederhana dari perkiraan

Setelah migrasi

  • Tidak ada masalah fungsi pada situs web, hanya branch master di GitHub yang diperkecil
    • Permalink masih tetap berfungsi
  • Penghapusan repositori GitHub masih ditunda karena tidak adanya redirect
  • Akun GitHub tetap dipertahankan untuk berkontribusi ke proyek lain
  • Pindah ke Codeberg mungkin mengurangi jumlah kontributor, tetapi beberapa pengguna sudah membuat akun Codeberg dan terus berkontribusi

Ucapan terima kasih

  • Catherine ‘whitequark’ : mengelola git-pages dan Grebedoc
  • Tim SERVFAIL network: penyedia DNS
  • Para kontributor Codeberg dan Forgejo: menyediakan fondasi untuk migrasi ini

1 komentar

 
GN⁺ 2025-12-02
Komentar Hacker News
  • Dalam kisah migrasi ini, yang menonjol bukan sisi teknisnya, melainkan bahwa ‘feature parity’ ternyata bukan hambatan yang sebenarnya
    Codeberg sudah cukup untuk alur kerja sehari-hari, tetapi tidak memiliki efek jaringan dan inersia yang telah dibangun GitHub

    • Proyek seperti Tangled.org mencoba menyelesaikan sebagian masalah ini
      Dibangun di atas protokol seperti Bluesky, agar identitas dan keterhubungan tetap terjaga di mana pun Git di-host
    • Kendala terbesar yang saya alami di Codeberg adalah lemahnya fitur pencarian issue
      Sulit menemukan kembali issue yang saya yakin pernah saya lihat. Performanya belakangan ini sudah lumayan, tetapi jika proyek Anda punya ratusan issue, sebaiknya coba migrasi uji coba dulu
    • GitHub punya dokumentasi dan contoh yang sangat banyak, jadi orang yang baru bergabung pun bisa cepat beradaptasi
      Hal seperti CI/CD tidak perlu dipahami seluruh tim; cukup satu orang yang benar-benar menguasainya
  • Codeberg adalah fork dari Gitea, dan Gitea adalah fork dari Gogs
    Kedua fork itu dimulai lebih karena alasan filosofis daripada alasan teknis, dan Joe Chen, pembuat Gogs, punya andil besar

    • Pada praktiknya, Codeberg adalah situs berbasis Forgejo
      Gitea di-fork karena satu pengembang memonopoli hak atas repositori, dan Forgejo adalah fork yang dibuat untuk merebut kembali merek dagang Gitea
    • Ini memang bercanda, tetapi ada juga yang bilang bahwa suatu hari komunitas Codeberg bisa saja terpecah karena perbedaan ideologi kecil
  • Saya penasaran apakah ada yang pernah memakai Codeberg bersama F-Droid
    Saya ingin tahu apakah rilisan bisa terdeteksi otomatis seperti di GitHub

    • Bukan F-Droid, tetapi makin banyak proyek yang menambahkan dukungan Codeberg
      Sepertinya kini sudah mencapai efek ambang (threshold effect)
  • Dalam beberapa hari terakhir saya melihat beberapa proyek meninggalkan GitHub
    Saya penasaran apakah ada kejadian atau tren tertentu

    • Penyebabnya bisa jadi masalah ketersediaan GitHub, integrasi AI yang dipaksakan oleh Microsoft, dan peningkatan fitur yang tertinggal karena fokus pindah ke Azure
    • Pengumuman migrasi Zig bisa jadi referensi yang bagus
    • GitHub tampaknya sedang mengalami fenomena trust thermocline
      Ketidakpuasan di komunitas open source tampaknya menumpuk lalu mencapai titik batas
      Kontroversi AI dan iklan Microsoft secara umum serta berakhirnya dukungan Windows 10 juga tampaknya berpengaruh
      Konsep terkait pertama kali diajukan di thread Twitter ini
    • Secara pribadi saya lelah dengan penyalahgunaan AI di GitHub
      Rasanya dulu lebih baik saat masih berbasis Rails
    • Ini terlihat seperti semacam fenomena Summer of the Shark
      Bisa jadi hanya fenomena sementara yang mendapat perhatian berlebihan dibanding kenyataannya
  • Saya penasaran apakah ada alternatif GitHub yang cocok untuk tim kecil atau pengembang individu
    Codeberg tampaknya berfokus pada FOSS sehingga kurang cocok untuk penggunaan komersial

    • Forgejo, yang menjadi basis Codeberg, bisa di-host sendiri
      GitLab fiturnya banyak tetapi perawatannya berat
      Selain itu ada berbagai forge FOSS seperti Gitea, Gogs, Phorge, dan lainnya
    • Inti GitHub bukan teknologinya, melainkan jejaring sosialnya
    • Saya lebih suka sourcehut
      Saya suka karena tidak meniru UI GitHub, dan punya antarmuka instan yang cepat seperti bekerja secara lokal
    • Jika tidak ada alasan khusus, tetap memakai GitHub adalah pilihan yang masuk akal
      Tidak perlu pindah hanya karena “tidak suka Microsoft”
    • Untuk penggunaan pribadi, saya pernah mencari hosting privat berbiaya rendah seperti Migadu, tetapi tidak menemukan yang pas
      Akhirnya saya mengunggah proyek baru ke Codeberg, dan sebagian tetap saya simpan sebagai mirror privat di GCP
      Saya juga pernah membuat thread Ask HN terkait, tetapi tidak ada tanggapan
  • Jika melihat post blog eldred.fr, alasan penulisnya masuk akal, tetapi dari sudut pandang pengguna hampir tidak ada peningkatan yang terasa
    Setelah mencoba Codeberg

    • Layar verifikasi animasi “memastikan Anda bukan bot” sering muncul
    • Tombol login GitHub disembunyikan kecil
    • UI-nya hampir sama dengan GitHub, dan README ada di bagian bawah sehingga kurang nyaman
      Contoh: https://codeberg.org/dnkl/foot
      Sepertinya akan lebih baik jika README dijadikan halaman utama
    • Pada akhirnya, strategi peniruan tanpa diferensiasi tidak terlalu menarik
    • “Verifikasi bot” itu menggunakan solusi terbuka bernama Anubis
      Pada versi berbayar, gambarnya juga bisa dikustomisasi
    • Mengikuti GitHub apa adanya adalah pilihan demi keakraban pengguna
      Jika dibuat terlalu berbeda, justru bisa memicu penolakan
      Menyembunyikan tombol login GitHub adalah keputusan yang berpusat pada komunitas, dan kalau mau bisa juga diusulkan lewat PR
    • Masalah-masalah seperti ini justru bisa menjadi sinyal yang menyingkap masalah layanan yang lebih dalam
    • Saya pindah ke Codeberg karena lelah dengan kontroversi pelatihan AI GitHub dan sentralisasi
      Tujuannya adalah mencari alternatif yang etis sambil tetap punya fitur yang sama seperti GitHub
  • Jika pemindaian AI di GitHub bukan masalah, saya penasaran apakah ada alasan nonpolitis untuk pindah

    • Memang ada penurunan ketersediaan GitHub belakangan ini, tetapi seberapa mengganggunya bergantung pada penilaian masing-masing
  • Saya penasaran apakah Codeberg menyediakan runner CI gratis
    GitHub diperkirakan menghabiskan lebih dari 100 juta dolar per tahun untuk CI

    • Menurut dokumentasi Codeberg (docs.codeberg.org/ci), kapasitasnya terbatas dan harus mendapat persetujuan setelah mengajukan permintaan
    • Secara pribadi saya memakai instance Woodpecker bersama Codeberg dan sejauh ini berjalan baik
    • Codeberg menekankan biaya energi dari CI/CD
      Namun menyebut biaya lingkungan justru bisa membuat pengguna enggan berpartisipasi
      Bagi kalangan teknis, akan lebih efektif jika didekati sebagai masalah optimasi performa
    • Menurut saya infrastruktur CI seperti inilah moat GitHub yang sebenarnya
  • Saya kecewa melihat Codeberg pernah membesar-besarkan insiden spam sebagai “kampanye kebencian sayap kanan” sambil memuji diri sendiri
    Padahal cukup mengakui kegagalan pencegahan saja, tetapi malah dibungkus dengan bingkai politik
    Tautan terkait: issue, diskusi HN, post blog

    • Sikap seperti ini terlihat sebagai pengagungan diri yang berlebihan
    • Tetapi jika itu spam yang memakai kata-kata rasis, saya rasa respons Codeberg memang layak
      Jika karena itu Anda kehilangan rasa hormat, masalahnya ada pada sudut pandang tersebut, bukan pada proyeknya
  • Saya juga pernah memindahkan repositori ke Codeberg lalu kembali lagi ke GitHub
    Saya memang tidak suka beberapa fitur GitHub, tetapi Codeberg tidak punya daya tarik kolaborasi yang sama
    Sebagai maintainer tunggal, visibilitas dan efek jaringan itu sangat penting