Codr

Forge git swa-hos · Dibina di Malaysia

Kod anda, di mesin anda.

Codr menyimpan repo git di pelayan anda sendiri, lengkap dengan SSH, HTTPS, isu, pull request dan CI. Satu binari, satu folder data, antara muka dalam Bahasa Melayu dan Inggeris.

Klon contoh git clone https://git.codr.my/aiman/contoh.git

AGPL-3.0-or-later · Go · SQLite · git

Dari depan, huruf C. Tatal dan ia berpusing menjadi sejarah: cawangan keluar dan bergabung semula, dan setiap denyut ialah satu tolakan yang tiba.

Diukur pada pelayan ini, sekarang

Satu binari Go. Tiada apa lagi untuk dipasang.
22MB
Repo yang dilayan git.codr.my.
138
Memori yang digunakan seluruh pelayan.
26MB
Servis lain: tiada Postgres, Redis atau baris gilir.
0

Antara muka yang memberi ruang kepada kod

Tangkapan skrin di bawah ialah Codr sebenar, bukan lakaran. Satu dakwat, satu kertas, satu warna aksen, dalam tema cerah dan gelap.

git.codr.my/aiman/contoh/pr/2

Halaman pull request Codr: perbincangan, semakan dan kotak gabung Halaman pull request Codr: perbincangan, semakan dan kotak gabung
Pull request dengan semakan dan gabungan yang menyemak konflik dahulu.

git.codr.my/aiman/contoh/blob/main/src/cuti.go

Halaman fail Codr: kod Go dengan sorotan sintaks dan nombor baris Halaman fail Codr: kod Go dengan sorotan sintaks dan nombor baris
Fail dengan sorotan sintaks, jejak baris dan sejarah.

Peraturan dijaga di pelayan

Cawangan dilindungi, had saiz tolakan dan repo cermin baca sahaja disemak sebelum git menulis apa-apa, sama ada anda tolak melalui SSH atau HTTPS. Mesej di bawah ialah ayat sebenar Codr.

Satu tempat untuk peraturan
Kedua-dua pintu memanggil semakan yang sama, jadi tiada jalan belakang.
Ayat dalam bahasa anda
Penolakan dijelaskan dalam Bahasa Melayu atau Inggeris, ikut tetapan pengguna.
Terminal pembangun
git push origin main
Enumerating objects: 7, done.
Writing objects: 100% (4/4), 412 bytes | 412.00 KiB/s, done.
To git.codr.my:aiman/contoh.git
   7280938..c41e0a2  main -> main
git push --force origin main
remote: Codr: cawangan main dilindungi pada aiman/contoh. Tolakan paksa (bukan fast-forward) ditolak.
 ! [remote rejected] main -> main (pre-receive hook declined)

Apa yang sudah berjalan

Setiap baris di bawah sedang berjalan di git.codr.my hari ini.

  1. Klon dan tolak melalui SSH atau HTTPS

    Kunci SSH dan token untuk setiap pengguna. Cawangan dilindungi menolak tolak paksa, dan had saiz tolakan ialah satu tetapan.

  2. Isu dan pull request

    Label, komen dan semakan. Gabungan menyemak konflik dahulu dan tidak menimpa tolakan yang tiba pada masa yang sama.

  3. Cermin dari GitHub atau mana-mana URL

    Repo disegarkan mengikut jadual. Token sumber disulitkan dalam pangkalan data dan tidak pernah muncul dalam log.

  4. Backup yang dipulihkan setiap malam

    codr backup mengambil snapshot yang konsisten. Di pelayan ini snapshot itu dipulihkan semula setiap malam sebagai latihan.

  5. Membaca kod dengan selesa

    Pokok fail, sorotan sintaks, sejarah, jejak baris, carian dalam repo dan README lengkap dengan imej.

  6. Satu perintah untuk menyemak

    codr doctor menyemak config, pangkalan data, git, hook, kunci dan ruang cakera. Satu baris untuk setiap semakan.

Repo anda kekal repo git biasa

Codr tidak menukar repo anda kepada format sendiri. Setiap repo ialah bare repo git di dalam folder data. Kalau pelayan berhenti, anda masih boleh klon terus dari cakera.

Satu folder untuk dibackup
Pangkalan data SQLite dan repo duduk bersama. Salin folder itu, atau guna codr backup untuk snapshot ketika pelayan berjalan.
Tiada perkhidmatan lain
Tiada Postgres, Redis atau baris gilir untuk dijaga. Pelayan SSH, HTTPS dan penjadual cermin berada dalam proses yang sama.
Folder data di pelayan
ls data
codr.db  hooks  repos  ssh
git clone data/repos/12.git projek
Cloning into 'projek'...

Dibina selepas pelancaran

Setiap item bermula di senarai ini sebagai pelan. Kini semuanya berjalan dalam versi di pelayan ini.

  1. Hidup

    Kerja harian yang lengkap

    Penerima isu dan PR, fixes #12 menutup isu, gabung squash atau rebase, dan log aktiviti anda sendiri.

  2. Hidup

    CI di pelayan anda

    Setiap tolakan menjalankan kerja dalam .codr/ci.toml di kontena tanpa rangkaian. Hasilnya muncul pada commit dan PR, dan cawangan dilindungi boleh menunggu semuanya lulus.

  3. Hidup

    Webhook bertandatangan

    Setiap tolakan, isu, komen, semakan dan status dihantar ke URL anda sendiri, ditandatangani HMAC, dicuba semula dengan jarak, dan tidak pernah ke alamat persendirian kecuali anda membenarkannya.

  4. Hidup

    Pemberitahuan dan emel

    Loceng dan emel pilihan untuk benang yang anda buka, sertai, disebut atau ikuti, dan tidak pernah tentang repo yang anda tidak boleh baca.

  5. Hidup

    Log masuk dua langkah

    TOTP dengan mana-mana aplikasi pengesah, kod pemulihan sekali guna, dan senarai pelayar yang log masuk yang boleh anda tamatkan.

  6. Hidup

    API REST dengan OpenAPI

    Token yang sama seperti git, dihadkan skopnya, dengan status commit untuk pelari CI anda dan huraian yang boleh dibaca mesin.

  7. Hidup

    Git LFS

    Fail besar melalui HTTPS dan SSH, disemak hash semasa dimuat naik dan dibawa dalam fork, backup dan pemulihan.

  8. Hidup

    Wiki dalam git

    Halaman Markdown di sebelah kod, setiap perubahan satu commit, dua penyunting tidak pernah saling menindih, dan seluruh wiki sejauh satu git clone.

  9. Hidup

    Organisasi dan pasukan

    Pemilik bersama, kebenaran pasukan dan fork antara orang.

  10. Hidup

    Backup ke awan anda sendiri

    Salinan bersulit setiap repo dan pangkalan data dalam baldi S3, R2 atau B2 anda, dengan kunci yang hanya anda pegang, disemak dengan ujian pulih selepas setiap larian.

  11. Hidup

    Pembantu AI mengikut syarat anda

    Ringkasan pull request dan nota semakan dalam Bahasa Melayu atau Inggeris, dari endpoint model yang anda pilih. Mati sehingga anda menghidupkannya, repo demi repo.

  12. Hidup

    Bawa semuanya dari GitHub

    Isu, pull request dan perbincangannya, bukan kod sahaja, supaya meninggalkan GitHub tidak bermakna meninggalkan sejarah anda.

  13. Hidup

    Laporan data yang boleh diserahkan

    Siapa boleh baca apa, di mana data disimpan, setiap tindakan dalam jejak audit, dan eksport data peribadi untuk setiap pengguna.

Sesuai untuk siapa

Sesuai

  • Pembangun solo yang mahu kod di mesin sendiri.
  • Pasukan kecil yang perlukan semakan kod, CI dan organisasi bersama tanpa langganan.
  • Sesiapa yang mahu membaca dan memahami forge yang mereka jalankan.

Belum sesuai

  • Organisasi besar dengan ribuan pengguna dan audit pematuhan.
  • Pasukan yang perlukan registri pakej atau imej kontena di sebelah kod.
  • Sesiapa yang mencari perkhidmatan dihoskan. Codr berjalan di pelayan yang anda jaga sendiri.

Pasang di pelayan anda

Perlukan Linux (amd64 atau arm64) dan git 2.40 atau lebih baharu. Muat turun binari keluaran, atau bina dengan Go 1.27. Pelayan SSH dan HTTPS bermula dengan satu perintah.

  1. Muat turun binaricurl -fLO https://github.com/sasateguh/codr/releases/latest/download/codr-linux-amd64 && sudo install codr-linux-amd64 /usr/local/bin/codr
  2. Sediakan foldercodr init --dir /srv/codr
  3. Cipta pentadbircodr admin user add nama --admin
  4. Jalankancodr serve

Lesen AGPL-3.0-or-later. Kalau anda mengubah kod pelayan, kongsikan perubahan itu dengan pengguna pelayan anda. Kod sumber

Soalan

Sebelum anda memasang

Adakah Codr alternatif kepada Gitea atau Forgejo?
Ya, untuk seorang atau pasukan kecil yang mahu forge yang boleh dibaca dari awal hingga akhir. Gitea dan Forgejo buat lebih banyak: registri pakej, CI serasi Actions, kerja federasi dalam Forgejo dan komuniti besar. Codr lebih kecil: satu binari Go, satu fail SQLite, repo git bare biasa, antara muka Inggeris dan Melayu, dan kerja CI yang berjalan tanpa rangkaian secara lalai. Kalau anda perlukan pakej atau ekosistem plugin, pilih Gitea atau Forgejo.
Adakah Codr perlukan Postgres, Redis atau baris gilir?
Tidak. Codr menyimpan datanya dalam satu fail SQLite bersebelahan repo git bare biasa. Salin folder data, atau jalankan codr backup semasa ia berjalan untuk snapshot yang konsisten.
Apakah lesen Codr?
AGPL-3.0-or-later. Anda boleh guna, ubah dan hos, termasuk di tempat kerja. Kalau anda mengubah pelayan dan membenarkan orang lain menggunakannya melalui rangkaian, kongsikan perubahan anda dengan mereka di bawah lesen yang sama.
Apa yang saya perlukan untuk menjalankannya?
Linux amd64 atau arm64 dan git 2.40 atau lebih baharu. Muat turun binari keluaran dan semak dengan SHA256SUMS, kemudian jalankan codr init dan codr serve. Membina dari sumber perlukan Go 1.27. Docker hanya perlu untuk CI.
Bolehkah saya pindahkan repo dari GitHub?
Boleh. Codr mencermin repo GitHub dan mengimport isu serta pull requestnya dengan nombor asal, jadi pautan seperti #12 terus berfungsi.
Siapa yang membina Codr?
Aiman Malib di Sasa Teguh, Malaysia. Codr memegang kod pengarangnya sendiri sejak Oktober 2026.

Sumber terbuka, AGPL-3.0-or-later

Lihat sendiri

Repo contoh di forge pemilik boleh dibaca tanpa akaun: fail, sejarah, isu dan pull request.