Val av gratis on-prem git-server - Gitea är vinnaren!
Försöker välja en bra öppen källkod git-server
Vill du flytta dina projekt bort från öppna molnbaserade git-leverantörer och funderar på att självhosta en intern git-server lokalt?

Val av servrar
Att köra sin egen git-server borde inte vara för svårt, eller?
Nu gäller det att välja en gratis git-server från en väldigt kort lista med alternativ. Bonobo Gogs vs Gitea vs Gitlab.
Bonobo är gratis men för Windows, och har ingen Linux-version.
Gitlab är funktionell och resurskrävande, det är en hands-on upplevelse. Det är ett kommersiellt produkt men har en gratis version också.
Gogs är väldigt lättviktigt, jag har testat det och det fungerade bra, men det saknar ett container-register.
Jämförelsen gynnar Gitea i mina ögon.
Både Gitea och Postgresql i container
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
sen
docker-compose up -d
gå till http://localhost:3000/
för att stänga av
docker-compose down
volymerna kommer att finnas kvar
Resursanvändning

Visar att containrarna använder 260MB RAM och lite CPU.

Docker-images storlek totalt 583MB. Varav 422MB är postgres:14 image. postgres:14-alpine image upptar 239MB, kanske fungerar om resurserna är begränsade.
PS. Efter att ha migrerat 10+ repos till gitea, något forka och klona använder gitea-container ensam 420MB RAM nu. Man måste hålla ett öga på det.
Synkronisera två repos
https://docs.gitea.com/next/usage/repo-mirror
Kan göra push och pull.
pull
- Välj Ny migration i menyn Skapa… uppe till höger.
- Välj tjänsten för det externa repositoryt.
- Ange en repository-URL.
- Om repositoryt kräver autentisering fyll i din autentiseringsinformation.
- Kryssa i rutan Detta repository kommer att vara en spegel.
- Välj Migrera repository för att spara konfigurationen.
Repositoryt synkroniseras nu periodiskt från det externa repositoryt. Du kan tvinga en synkronisering genom att välja Synkronisera nu i repository-inställningarna.
Kan bara ställa in pull-spegling för repos som inte finns ännu på din instans. När repositoryt har skapats kan du inte längre konvertera det till en pull-spegel.
Https-konfiguration
Det finns mer i ssl-konfigurationen: https://docs.gitea.com/next/administration/https-setup
men vi testar detta för tillfället (tagen från gitea-sidan):
Använda den inbyggda servern
Innan du aktiverar HTTPS, se till att du har giltiga SSL/TLS-certifikat. Du kan använda självgenererade certifikat för utvärdering och testning. Kör gärna
gitea cert --host [HOST]
för att generera ett självsignerat certifikat.
Om du använder Apache eller nginx på servern, rekommenderas det att kontrollera guide för reverse proxy.
För att använda Giteas inbyggda HTTPS-stöd måste du ändra din app.ini-fil:
[server]
PROTOCOL = https
ROOT_URL = https://git.example.com:3000/
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE = key.pem
Observera att om ditt certifikat är signerat av en tredje parts certifikatmyndighet (dvs. inte självsignerat), då ska cert.pem innehålla certifikatkedjan. Servercertifikatet måste vara den första posten i cert.pem, följt av mellanled i ordning (om några). Rotcertifikatet behöver inte inkluderas eftersom den anslutande klienten redan måste ha det för att etablera förtroenderelationen. För att lära dig mer om konfigureringsvärdena, kolla gärna Konfigurationskortet.
För CERT_FILE eller KEY_FILE-fältet är filvägen relativ till GITEA_CUSTOM-miljövariabeln när det är en relativ väg. Det kan också vara en absolut väg.
Inställning av HTTP-omdirigering Gitea-servern kan bara lyssna på en port; för att omdirigera HTTP-förfrågningar till HTTPS-porten måste du aktivera HTTP-omdirigeringstjänsten:
[server]
REDIRECT_OTHER_PORT = true
; Port som omdirigeringstjänsten ska lyssna på
PORT_TO_REDIRECT = 3080
Om du använder Docker, se till att den här porten är konfigurerad i din docker-compose.yml-fil.
Använda reverse proxy
I den här posten: Gitea-ssl konfigurerar jag Apache som TLS-avslutande reverse proxy.
Att göra
ssh-konfiguration: https://docs.gitea.com/next/installation/install-with-docker
testa backup-restaura.