50% korting alle abonnementen, tijdelijk aanbod. Vanaf $2.48/mo
Gogs

Gogs

Gogs is een eenvoudig zelf te hosten Git-service. Lichter dan Gitea en GitLab, geschreven in Go, draait prima op een 512 MB VPS of zelfs een Raspberry Pi. De originele Go-gebaseerde Git-server, voorganger van Gitea, nog altijd actief onderhouden voor gebruikers die de voorkeur geven aan een kleinere installatie.

Versie

0.14.2

Besturingssysteem

Ubuntu Server 24.04 LTS

Min. RAM

1 GB

IP-typen

IPV4,IPV6

Toegang

  • Open je browser en ga naar: https://<SERVER_IP>
  • Een browserwaarschuwing voor SSL is normaal (zelfondertekend certificaat)
  • Registreer een nieuw account
  • Het eerste geregistreerde account wordt Administrator

Zelfregistratie uitschakelen (optioneel)

Standaard is zelfregistratie voor gebruikers ingeschakeld.

1. Bewerk het configuratiebestand: /etc/gogs/conf/app.ini

2. Onder de [auth] sectie, wijzigen DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true

3. Start Gogs opnieuw op:

systemctl restart gogs

Belangrijke bestanden en mappen

  • Installatiemap: /opt/gogs
  • Configuratiebestand: /etc/gogs/conf/app.ini
  • Toepassingsgegevens: /var/lib/gogs
  • Opslagplaatsen: /var/lib/gogs/repositories
  • Logboeken: /var/log/gogs
  • Systemd-service: /etc/systemd/system/gogs.service
  • Nginx-configuratie: /etc/nginx/sites-available/gogs.conf
  • TLS-certificaten: /etc/nginx/ssl/

Git-gebruik

HTTPS (zelfondertekend certificaat):

GIT_SSL_NO_VERIFY=true git clone https://<SERVER_IP>/<USERNAME>/<REPOSITORY>.git

SSH (ingebouwde server):

git clone ssh://git@<SERVER_IP>:2222/<USERNAME>/<REPOSITORY>.git

Servicebeheer

Gogs:

systemctl status gogs
systemctl restart gogs

Nginx:

systemctl status nginx
systemctl restart nginx

PostgreSQL:

systemctl status postgresql
systemctl restart postgresql

Opmerkingen

  • Het hoofdconfiguratiebestand bevindt zich op /etc/gogs/conf/app.ini. Na het aanpassen van het configuratiebestand, herstart de service met systemctl restart gogs.
  • De uploadlimiet van Nginx is gedefinieerd in /etc/nginx/sites-available/gogs.conf met behulp van client_max_body_size`. Verhoog dit voor grote repositories en herstart Nginx.
  • Voor grote deployments kun je de opmerking verwijderen van LimitMEMLOCK=infinity en LimitNOFILE=65535 in /etc/systemd/system/gogs.service, voer vervolgens uit systemctl daemon-reload en herstart Gogs.
  • Databasegegevens zijn gedefinieerd in /etc/gogs/conf/app.ini.
  • Voor productiegebruik is het aanbevolen het zelfondertekende certificaat te vervangen door een geldig Let's Encrypt-certificaat.
  • Bij gebruik van een zelfondertekend certificaat vereist HTTPS-kloning GIT_SSL_NO_VERIFY=true.

SSL inschakelen met een domein

1. Wijs uw domein toe aan het server-IP.

2. Werk de Gogs-configuratie bij (/etc/gogs/conf/app.ini):

EXTERNAL_URL = https://yourdomain.com/
DOMAIN = yourdomain.com
SSH_DOMAIN = yourdomain.com

3. Herstart de Gogs-service om de wijzigingen toe te passen:

systemctl restart gogs

3. Bewerk de Nginx-configuratie en vervang beide server_name <IP>; door uw domein (<your-domain>) voor zowel het HTTP- (poort 80) als het HTTPS-blok (poort 443):

vim /etc/nginx/sites-available/gogs.conf

4. Installeer Certbot:

apt install -y certbot python3-certbot-nginx

5. Voer het volgende commando uit om een geldig Let's Encrypt-certificaat te genereren:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

6. Vervang de SSL-paden in de Nginx-configuratie:

vim /etc/nginx/sites-available/gogs.conf
# Before:
    # ssl_certificate /etc/nginx/ssl/gogs.crt;
    # ssl_certificate_key /etc/nginx/ssl/gogs.key;
# After:
    # ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

7. Herstart Nginx om de wijzigingen toe te passen:

systemctl restart nginx

8. Open je browser en ga naar: https://yourdomain.com

Meer in DevOps-tools

Gerelateerde apps.

Installeer Gogs nu. Vanaf $2.48/mnd.