50% zniżki wszystkie plany, oferta czasowa. Od $2.48/mo
Gogs

Gogs

Gogs to łatwy w obsłudze, samodzielnie hostowany serwis Git. Lżejszy niż Gitea i GitLab, napisany w Go, działa bez problemu na VPS z 512 MB RAM, a nawet na Raspberry Pi. Oryginalny serwer Git oparty na Go, poprzednik Gitea, nadal aktywnie rozwijany dla użytkowników preferujących mniejszy zakres funkcji.

Wersja

0.14.2

System Operacyjny

Serwer Ubuntu 24.04 LTS

Min. RAM

1 GB

Typy IP

IPV4,IPV6

Dostęp

  • Otwórz przeglądarkę i przejdź pod adres: https://<SERVER_IP>
  • Ostrzeżenie przeglądarki o SSL jest oczekiwane (certyfikat z podpisem własnym)
  • Zarejestruj nowe konto
  • Pierwsze zarejestrowane konto otrzymuje uprawnienia administratora

Wyłącz samodzielną rejestrację (opcjonalnie)

Domyślnie samodzielna rejestracja użytkowników jest włączona.

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

2. W ramach [auth] sekcja, zmiana DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true

3. Uruchom ponownie Gogs:

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 systemd: /etc/systemd/system/gogs.service
  • Konfiguracja Nginx: /etc/nginx/sites-available/gogs.conf
  • Certyfikaty TLS: /etc/nginx/ssl/

Użycie Git

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

Gogs:

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ę w /etc/gogs/conf/app.ini. Po wprowadzeniu zmian w pliku konfiguracyjnym zrestartuj usługę za pomocą systemctl restart gogs.
  • Limit rozmiaru przesyłanych plików w 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 zrestartuj Nginx.
  • W przypadku dużych wdrożeń możesz odkomentować LimitMEMLOCK=infinity i LimitNOFILE=65535 in /etc/systemd/system/gogs.service, a następnie uruchom systemctl daemon-reload i uruchom ponownie Gogs.
  • Dane uwierzytelniające bazy danych są zdefiniowane w /etc/gogs/conf/app.ini.
  • W środowisku produkcyjnym zaleca się zastąpienie certyfikatu z podpisem własnym ważnym certyfikatem Let's Encrypt.
  • W przypadku używania certyfikatu z podpisem własnym klonowanie HTTPS wymaga GIT_SSL_NO_VERIFY=true.

Włączanie SSL z własną domeną

1. Wskaż domenę na adres 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>; na swoją domenę (<your-domain>) w blokach HTTP (port 80) i HTTPS (port 443):

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

4. Zainstaluj Certbot:

apt install -y certbot python3-certbot-nginx

5. Uruchom następujące polecenie, aby wygenerować ważny certyfikat Let's Encrypt:

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

6. Zastąp ś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 wejdź pod adres: https://yourdomain.com

Więcej w narzędziach DevOps

Powiązane aplikacje.

Zainstaluj Gogs już teraz. Od 2,48 USD/miesiąc.