Wybierając darmowy lokalny serwer git - Gitea jest zwycięzcą!

Próba wyboru dobrej open source platformy git

Page content

Chcesz przenieść swoje projekty z otwartych dostawców chmurowych git i rozważać samozostawianie wewnętrznego serwera git lokalnie?

gitea-site

Wybieranie serwerów

Uruchamianie własnego serwera git nie powinno być zbyt trudne, prawda?

Więc teraz wybieranie darmowego serwera git z bardzo krótkiej listy opcji. Bonobo Gogs vs Gitea vs Gitlab.

Bonobo jest darmowy, ale tylko dla Windows, a nie ma wersji dla Linux.

Gitlab jest bogaty funkcjonalnie i wymaga dużo zasobów, to doświadczenie ręczne. Jest to produkt komercyjny, ale ma również wersję darmową.

Gogs jest bardzo lekki, spróbowałem go i działał dobrze, ale brakuje rejestru kontenerów.

Porównanie https://docs.gitea.com/next/installation/comparison w moim odczuciu korzysta z Gitea.

Obie Gitea i Postgresql w wersji docker

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

następnie

docker-compose up -d

przejdź do http://localhost:3000/

aby zatrzymać

docker-compose down

woluminy pozostaną

Użycie zasobów

Resource containers stats

Pokazuje, że kontenery zużywają 260MB RAM i trochę CPU.

Docker images stats

Razem rozmiar obrazów Docker to 583MB. 422MB z tego to obraz postgres:14. Obraz postgres:14-alpine zajmuje 239MB, może również działać, jeśli zasoby są ograniczone.

PS. Po przeniesieniu 10+ repozytoriów do Gitea, niektóre forkowanie i klonowanie kontenera Gitea samodzielnie zużywa teraz 420MB RAM. Należy na to uważać.

Synchronizacja dwóch repozytoriów

https://docs.gitea.com/next/usage/repo-mirror

Można wykonać push i pull.

pull

  • Wybierz Nowa migracja w menu Utwórz… w prawym górnym rogu.
  • Wybierz usługę zdalnego repozytorium.
  • Wprowadź adres URL repozytorium.
  • Jeśli repozytorium wymaga uwierzytelnienia, wypełnij swoje dane uwierzytelniające.
  • Zaznacz pole, że to repozytorium będzie lustrzane.
  • Wybierz Przenieś repozytorium, aby zapisać konfigurację.

Repozytorium teraz zostanie regularnie lustrzane z repozytorium zdalnego. Można wymusić synchronizację, wybierając Synchronizuj teraz w ustawieniach repozytorium.

Można ustawić tylko synchronizację pull dla repozytoriów, które jeszcze nie istnieją na Twojej instancji. Po utworzeniu repozytorium, nie można już przekształcić go w repozytorium pull.

Konfiguracja HTTPS

W konfiguracji SSL jest więcej: https://docs.gitea.com/next/administration/https-setup

ale teraz spróbujemy tego (wzięte z witryny Gitea):

Używanie wbudowanego serwera

Przed włączeniem HTTPS upewnij się, że masz ważne certyfikaty SSL/TLS. Można użyć samodzielnie wygenerowanych certyfikatów do oceny i testowania. Proszę uruchomić

gitea cert --host [HOST]

aby wygenerować certyfikat samodzielnie podpisany.

Jeśli korzystasz z Apache lub nginx na serwerze, zaleca się sprawdzenie przewodnika dotyczącego odwrotnej proxy.

Aby użyć wbudowanej obsługi HTTPS w Gitea, musisz zmienić plik app.ini:

[server]
PROTOCOL  = https
ROOT_URL  = https://git.example.com:3000/
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE  = key.pem

Uwaga: jeśli certyfikat jest podpisany przez zewnętrzną instytucję certyfikatową (czyli nie jest samodzielnie podpisany), to plik cert.pem powinien zawierać łańcuch certyfikatów. Certyfikat serwera musi być pierwszym wpisem w pliku cert.pem, a następnie po nim (jeśli istnieją) pośrednicy w kolejności. Certyfikat główny nie musi być zawarty, ponieważ klient łączący musi już go posiadać, aby ustalić relację zaufania. Aby dowiedzieć się więcej o wartościach konfiguracji, proszę sprawdzić arkusz skrótów konfiguracji.

Dla pola CERT_FILE lub KEY_FILE ścieżka pliku jest względna względem zmiennej środowiskowej GITEA_CUSTOM, jeśli jest to ścieżka względna. Może to być również ścieżka bezwzględna.

Konfiguracja przekierowania HTTP Serwer Gitea może nasłuchiwać tylko na jednym porcie; aby przekierować żądania HTTP na port HTTPS, należy włączyć usługę przekierowania HTTP:

[server]
REDIRECT_OTHER_PORT = true
; Port, na którym usługa przekierowania ma nasłuchiwać
PORT_TO_REDIRECT = 3080

Jeśli korzystasz z Docker, upewnij się, że ten port jest skonfigurowany w pliku docker-compose.yml.

Użycie odwrotnej proxy

W tym wpisie: Gitea-ssl konfiguruje Apache jako odwrotną proxy zakończoną TLS.

Do zrobienia

konfiguracja ssh: https://docs.gitea.com/next/installation/install-with-docker

test backup-restore.

Przydatne linki