Перейти к основному содержанию
Скидка 50% все планы, ограниченное время. Начиная от $2.48/mo
Gogs

Gogs

Gogs — простой self-hosted Git-сервис. Легче, чем Gitea и GitLab, написан на Go, комфортно работает на VPS с 512 МБ RAM или даже на Raspberry Pi. Оригинальный Git-сервер на Go, предшественник Gitea, до сих пор активно поддерживается для тех, кто предпочитает минимальный стек.

Кратко

47.6k

Звёзды на GitHub

56

Просмотры страниц

149

Активные установки

Лицензия MIT Версия 0.14.2 OS Ubuntu Server 24.04 LTS Min 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

Управление сервисами

Гогс:

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.
  • В производственной среде рекомендуется заменить самоподписанный сертификат на действительный сертификат 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. Выполните следующую команду для получения SSL-сертификата 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

Похожие приложения.

Развернуть Gogs прямо сейчас. От $2,48/мес.