Pilih lapisan kolaborasi
Forgejo dan Gitea adalah contoh perangkat lunak forge ringan; Git SSH biasa bisa cukup untuk alur kerja yang lebih kecil. Sesuaikan masalah, ulasan, penyimpanan paket, dan persyaratan identitas dengan proyek. Verifikasi versi dan lisensi yang didukung saat ini.
Pisahkan build dari forge
Runner CI menjalankan kode yang dikendalikan proyek dan tidak boleh menyimpan kredensial forge atau host tanpa batasan. Isolasi runner, batasi cakupan token, dan hindari menjalankan tugas tak tepercaya pada akun istimewa yang sama dengan layanan repositori.
Lindungi akses dan pendaftaran
Nonaktifkan pendaftaran publik saat layanan bersifat privat. Gunakan akun individual, autentikasi kuat, dan kunci penerapan dengan cakupan yang cermat. Dokumentasikan port SSH dan kunci host; jangan diam-diam melatih pengguna untuk mengabaikan peringatan kunci host.
Cadangkan seluruh layanan
Repositori saja mungkin tidak mencakup masalah, akun, lampiran, dan konfigurasi. Ikuti prosedur pencadangan konsisten forge dan uji pemulihan dengan izin file dan rahasia aplikasi tetap utuh.
Daftar periksa pemulihan forge
Ekspor basis data secara konsisten dan pertahankan penyimpanan repositori, lampiran, penyimpanan file besar jika diaktifkan, konfigurasi, dan rahasia enkripsi. Verifikasi klon melalui rute SSH atau HTTPS yang dimaksud setelah pemulihan. Jaga forge dan pekerja CI mana pun tetap terisolasi agar build tidak dapat menulis ulang konfigurasi layanan itu sendiri.
Batasi hak deployment secara sempit
Kunci penerapan hanya-baca bisa cukup untuk server yang hanya menarik kode. Otomasi rilis mungkin memerlukan cakupan tambahan yang kecil. Utamakan kunci independen untuk mesin berbeda, catat tujuannya, dan hapus saat mesin dinonaktifkan.
Gunakan layanan kolaborasi terkecil yang sesuai
Untuk beberapa repositori privat, Git bare melalui SSH terbatas bisa cukup. Forgejo atau Gitea menambahkan akun, pull request, issue, dan paket opsional dengan biaya basis data, pembaruan aplikasi, dan status persisten yang lebih banyak. Catat fitur mana yang benar-benar akan digunakan tim. Anggarkan pertumbuhan repositori, objek file besar, lampiran, dan artefak build secara terpisah; komputasi CI dapat melebihi forge itu sendiri.
- Pilih nama HTTPS kanonis dan lindungi akun DNS-nya.
- Tentukan apakah pendaftaran ditutup, berbasis undangan, atau dimoderasi.
- Berikan identitas tanpa hak istimewa dan penyimpanan privat yang tahan lama kepada layanan forge.
Dokumentasi resmi: Instalasi kontainer Forgejo
Pisahkan jalur web, SSH, dan basis data
Gunakan konfigurasi upstream untuk rilis yang dipilih dan kunci versi image yang dimaksudkan. Reverse proxy TLS harus dapat menjangkau listener web internal; database hanya boleh dapat dijangkau oleh forge. Jika Git SSH menggunakan port kontainer, jaga agar host dan port eksternal yang diiklankan konsisten dengan pemetaan. Jangan mengganti atau secara tidak sengaja mengekspos listener SSH administrator host saat mengubah forge. Tutup akses instalasi/penyiapan setelah pemilik awal dibuat.
- Periksa kepemilikan volume persisten sebelum memulai aplikasi.
- Gunakan pengguna database yang dibatasi pada database forge.
- Jaga runner CI pada batas kepercayaan terpisah, terutama untuk repositori yang tidak tepercaya.
Dokumentasi resmi: Jaringan dan persistensi Docker Forgejo
Verifikasi clone, push, dan operasi yang ditolak
Buat repositori privat sekali pakai dan uji klon HTTPS atau SSH URL dari akun pengembang biasa. Commit dan push file yang tidak berbahaya, lalu verifikasi pembaca sah lainnya dapat mengambilnya. Akun yang tidak diundang harus gagal membaca repositori privat. Periksa penanganan file besar dan email notifikasi jika diaktifkan. Untuk mesin khusus penerapan, uji bahwa kunci hanya-baca dapat mengambil dan tidak dapat push; keberhasilan autentikasi saja tidak membuktikan batas izin yang dimaksud.
# Use the disposable repository URL advertised by your forge:
git clone ssh://[email protected]:2222/team/check.git
# In a clone, inspect which remote is configured:
git remote -vPulihkan diskusi sekaligus repositori
Ambil cadangan aplikasi/database yang konsisten, penyimpanan repositori, lampiran, data LFS, konfigurasi, dan rahasia enkripsi yang diperlukan. Ikuti prosedur pencadangan versi forge yang terpasang; perintah pencadangan Gitea tidak otomatis dapat dipertukarkan dengan setiap rilis Forgejo. Bangun ulang secara terisolasi dan verifikasi issue, lampiran, login, dan clone. Jika push gagal setelah pemindahan, periksa host/port SSH, pemetaan kunci, izin penyimpanan, dan URL clone yang diiklankan sebelum mengubah izin repositori secara global.
Dokumentasi resmi: Pencadangan dan pemulihan Gitea