Kiezen voor een gratis on-prem git-server – Gitea is de winnaar!
Proberen een goede opensource git-server te kiezen
Wil je je projecten verplaatsen van open cloud git providers en overwegen om een intern git-server lokaal te self-hosten?
Kiezen van servers
Een eigen git-server draaien zou toch niet te moeilijk moeten zijn, toch?
Nu kiezen we een gratis git-server uit een zeer korte lijst van opties. Bonobo Gogs vs Gitea vs Gitlab.
Bonobo is gratis, maar alleen voor Windows en heeft geen Linux-versie.
Gitlab is functierijk en resource-intensief, dat is een handmatige ervaring. Het is een commercieel product, maar heeft ook een gratis versie .
Gogs is zeer lichtgewicht, ik heb het geprobeerd en het werkte goed, maar het mist een container register.
De vergelijking gun me Gitea in mijn ogen.
Zowel Gitea als Postgresql dockerized
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
dan
docker-compose up -d
navigeer naar http://localhost:3000/
om af te sluiten
docker-compose down
de volumes blijven bestaan
Resourcegebruik
Hiermee tonen de containers 260MB RAM en een beetje CPU.
Docker image grootte is in totaal 583MB. 422MB daarvan is de postgres:14 image. De postgres:14-alpine image neemt 239MB in beslag, kan ook werken als bronnen beperkt zijn.
PS. Na het migreren van 10+ repos naar gitea, sommige forking en clonning van de gitea container alleen gebruikt nu 420MB RAM. Je moet hierop letten.
Twee repos synchroniseren
https://docs.gitea.com/next/usage/repo-mirror
Je kunt pushen en trekken.
trekken
- Selecteer Nieuwe migratie in het menu Aanmaken… in de rechterbovenhoek.
- Selecteer de externe repository service.
- Voer de repository URL in.
- Als de repository authenticatie vereist, vul dan je authenticatiegegevens in.
- Vink het vakje Deze repository wordt een spiegel.
- Selecteer Repository migreren om de configuratie op te slaan.
De repository wordt nu periodiek gespiegeld vanaf de externe repository. Je kunt een synchronisatie dwingen door Synchroniseer nu te selecteren in de repositoryinstellingen.
Je kunt alleen pull-spiegeling instellen voor repositories die nog niet bestaan op je instantie. Zodra de repo is aangemaakt, kun je deze niet meer converteren naar een pull-spiegel.
Https configuratie
Er is meer in de ssl configuratie: https://docs.gitea.com/next/administration/https-setup
maar we proberen dit nu (gehaald van de gitea site):
Gebruik van de ingebouwde server
Voordat je HTTPS inschakelt, zorg er dan voor dat je geldige SSL/TLS-certificaten hebt. Je kunt zelf gegenereerde certificaten gebruiken voor evaluatie en testen. Voer alsjeblieft uit
gitea cert --host [HOST]
om een zelfondertekend certificaat te genereren.
Als je Apache of nginx gebruikt op de server, wordt aanbevolen om de omgekeerde proxy gids te controleren.
Om de ingebouwde HTTPS-ondersteuning van Gitea te gebruiken, moet je je app.ini-bestand aanpassen:
[server]
PROTOCOL = https
ROOT_URL = https://git.example.com:3000/
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE = key.pem
Let op dat als je certificaat is ondertekend door een derde partij certificaatautoriteit (dus niet zelfondertekend), dan moet cert.pem de certificaatketen bevatten. Het servercertificaat moet het eerste item zijn in cert.pem, gevolgd door de tussenliggers in volgorde (indien van toepassing). Het wortelcertificaat hoeft niet opgenomen te worden, omdat de verbindingende client het al moet hebben om de vertrouwensrelatie op te bouwen. Voor meer informatie over de configuratieopties, raadpleeg de Config Cheat Sheet.
Voor het veld CERT_FILE of KEY_FILE is de bestandslocatie relatief ten opzichte van de GITEA_CUSTOM omgevingsvariabele als het een relatief pad is. Het kan ook een absolute pad zijn.
Instellen van HTTP-omleiding De Gitea-server kan alleen luisteren naar één poort; om HTTP-aanvragen om te leiden naar de HTTPS-poort, moet je de HTTP-omleidingsdienst inschakelen:
[server]
REDIRECT_OTHER_PORT = true
; Poort waarop de omleidingsdienst moet luisteren
PORT_TO_REDIRECT = 3080
Als je Docker gebruikt, zorg er dan voor dat deze poort is ingesteld in je docker-compose.yml-bestand.
Gebruik van omgekeerde proxy
In dit bericht: Gitea-ssl configureer ik Apache als TLS-terminerende omgekeerde proxy.
Todo
ssh configuratie: https://docs.gitea.com/next/installation/install-with-docker
back-up en herstel testen.