- Gitea er et letvægtsalternativ til GitLab og GitHub, der bruger meget få systemressourcer.
- Installationen er baseret på en eksekverbar binærfil, der administreres som en tjeneste via SystemD.
- Det er vigtigt at bruge en reverse proxy med Nginx for at muliggøre sikker adgang via HTTPS.
- Det tillader migrering af eksisterende lagre fra andre platforme, samtidig med at problemer og tags bevares.

Hvis du er træt af at stole på reglerne, omkostningerne eller tilgængeligheden af giganter som GitHub eller GitLab, er det den rigtige løsning at bygge din egen infrastruktur. At have en Git-server derhjemme eller på dit eget kontor giver dig nøglerne til kongeriget: absolut kontrol over koden , total adgangsstyring og ro i sindet ved ikke at have tredjepartsbegrænsninger på dine private repositories.
Blandt alle de tilgængelige muligheder skiller Gitea sig ud som en perle. Det er et værktøj skrevet i Go, hvilket gør det utrolig let og hurtigt – ideelt for dem, der ikke ønsker at dedikere 16 GB RAM til en Git-server. I modsætning til GitLab, som er et funktionsrigt, men ressourcekrævende oceandamper, er Gitea som en speedbåd: det går direkte til sagen, bruger meget få ressourcer og tilbyder en meget velkendt brugerflade for alle, der har brugt GitHub.
Hurtig sammenligning: Gitea, GitLab og Forgejo

Før du dykker ned i installationen, er det værd at vide, hvad du går ind til. GitLab er den essentielle virksomhedsløsning, ideel til store teams, der har brug for integreret CI/CD, men som kræver kraftig hardware. Gitea er derimod det bedste valg til beskedne servere eller personlige projekter på grund af dets meget lille hukommelsesfodaftryk. Endelig er der Forgejo, en community fork af Gitea; hvis du er en purist af fri software og foretrækker åben styring uden virksomhedsmæssige overtoner, er dette alternativet for dig.
Hvad du skal bruge, før du starter

For at sikre at alt kører problemfrit, skal du sørge for at have en Linux-server (enten Ubuntu, Debian eller Rocky Linux) med root-adgang. Det er også vigtigt at have Git installeret på maskinen, og selvom Gitea tillader brugen af SQLite, anbefales PostgreSQL eller MariaDB kraftigt til produktionsmiljøer for at garantere datastabilitet.
Forberedelse af jorden i systemet

Af sikkerhedsmæssige årsager er det ikke en god idé at køre Gitea som root. Det er bedst at oprette en dedikeret bruger. Du kan gøre dette ved at køre kommandoen adduser --system --shell /bin/bash --group --home /home/gitea giteaDet er vigtigt at bruge /bin/bash som shell fordi Gitea skal interagere med git-shell via SSH. Hvis du ikke allerede har Git installeret, er en simpel apt install git vil løse problemet hurtigt.
Binær installation og mappestruktur

Gitea kan installeres på flere måder, men den binære fil er den mest ligetil. Du bør finde den seneste stabile version på dens officielle hjemmeside og downloade den ved hjælp af [method/method]. wget en /usr/local/bin/giteagiver det senere udfør tilladelser med chmod +xFor at programmet kan fungere korrekt, skal der oprettes en række specifikke mapper: /etc/gitea til konfiguration og /var/lib/gitea for brugerdefinerede data, logfiler og filer. Glem ikke at justere ejendomstilladelser (chown) så brugeren gitea kan skrive til dem.
Databasekonfiguration
Hvis du vælger PostgreSQL, skal du installere pakken og oprette en specifik rolle med en stærk adgangskode, udover databasen. giteadb med UTF8-kodning. Hvis du foretrækker MariaDB, er processen den samme: du opretter databasen og brugeren og sørger for, at Lagringsmotoren er InnoDB og at serveren lytter på port 3306.
Automatisering med SystemD
For at undgå at skulle starte Gitea manuelt hver gang du genstarter serveren, er det bedst at oprette en drevfil i /etc/systemd/system/gitea.serviceDenne fil fortæller systemet, at Gitea skal køres som en tjenestedefinerer bruger-, gruppe- og binærstien. Når den er oprettet, skal du blot køre systemctl enable --now gitea og serveren vil som standard begynde at lytte på port 3000.
Den første kontakt med webgrænsefladen
Ved indtastning http://tu-ip:3000Du vil derefter støde på opsætningsguiden. Det er her, du forbinder databasen (angiver vært, brugernavn og adgangskode) og definerer generelle webstedsindstillinger, såsom instansnavnet og basis-URL'en. Det er også tid til at konfigurere SSH-serveren og beslutte, om du vil have, at alle skal kunne registrere sig, eller om du foretrækker... deaktiver offentlig logføring for at holde serveren privat.
Sikkerhed og professionel adgang med Nginx
Adgang til Gitea via port 3000 er ineffektiv og usikker. Den ideelle løsning er at opsætte en reverse proxy med Nginx . Dette giver brugerne adgang til webstedet via et domæne (f.eks. git.ditdomæne.com) og sikrer, at al trafik er krypteret ved hjælp af Let's Encrypt SSL-certifikater . I Nginx-konfigurationen skal du blot omdirigere trafik fra port 443 til Giteas port 3000 og tilføje X-Forwarded-For-headerne for at undgå at miste klientens rigtige IP-adresse.
Brugeradministration og kodemigrering
Hvis du har deaktiveret åben logføring, kan du oprette den første administrator ved hjælp af kommandolinjen med kommandoen gitea admin user createNår du er inde, kan du tilføje dine offentlige SSH-nøgler i brugerprofilen for at klone arkiver uden at indtaste adgangskoden hver gang. Hvis du allerede har kode på GitHub, har Gitea en integreret migreringsværktøj Den importerer automatisk ikke kun koden, men også problemerne og tagsene.
Vedligeholdelse og tuning
Det er utrolig nemt at vedligeholde Gitea. For at opdatere skal du blot downloade den nye binære fil, erstatte den gamle og genstarte tjenesten. For sikkerhedskopier skal du bruge kommandoen gitea dump Det er din bedste ven, fordi den genererer en komprimeret fil med altDatabase, konfiguration og arkiver. For e-mail kan du konfigurere en ekstern SMTP-server (f.eks. Gmail) eller installere Postfix på serveren for at modtage meddelelser om pull-anmodninger og alarmer.
Implementering af Gitea giver dig en robust, let og fuldt privat versionskontrolplatform, der eliminerer afhængigheden af eksterne tjenester gennem en binærbaseret installation, en optimeret database og en reverse proxy, der garanterer trafiksikkerhed via HTTPS.