50% zniżki wszystkie plany, oferta limitowana. Od $2.48/mo
Gogi

Gogi

Gogs to bezproblemowa, hostowana samodzielnie usługa Git. Lżejszy niż Gitea i GitLab, napisany w Go, działa wygodnie na 512 MB VPS lub nawet Raspberry Pi. Oryginalny serwer Git oparty na Go, poprzednik Gitea, nadal aktywnie utrzymywany dla użytkowników, którzy preferują mniejszą powierzchnię.

Wersja

0.14.2

System operacyjny

Ubuntu Server 24.04 LTS

Min. BARAN

1 GB

Typy IP

IPV4, IPV6

Dostęp

  • Otwórz przeglądarkę i odwiedź: https://<SERVER_IP>
  • Ostrzeżenie SSL przeglądarki jest spodziewane (certyfikat self-signed)
  • Zarejestruj nowe konto
  • Pierwsze zarejestrowane konto staje się Administratorem

Wyłącz samorejestrację (opcjonalnie)

Domyślnie włączona jest samorejestracja użytkownika.

1. Edytuj plik konfiguracyjny: /etc/gogs/conf/app.ini

2. Pod [auth] sekcja, zmień: DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true

3. Uruchom ponownie Gogi:

systemctl restart gogs

Ważne pliki i katalogi

  • Katalog instalacji: /opt/gogs
  • Plik konfiguracyjny: /etc/gogs/conf/app.ini
  • Dane aplikacji: /var/lib/gogs
  • Repozytoria: /var/lib/gogs/repositories
  • Dzienniki: /var/log/gogs
  • Usługa systemowa: /etc/systemd/system/gogs.service
  • Konfiguracja Nginx: /etc/nginx/sites-available/gogs.conf
  • Certyfikaty TLS: /etc/nginx/ssl/

Użycie Gita

HTTPS (certyfikat z podpisem własnym):

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

SSH (wbudowany serwer):

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

Zarządzanie usługami

Gogi:

systemctl status gogs
systemctl restart gogs

Nginx:

systemctl status nginx
systemctl restart nginx

PostgreSQL:

systemctl status postgresql
systemctl restart postgresql

Notatki

  • Główny plik konfiguracyjny znajduje się pod adresem /etc/gogs/conf/app.ini. Po modyfikacji pliku konfiguracyjnego zrestartuj usługę za pomocą systemctl restart gogs.
  • Limit przesyłania Nginx jest zdefiniowany w /etc/nginx/sites-available/gogs.conf używając client_max_body_size. Zwiększ go dla dużych repozytoriów i uruchom ponownie Nginx.
  • W przypadku dużych wdrożeń możesz odkomentować LimitMEMLOCK=infinity I LimitNOFILE=65535 in /etc/systemd/system/gogs.service, a następnie biegnij systemctl daemon-reload i uruchom ponownie Gogs.
  • Poświadczenia bazy danych są zdefiniowane w /etc/gogs/conf/app.ini.
  • Do użytku produkcyjnego zaleca się zastąpienie certyfikatu z podpisem własnym ważnym certyfikatem Let’s Encrypt.
  • W przypadku korzystania z certyfikatu z podpisem własnym wymagane jest klonowanie HTTPS GIT_SSL_NO_VERIFY=true.

Włączanie SSL z domeną

1. Skieruj swoją domenę na IP serwera.

2. Zaktualizuj konfigurację Gogs (/etc/gogs/conf/app.ini):

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

3. Uruchom ponownie usługę Gogs, aby zastosować zmiany:

systemctl restart gogs

3. Edytuj konfigurację Nginx i zastąp oba server_name <IP>; z Twoją domeną (<your-domain>) dla bloków HTTP (port 80) i HTTPS (port 443):

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

4. Zainstaluj Certbota:

apt install -y certbot python3-certbot-nginx

5. Uruchom następującą komendę, aby wygenerować ważny certyfikat Let’s Encrypt:

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

6. Zamień ścieżki SSL w konfiguracji Nginx:

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. Uruchom ponownie Nginx, aby zastosować zmiany:

systemctl restart nginx

8. Otwórz przeglądarkę i odwiedź: https://yourdomain.com

Więcej w Narzędzia DevOps

Powiązane aplikacje.

Wdróż Gogi już teraz. Od $2,48/mies.