Memilih server git on-prem gratis - Gitea adalah pemenangnya!
Mencoba memilih good opensource git server yang baik
Ingin memindahkan proyek Anda dari penyedia layanan git awan terbuka dan mempertimbangkan untuk menjalankan server git internal secara lokal?
Memilih server
Menjalankan server git sendiri seharusnya tidak terlalu sulit, bukan?
Sekarang memilih server git gratis dari daftar singkat pilihan. Bonobo Gogs vs Gitea vs Gitlab.
Bonobo memang gratis tetapi hanya untuk Windows, dan tidak memiliki versi Linux.
Gitlab sangat kaya fitur dan membutuhkan sumber daya yang besar, itu pengalaman yang harus dipegang. Ini adalah produk komersial tetapi memiliki versi gratis juga.
Gogs sangat ringan, saya pernah mencoba dan berjalan dengan baik, tetapi tidak memiliki registry kontainer.
Pembandingan menurut saya lebih menguntungkan Gitea.
Kedua Gitea dan Postgresql didockerisasi
https://docs.gitea.com/next/installation/install-with-docker
cd ~
mkdir gitea
cd gitea
docker-compose.yml:
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:latest
container_name: gitea
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=gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
kemudian
docker-compose up -d
untuk mematikan
docker-compose down
volume akan tetap ada
Penggunaan sumber daya
Menunjukkan bahwa kontainer menggunakan 260MB RAM dan sedikit CPU.
Ukuran total gambar Docker 583MB. 422MB di antaranya adalah gambar postgres:14. Gambar postgres:14-alpine mengambil 239MB, mungkin juga bekerja jika sumber daya terbatas.
PS. Setelah memigrasikan 10+ repositori ke Gitea, beberapa fork dan cloning kontainer Gitea sendirian sekarang menggunakan 420MB RAM. Perlu tetap memperhatikan hal ini.
Menyinkronkan dua repositori
https://docs.gitea.com/next/usage/repo-mirror
Bisa melakukan push dan pull.
pull
- Pilih New Migration di menu Create… di pojok kanan atas.
- Pilih layanan penyimpanan repositori jarak jauh.
- Masukkan URL repositori.
- Jika repositori memerlukan otentikasi, masukkan informasi otentikasi Anda.
- Centang kotak This repository will be a mirror.
- Pilih Migrate repository untuk menyimpan konfigurasi.
Sekarang repositori akan dicerminkan secara berkala dari repositori jarak jauh. Anda dapat memaksa sinkronisasi dengan memilih Synchronize Now di pengaturan repositori.
Hanya bisa mengatur sinkronisasi pull untuk repositori yang belum ada di instance Anda. Setelah repositori dibuat, Anda tidak bisa mengubahnya menjadi mirror pull lagi.
Konfigurasi HTTPS
Ada lebih banyak dalam konfigurasi SSL: https://docs.gitea.com/next/administration/https-setup
tapi kita mencoba ini untuk sekarang (diambil dari situs gitea):
Menggunakan server bawaan
Sebelum Anda mengaktifkan HTTPS, pastikan bahwa Anda memiliki sertifikat SSL/TLS yang valid. Anda bisa menggunakan sertifikat yang dihasilkan sendiri untuk evaluasi dan pengujian. Silakan jalankan
gitea cert --host [HOST]
untuk menghasilkan sertifikat yang ditandatangani sendiri.
Jika Anda menggunakan Apache atau nginx di server, disarankan untuk memeriksa panduan proxy terbalik.
Untuk menggunakan dukungan HTTPS bawaan Gitea, Anda harus mengubah file app.ini Anda:
[server]
PROTOCOL = https
ROOT_URL = https://git.example.com:3000/
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE = key.pem
Catat bahwa jika sertifikat Anda ditandatangani oleh otoritas sertifikat pihak ketiga (yaitu bukan sertifikat yang ditandatangani sendiri), maka cert.pem harus berisi rantai sertifikat. Sertifikat server harus menjadi entri pertama dalam cert.pem, diikuti oleh perantara dalam urutan (jika ada). Sertifikat akar tidak perlu dimasukkan karena klien yang terhubung harus sudah memiliki sertifikat tersebut untuk menetapkan hubungan kepercayaan. Untuk mempelajari lebih lanjut tentang nilai konfigurasi, silakan lihat Cheat Sheet Konfigurasi.
Untuk bidang CERT_FILE atau KEY_FILE, jalur file bersifat relatif terhadap variabel lingkungan GITEA_CUSTOM ketika jalur bersifat relatif. Ini juga bisa berupa jalur absolut.
Mengatur pengalihan HTTP Server Gitea hanya dapat mendengarkan satu port; untuk mengalihkan permintaan HTTP ke port HTTPS, Anda perlu mengaktifkan layanan pengalihan HTTP:
[server]
REDIRECT_OTHER_PORT = true
; Port yang harus didengarkan oleh layanan pengalihan
PORT_TO_REDIRECT = 3080
Jika Anda menggunakan Docker, pastikan bahwa port ini dikonfigurasi dalam file docker-compose.yml Anda.
Menggunakan proxy terbalik
Dalam posting ini: Gitea-ssl saya mengkonfigurasi Apache sebagai proxy terbalik yang mengakhiri TLS.
Todo
konfigurasi ssh: https://docs.gitea.com/next/installation/install-with-docker
uji cadangan dan pemulihan.