Установка Gitea в RedOS и интеграция с IPA-доменом

Оцените статью

В рамках текущего проекта для хранения сведений о настройках серверов и рабочих станций был выбран подход IaaS. Хранение типовых конфигураций будет реализовано в Git-репозитарии (Gitea), а настройка серверов и рабочих станций будет выполняться при помощи Ansible.

Gitea: краткое описание

Gitea — это легковесная, открытая платформа для хостинга IT‑проектов и совместной разработки (аналог GitHub, GitLab), написанная на языке Go.

Ключевые особенности

  • Лицензия: MIT (полностью открытый код).
  • SelfHosted: можно развернуть на собственном сервере/VPS.
  • Минимальные требования: работает даже на слабом железе (например, на Raspberry Pi).
  • Функции:
    • управление репозиториями (Git);
    • система отслеживания задач (issues);
    • запросы на включение изменений (pull requests);
    • вики для проектов;
    • CI/CD через внешние инструменты (напрямую не встроен);
    • обзоры кода, уведомления, веб‑хуки.
  • Безопасность: поддержка SSH, HTTPS, двухфакторной аутентификации (2FA).
  • Интеграции: LDAP/Active Directory, OAuth (GitHub, Google и др.), Docker.
  • Интерфейсы: веб‑интерфейс + API (REST).

Плюсы

  • Простота установки и администрирования.
  • Малый объём памяти и CPU.
  • Активное сообщество и частые обновления.
  • Полный контроль над данными и инфраструктурой.

Минусы

  • Меньше встроенных интеграций и функций, чем у GitHub/GitLab.
  • Для продвинутого CI/CD нужны внешние решения.
  • Интерфейс проще, чем у коммерческих аналогов.

Где используется

  • Внутренние репозитории компаний.
  • Открытые проекты, где важен самохостинг.
  • Образовательные и малые команды с ограниченными ресурсами.

Итог: Gitea — хороший выбор для тех, кто хочет собственный GitHub‑подобный сервис с минимумом накладных расходов.

Установка Gitea

Официальные ресурсы:

Создаем каталог где будет находиться Gitea, загружаем приложение, распаковываем из запускаем. Так-как это бинарное Go-приложение, то особых зависимостей не требуется и наш минимальный RedOS сервер нас вполне устраивает.

Приступим.

Устанавливаем git.

# dnf install git

Скачиваем и распаковываем.

# mkdir /opt/gitea
# cd /opt/gitea
# wget https://dl.gitea.com/gitea/1.25.2/gitea-1.25.2-linux-amd64
# mv ./gitea-1.25.2-linux-amd64 ./gitea
# chmod +x ./gitea

Создаем пользователя от имени которого будет запускаться сервис.

# adduser --system --shell /bin/bash  --home /opt/gitea/ git
# chown -R git:git /opt/gitea/

Тестовый запуск.

# su git
$ ./gitea web --port 18000

Сейчас Gitea доступна по адресу сервера на порту 18000.

Web-интерфейс настройки Gitea

Настройка максимально простая и особо на ней задерживаться не будем.

  • Выбираем тип базы данных
  • Параметры подключения к базе данных
  • логин/пароль администратора
  • Сервисы
  • Настройки почты и т.п.

На первое время можно оставить как есть и в дальнейшем мы сможем все настроить в конфигурационном файле /opt/gitea/custom/conf/app.ini.

Запуск Gitea в виде SystemD сервиса

Создаем файл /usr/lib/systemd/system/gitea.service.

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
[Service]
LimitNOFILE=524288:524288
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/opt/gitea
ExecStart=/opt/gitea/gitea web --port 18000
Restart=always
Environment=USER=git HOME=/opt/gitea/ GITEA_WORK_DIR=/opt/gitea/

[Install]
WantedBy=multi-user.target

Настраиваем автозапуск сервера.

# systemctl daemon-reload
# systemctl enable gitea
# systemctl start gitea
# systemctl status gitea

Проверяем, что Gitea работает.

Панель управления Gitea

Авторизация в IPA-домене

Чтобы настроить авторизацию Gitea через IPA (Identity Provider for Active Directory / FreeIPA), нужно использовать LDAP‑аутентификацию — поскольку IPA поддерживает LDAP‑интерфейс для аутентификации пользователей.

Подготовка: данные IPA

Убедитесь, что у вас есть:

  • LDAP‑сервер IPA: ldap://ipa.example.com или ldaps://ipa.example.com (рекомендуется TLS).
  • Base DN (база поиска): например, dc=example,dc=com.
  • Bind DN (учётка для поиска пользователей): например, uid=gitea-bind,cn=users,cn=accounts,dc=example,dc=com (можно создать служебную учётную запись в IPA).
  • Пароль Bind DN.
  • Фильтр поиска пользователей: обычно (uid=%s) или (cn=%s).
  • Атрибуты пользователя: uid, mail, givenName, sn и т. п.
  • Порт LDAP: 389 (без TLS), 636 (LDAPS).
  • TLS/SSL: желательно включить (проверьте сертификат сервера IPA).

Настройка Gitea (через веб‑интерфейс)

  1. Войдите в Gitea как администратор.
  2. Перейдите в Site AdministrationAuthentication SourcesAdd Authentication Source.
  3. Выберите тип: LDAP (via LDAP/LDAPS).

Основные параметры

  • Authentication Name: например, «IPA LDAP».
  • Server Host: ipa.example.com (или IP).
  • Port: 636 (для LDAPS) или 389 (для LDAP).
  • Enable TLS: отметьте, если используете LDAPS (порт 636).
  • Bind DN: uid=gitea-bind,cn=users,cn=accounts,dc=example,dc=com.
  • Bind Password: пароль служебной учётной записи.
  • User Base: cn=users,cn=accounts,dc=example,dc=com (где искать пользователей).
  • User Filter: (uid=%s) (подставляет введённое имя пользователя).
  • Attribute Username: uid.
  • Attribute Name: givenName (или cn).
  • Attribute Surname: sn.
  • Attribute Email: mail.
  • Admin Group: (опционально) DN группы администраторов, например cn=gitea-admins,cn=groups,cn=accounts,dc=example,dc=com.
  • Allowed Domains: (опционально) список доменов, например example.com.

Дополнительные настройки

  • Skip Local 2FA: обычно false.
  • Allow DN: (опционально) фильтр для разрешённых DN.
  • TLS Config: если нужны особые настройки TLS (например, игнорирование ошибок сертификата — не рекомендуется в продакшене).

Проверка входа

  1. Выйдите из Gitea.
  2. Попробуйте войти с учётной записью IPA (например, username@example.com или просто username).
  3. Если вход удался — интеграция работает.

Дополнительные рекомендации

  • LDAPS (порт 636): всегда предпочтительнее, чем LDAP (порт 389). Убедитесь, что сертификат IPA доверен на сервере Gitea.
  • Служебная учётная запись: создайте в IPA отдельную учётную запись (например, gitea-bind) с минимальными правами — только на чтение пользователей и групп.
  • Группы и роли: если нужно назначать роли в Gitea по группам IPA, используйте поле Admin Group или настройте Group Sync (в некоторых версиях Gitea).
  • Логи: если возникают проблемы, проверьте логи Gitea (gitea.log) и сервер IPA.

Пример конфигурации (в файле app.ini)

Если вы предпочитаете редактировать app.ini вручную:

[auth.ldap]
ENABLED = true
NAME = IPA LDAP
HOST = ipa.example.com
PORT = 636
USE_TLS = true
BIND_DN = uid=gitea-bind,cn=users,cn=accounts,dc=example,dc=com
BIND_PASSWORD = your_password
USER_BASE = cn=users,cn=accounts,dc=example,dc=com
USER_FILTER = (uid=%s)
ATTRIBUTE_USERNAME = uid
ATTRIBUTE_NAME = givenName
ATTRIBUTE_SURNAME = sn
ATTRIBUTE_EMAIL = mail
ADMIN_GROUP = cn=gitea-admins,cn=groups,cn=accounts,dc=example,dc=com

Устранение неполадок

  • Ошибка подключения: проверьте доступность сервера IPA и порт (например, telnet ipa.example.com 636).
  • Ошибка аутентификации: проверьте Bind DN и пароль.
  • Пользователь не найден: проверьте User Base и User Filter.
  • Проблемы с TLS: убедитесь, что сертификат IPA доверен на сервере Gitea.

Related Posts

Создание бесплатной виртуальной машины в облаке Cloud.ru

Cloud.ru Evolution — облачная платформа российской компании Cloud.ru, предназначенная для развёртывания и управления ИТ‑инфраструктурой в облаке. Ориентирована на бизнес (от малого до крупного), госсектор и разработчиков. Одной из особенностей Cloud.ru…

Выборочный обход блокировок при помощи Mikrotik+ServerSpace

Так как ситуация с блокировками web-ресурсов становится все хуже, причем и как со стороны РФ (я и без соцсетей проживу зарубежных), но блокировка уже давно и во всю идет со…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You Missed

Создание бесплатной виртуальной машины в облаке Cloud.ru

Создание бесплатной виртуальной машины в облаке Cloud.ru

Выборочный обход блокировок при помощи Mikrotik+ServerSpace

Выборочный обход блокировок при помощи Mikrotik+ServerSpace

Настройка доверия между Red OS IPA доменом и Microsoft Active Directory

Настройка доверия между Red OS IPA доменом и Microsoft Active Directory

Корпоративная инфраструктура на базе RedOS

Корпоративная инфраструктура на базе RedOS

Установка Docker и Docker Compose в RedOS 8

Установка Docker и Docker Compose в RedOS 8

Генерация ключа и сертификата для сайта с помощью удостоверяющего центра (УЦ RedOS)

Генерация ключа и сертификата для сайта с помощью удостоверяющего центра (УЦ RedOS)