Product SiteDocumentation Site

Глава 13. Forgejo (хостинг Git)

13.1. Установка и первоначальная настройка
13.1.1. Установка пакетов
13.1.2. Подготовка базы данных
13.1.3. Первоначальная настройка через веб-интерфейс
13.2. Базовое использование
13.2.1. Подключение по SSH
13.2.2. Создание организации
13.2.3. Создание репозитория
13.2.4. Создание зеркала репозитория
13.3. Основные команды Forgejo
13.4. Настройка Forgejo Runner
13.4.1. Получение токена регистрации
13.4.2. Регистрация Runner
13.4.3. Запуск Runner
13.4.4. Метки Runner
13.4.5. Автоматическая (offline) регистрация Runner
13.5. Администрирование и обслуживание
13.5.1. Интеграция Forgejo с AD
Forgejo — это лёгковесная система контроля версий и совместной разработки программного обеспечения с открытым исходным кодом. Это самостоятельно размещаемый (self-hosted) сервис для хостинга репозиториев Git.
Forgejo ориентирован на работу с минимальным потреблением ресурсов, может использоваться как на небольших серверах, так и в крупных инфраструктурах. Система предоставляет веб-интерфейс для управления репозиториями, пользователями и организациями, а также поддерживает встроенный механизм CI/CD Forgejo Actions, совместимый с рабочими процессами GitHub Actions.
Forgejo состоит из двух основных компонентов:
  • Forgejo Server — основной сервис, предоставляющий веб-интерфейс, Git-хостинг, управление пользователями, репозиториями и настройками;
  • Forgejo Runner — исполнитель задач CI/CD, который запускает рабочие процессы Forgejo Actions.

13.1. Установка и первоначальная настройка

13.1.1. Установка пакетов

Установка пакета:
# apt-get install forgejo
После установки создаются:
  • системный пользователь forgejo, от имени которого работает сервер;
  • каталог конфигурации /etc/forgejo/;
  • каталог данных /var/lib/forgejo/;
  • systemd-юнит: forgejo.service.
Основной файл конфигурации /etc/forgejo/app.ini.
Включить и запустить службу:
# systemctl enable --now forgejo
Проверить состояние службы:
# systemctl status forgejo

13.1.2. Подготовка базы данных

Forgejo требует использования базы данных для хранения информации о пользователях, репозиториях и настройках.
Поддерживаются следующие СУБД:
  • PostgreSQL — рекомендуется для крупных и производственных установок;
  • MariaDB — рекомендуется для производственных установок;
  • SQLite — используется по умолчанию и подходит для небольших инсталляций.
Перед использованием PostgreSQL или MariaDB необходимо установить соответствующую СУБД и создать базу данных и пользователя для Forgejo.
При использовании SQLite дополнительные настройки не требуются. База данных будет создана автоматически в каталоге /var/lib/forgejo/data/.

Примечание

Создание базы данных PostgreSQL:
  1. Установить сервер PostgreSQL (из репозитория p11):
    # apt-get install postgresql17-server
  2. Инициализировать кластер базы данных:
    # /etc/init.d/postgresql initdb
    При выполнении команды необходимо задать пароль суперпользователя PostgreSQL:
    Введите новый пароль суперпользователя:
    Повторите его:
    
  3. Включить и запустить службу:
    # systemctl enable --now postgresql
  4. Создать пользователя forgejo:
    # su - postgres -s /bin/sh -c 'createuser --no-superuser --no-createdb --no-createrole --encrypted --pwprompt forgejo'
    
    Указать пароль для пользователя forgejo:
    Введите пароль для новой роли:
    Повторите его:
    Пароль:
    
  5. Создать базу данных forgejo:
    # su - postgres -s /bin/sh -c 'createdb -O forgejo forgejo'
    
В результате будет создана база данных forgejo, владельцем которой является пользователь forgejo.
Создание базы данных MariaDB (из репозитория p11):
  1. Установить сервер MariaDB:
    # apt-get install mariadb-server
  2. Включить и запустить службу:
    # systemctl enable --now mariadb.service
  3. Выполнить базовую настройку безопасности MariaDB:
    # mysql_secure_installation
  4. Подключиться к серверу MariaDB:
    $ mariadb -u root -p
  5. Создать базу данных forgejo и пользователя forgejo:
    MariaDB> CREATE DATABASE forgejo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
    MariaDB> CREATE USER 'forgejo'@'localhost' IDENTIFIED BY '<пароль>';
    
    MariaDB> GRANT ALL PRIVILEGES ON forgejo.* TO 'forgejo'@'localhost';
    
    MariaDB> FLUSH PRIVILEGES;
    
    MariaDB> exit;
    

13.1.3. Первоначальная настройка через веб-интерфейс

По умолчанию веб-интерфейс Forgejo доступен на порту 3000.
Необходимо открыть в браузере: http://<IP-сервера>:3000.
При первом подключении запускается мастер первоначальной настройки:
Forgejo. Начальная настройка
На странице первоначальной настройки необходимо указать параметры:
  • Тип базы данных — выбрать используемую СУБД;
  • Сервер базы данных — адрес и порт СУБД;
  • Имя пользователя базы данных;
  • Пароль базы данных;
  • Имя базы данных;
  • Домен сервера — имя хоста или IP-адрес сервера Forgejo;
  • Базовый URL — внешний адрес веб-интерфейса Forgejo. Используется для формирования ссылок, включая URL клонирования репозиториев;
  • Порт SSH-сервера — порт SSH-сервиса Git (по умолчанию 22);
  • Порт HTTP-сервера — порт веб-интерфейса Forgejo (по умолчанию 3000);
  • Отключить самостоятельную регистрацию — при включении новые пользователи не смогут создавать учетные записи самостоятельно.
Forgejo. Секция настройки администратора
В секции Учетная запись администратора необходимо создать первую учетную запись. Она автоматически получает права администратора.
После заполнения параметров следует нажать кнопку Установить Forgejo.
Просмотреть текущую конфигурацию можно в разделе: Панель управленияКонфигурацияСводка.