50% korting alle plannen, beperkte tijd. Vanaf $2.48/mo
Gogs

Gogs

Gogs is een pijnloze, zelfgehoste Git-service. Lichter dan Gitea en GitLab, geschreven in Go, draait comfortabel op een 512 MB VPS of zelfs een Raspberry Pi. De originele op Go gebaseerde Git-server, voorloper van Gitea, wordt nog steeds actief onderhouden voor gebruikers die de voorkeur geven aan een kleiner oppervlak.

Versie

0.14.2

Besturingssysteem

Ubuntu Server 24.04 LTS

Min. RAM

1 GB

IP-types

IPV4,IPV6

Toegang

  • Open je browser en bezoek: https://<SERVER_IP>
  • Een SSL-waarschuwing in de browser is normaal (selfsigned certificaat)
  • Registreer een nieuw account
  • Het eerste geregistreerde account wordt beheerder

Zelfregistratie uitschakelen (optioneel)

Standaard is zelfregistratie van 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:

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
  • Systeemservice: /etc/systemd/system/gogs.service
  • Nginx-config: /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. Nadat u het configuratiebestand hebt gewijzigd, start u de service opnieuw met behulp van systemctl restart gogs.
  • De Nginx-uploadlimiet is gedefinieerd in /etc/nginx/sites-available/gogs.conf gebruiken client_max_body_size. Verhoog het voor grote repository's en start Nginx opnieuw.
  • Voor grote implementaties kunt u het commentaar verwijderen LimitMEMLOCK=infinity En LimitNOFILE=65535 in /etc/systemd/system/gogs.service, en dan rennen systemctl daemon-reload en start Gogs opnieuw.
  • Databasereferenties worden gedefinieerd in /etc/gogs/conf/app.ini.
  • Voor productiegebruik wordt aanbevolen om het zelfondertekende certificaat te vervangen door een geldig Let’s Encrypt-certificaat.
  • Als u een zelfondertekend certificaat gebruikt, is HTTPS-klonen vereist GIT_SSL_NO_VERIFY=true.

SSL inschakelen met een domein

1. Wijs je domein naar het server-IP.

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

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

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

systemctl restart gogs

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

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

4. Certbot installeren:

apt install -y certbot python3-certbot-nginx

5. Voer de volgende opdracht 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 SSL-paden in 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. Start Nginx opnieuw om de wijzigingen toe te passen:

systemctl restart nginx

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

Meer in DevOps-tools

Gerelateerde apps.

Implementeer nu Gogs. Vanaf $2,48/mnd.