Memilih server git on-prem gratis - Gitea adalah pemenangnya!

Mencoba memilih good opensource git server yang baik

Konten Halaman

Ingin memindahkan proyek Anda dari penyedia layanan git awan terbuka dan mempertimbangkan untuk menjalankan server git internal secara lokal?

gitea-site

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

buka http://localhost:3000/

untuk mematikan

docker-compose down

volume akan tetap ada

Penggunaan sumber daya

Resource containers stats

Menunjukkan bahwa kontainer menggunakan 260MB RAM dan sedikit CPU.

Docker images stats

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.

Tautan yang berguna