Установка 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 и wget.

# dnf install git wget

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

# 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.

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

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

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

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования