Знижка 50% усі тарифи, обмежений час. Починаючи від $2.48/mo
Gogs

Gogs

Gogs — зручний self-hosted Git-сервіс. Легший за Gitea і GitLab, написаний на Go, без проблем працює на VPS з 512 MB RAM або навіть на Raspberry Pi. Перший Git-сервер на базі Go, попередник Gitea, досі активно підтримується для тих, хто цінує мінімалізм.

Версія

0.14.2

Операційна система

Сервер Ubuntu 24.04 LTS

Мін. RAM

1 GB

Типи IP

IPV4,IPV6

Доступ

  • Відкрийте браузер і перейдіть за адресою: https://<SERVER_IP>
  • Попередження браузера SSL очікується (самопідписний сертифікат)
  • Зареєструйте новий акаунт
  • Перший зареєстрований акаунт отримує права адміністратора

Вимкнення самостійної реєстрації (необов'язково)

За замовчуванням самостійна реєстрація користувачів увімкнена.

1. Відредагуйте файл конфігурації: /etc/gogs/conf/app.ini

2. Під [auth] розділ, змінити DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true

3. Перезавантажте Gogs:

systemctl restart gogs

Важливі файли та директорії

  • Каталог встановлення: /opt/gogs
  • Файл конфігурації: /etc/gogs/conf/app.ini
  • Дані програми: /var/lib/gogs
  • Сховища: /var/lib/gogs/repositories
  • Журнали: /var/log/gogs
  • Служба systemd: /etc/systemd/system/gogs.service
  • Конфігурація Nginx: /etc/nginx/sites-available/gogs.conf
  • Сертифікати TLS: /etc/nginx/ssl/

Використання Git

HTTPS (самопідписаний сертифікат):

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

SSH (вбудований сервер):

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

Керування послугами

Gogs:

systemctl status gogs
systemctl restart gogs

Nginx:

systemctl status nginx
systemctl restart nginx

PostgreSQL:

systemctl status postgresql
systemctl restart postgresql

Нотатки

  • Основний файл конфігурації знаходиться за шляхом /etc/gogs/conf/app.ini. Після зміни файлу конфігурації перезапустіть сервіс командою systemctl restart gogs.
  • Ліміт завантаження для Nginx задано у /etc/nginx/sites-available/gogs.conf використовуючи client_max_body_size. Збільште його для великих репозиторіїв і перезапустіть Nginx.
  • Для великих розгортань можна розкоментувати LimitMEMLOCK=infinity та LimitNOFILE=65535 in /etc/systemd/system/gogs.service, а потім запустити systemctl daemon-reload і перезапустити Gogs.
  • Облікові дані бази даних визначені в /etc/gogs/conf/app.ini.
  • Для production-середовища рекомендується замінити самопідписаний сертифікат на дійсний сертифікат Let's Encrypt.
  • Якщо використовується самопідписаний сертифікат, клонування HTTPS вимагає GIT_SSL_NO_VERIFY=true.

Увімкнення SSL з власним доменом

1. Вкажіть ваш домен на IP-адресу сервера.

2. Оновіть конфігурацію Gogs (/etc/gogs/conf/app.ini):

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

3. Перезапустіть сервіс Gogs, щоб застосувати зміни:

systemctl restart gogs

3. Відредагуйте конфігурацію Nginx і замініть обидва server_name <IP>; на ваш домен (<your-domain>) для блоків HTTP (порт 80) і HTTPS (порт 443):

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

4. Встановіть Certbot:

apt install -y certbot python3-certbot-nginx

5. Виконайте наступну команду для отримання дійсного сертифіката Let's Encrypt:

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

6. Замініть шляхи SSL у конфігурації 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. Перезапустіть Nginx, щоб застосувати зміни:

systemctl restart nginx

8. Відкрийте браузер і перейдіть за адресою: https://yourdomain.com

Більше в розділі DevOps Tools

Пов'язані програми.

Розгорніть Gogs зараз. З $2.48/міс.