Wybierając darmowy lokalny serwer git - Gitea jest zwycięzcą!
Próba wyboru dobrej open source platformy git
Chcesz przenieść swoje projekty z otwartych dostawców chmurowych git i rozważać samozostawianie wewnętrznego serwera git lokalnie?
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
Pokazuje, że kontenery zużywają 260MB RAM i trochę CPU.
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.