
Gitea — это легкая и доступная система управления версиями, основанная на технологиях Git. Ее часто выбирают как альтернативу популярным платформам вроде GitHub или GitLab, особенно если важны контроль над данными, безопасность и гибкость настройки. Программа подходит как для отдельных разработчиков, так и для небольших команд, стремящихся совместно работать над проектами в изолированной среде. Однако ее возможности выходят за рамки программирования: Gitea может использоваться для версионирования заметок, хранения конфигурационных файлов, управления документацией и даже синхронизации паролей.
Главное преимущество Gitea — наличие self-hosted решения для собственного развертывания на своем сервере. Это означает, что вы можете установить систему на собственный сервер, будь то облачный инстанс или локальная машина. Такой подход обеспечивает полный контроль над данными и позволяет адаптировать платформу под конкретные задачи.
Архитектура, интеграции и особенности
Gitea строится на принципах работы Git — системы контроля версий, которая позволяет отслеживать изменения в коде, управлять ветками, объединять правки и сохранять историю изменений. Однако, в отличие от базового Git, Gitea предоставляет удобный веб-интерфейс, что делает его доступным даже для новичков.
Архитектура платформы спроектирована с акцентом на легковесность. Для запуска Gitea требуется минимум ресурсов: достаточно сервера с Linux, базы данных (например, MariaDB) и веб-сервера вроде Nginx. Это делает ее идеальным решением для малых проектов, где важна экономия бюджета на инфраструктуре.

Ключевые особенности и интеграции
- Система отслеживания задач: позволяет создавать задачи, обсуждать их в комментариях и отслеживать прогресс. Например, команда может использовать этот инструмент для управления багами или планирования улучшений продукта.
- Вики-страницы: встроенный инструмент для создания технической документации. Особенно полезен для проектов с частыми обновлениями, где важно сохранять актуальные инструкции.
- Инструменты код-ревью: упрощают проверку изменений перед их внедрением в основную ветку. Это помогает поддерживать высокое качество кода и снижает риск ошибок.
- Управление пользователями и организациями: гибкие настройки прав доступа позволяют ограничивать или расширять возможности разных участников проекта.
Несмотря на то, что Gitea сама по себе предлагает широкий набор функций, ее self-hosted природа открывает возможности для интеграции с другими сервисами. Например, можно подключить систему непрерывной интеграции и доставки (CI/CD), хотя для этого потребуется дополнительная настройка, в отличие от GitLab, где такие функции встроены «из коробки».
Self-Hosted
Развертывание Gitea на собственном сервере или локальное развертывание дает разработчикам и компаниям несколько преимуществ:
- Полный контроль над данными: ваши репозитории, документы и задачи хранятся на вашем сервере, а не в облаке стороннего провайдера.
- Высокий уровень безопасности: вы сами устанавливаете политики шифрования, доступа и резервного копирования.
- Гибкая настройка: возможность адаптировать платформу под специфические нужды, например, интеграция с внутренними инструментами компании.
- Независимость от внешних сервисов: работа системы не зависит от возможных сбоев или изменений условий использования публичных платформ.
Процесс установки Gitea включает подготовку сервера (например, Ubuntu 22.04), настройку базы данных MariaDB, загрузку исполняемого файла Gitea и конфигурацию через веб-интерфейс. Для обеспечения безопасности обычно используют Nginx в качестве обратного прокси и устанавливают SSL-сертификат с помощью Let’s Encrypt.
Установка и конфигурация
Рассмотрим процесс установки Gitea на Облачном сервере REG.RU. В качестве примера мы будем использовать Ubuntu 24.04 LTS, но стоит отметить, что процесс установки в других дистрибутивах Linux отличается не сильно.
Подготовка сервера
- Для начала необходимо авторизоваться в Личном кабинете Облаковой инфраструктуры REG.RU в разделе “Мои ресурсы” выбрать пункт “Виртуальные серверы”.
- Далее мы создаем свой облачный сервер (Нажимаем на кнопку “Создать сервер”). Перед нами откроется конфигуратор виртуальных серверов.
- В качестве примера мы будем использовать следующую конфигурацию:
- Образ ОС: Ubuntu 24.04 LTS.
- Тарифный план: Минимальные системные требования для Gitea: не менее 2 CPU, не менее 4 ГБ операционной памяти (ОЗУ), не менее 20 ГБ дискового пространства. В качестве примера мы будем использовать простую конфигурацию “Производительный” (2,8 ГГц + NVMe), что до 25% мощнее Стандартного. При большой команде и частых изменений в проекте лучше всего использовать план vCPU “Выделенный CPU” или “Высокачастотный” с 100% долей CPU. А сам тариф выбирали “HP C2-M2-D40”, где 2 ядра на процессоре, 2 ГБ ОЗУ, 40 ГБ SSD.
- Регион размещения: Москва.
- Настройки сети: включаем Плавующий (публичный) IP-адрес, чтобы можно было подключаться к нашему серверу удалённо.
- На текущем этапе мы сконфигурировали свой сервер. Стоимость такого сервера нам выходит в 2,01 руб/час. Минимальный платёж для почасовой оплаты составляет 100 рублей, что отлично подходит для тестирования разных сервисов. В Рег.ру Облако также имеется помесячная оплата, но не спешите, в конце статьи вы можете получить промокод на скидку до 40% на услугу Reg.ru для ещё более выгодного предложения при оформлении собственного сервера.
После создания облачного сервера нам необходимо подключиться к нему по SSH и выполнить обновление системы.
apt update && apt upgrade
Эта команда обновит систему до последних доступных версий пакетов.
Настройка базы данных
Перед тем как приступить к установке, необходимо подготовить базу данных, которая будет использоваться для хранения всей информации, связанной с системой управления версиями. Мы будем использовать MariaDB, популярную систему управления базами данных, известную своей производительностью и совместимостью с MySQL.
apt install mariadb-server
Эта команда установит MariaDB вместе со всеми необходимыми зависимостями.
После установки выполните скрипт mysql_secure_installation
, который поможет установить пароль для пользователя root, удалить анонимных пользователей, ограничить доступ к базе данных удаленно и удалить тестовую базу данных. Это улучшит безопасность вашего сервера баз данных:
mysql_secure_installation
Следуйте подсказкам на экране, чтобы завершить настройку.
Затем войдите в консоль MariaDB и создайте пользователя и базу данных, которые будут использоваться системой:
mysql -u root -p
После входа выполните следующие команды:
CREATE USER 'reggitea'@'%' IDENTIFIED BY 'secret_password';
Эта команда создает нового пользователя для базы данных. Здесь ‘reggitea’@’%’ указывает имя пользователя и хост, с которого он может подключаться. Символ ’%’ означает, что пользователь может подключаться с любого хоста. Часть IDENTIFIED BY ‘secret_password’ устанавливает пароль для этого пользователя. Важно выбрать надежный и безопасный пароль.
CREATE DATABASE reggiteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
Эта команда создает новую базу данных с именем reggiteadb
. Здесь также указывается, что база данных будет использовать UTF-8 для хранения символов, что подходит для текстов на любом языке.
GRANT ALL PRIVILEGES ON reggiteadb.* TO 'reggitea';
Эта команда предоставляет пользователю reggitea
все права на работу с базой данных reggiteadb
. Это включает в себя права на чтение, запись и модификацию данных, что необходимо для полноценной работы приложения.
FLUSH PRIVILEGES;
Эта команда применяет все изменения привилегий, которые были сделаны. Она обновляет привилегии, чтобы новые настройки вступили в силу немедленно, без перезагрузки или переподключения к серверу. Для выхода из mysql нажмите сочетание клавиш CTRL+D
.
Установка Gitea
Чтобы установить Gitea на ваш сервер, выполните следующие шаги, которые включают подготовку окружения, загрузку исполняемого файла и настройку автозапуска сервиса.
Скачайте последнюю стабильную версию Gitea с официального сайта:
wget -O gitea https://dl.gitea.io/gitea/1.23.8/gitea-1.23.8-linux-amd64
Список всех доступных версий можно увидеть на сайте Gitea.
Сделайте скачанный файл исполняемым:
chmod +x gitea
Убедитесь, что на вашем сервере установлен Git, так как он необходим для работы Gitea:
git --version
Создание системного пользователя: Создайте отдельного пользователя, под которым будет работать Gitea:
adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
Создайте необходимые директории для хранения данных, конфигураций и логов:
mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
Установите переменную окружения для рабочей директории и скопируйте исполняемый файл в системный каталог:
export GITEA_WORK_DIR=/var/lib/gitea/
cp gitea /usr/local/bin/gitea
Создайте сервисный файл для systemd, чтобы Gitea автоматически запускалась при старте системы (используйте vimчик, будьте тру-кодером ✊):
nano /etc/systemd/system/gitea.service
Вставьте в окне редактора следующий конфигурационный файл:
[Unit]
Description=MyGitea
After=network.target
Wants=mariadb.service
After=mariadb.service
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
Затем включите и запустите сервис:
systemctl enable gitea
systemctl start gitea
Проверьте, что сервис запущен и работает корректно:
systemctl status gitea
После того как вы запустили сервис и обратились к серверу по адресу http://<server_ip>:3000
, где встретит мастер установки и на этом этапе предстоит настроить связь с базой данных и создать аккаунт администратора.
Регулярно создавайте резервные копии данных с помощью команды gitea dump
. Это защитит вас от потери информации в случае сбоя.
После установки, для обеспечения безопасности и корректной работы на собственном домене, рекомендуется настроить веб-сервер Nginx и установить SSL-сертификат. Это позволит защитить данные и обеспечить их шифрование при передаче через интернет. Вот ссылки для ознакомления: что такое NGINX и как настроить обратный прокси, а также сервия статей что такое HTTPS и при чем тут SSL/TLS сертфиикат.
Плюсы и Минусы
- Открытый исходный код: Gitea распространяется бесплатно, а ее код можно модифицировать под свои нужды. Это обеспечивает прозрачность и возможность улучшать платформу.
- Легковесность и производительность: По сравнению с GitLab или GitHub, Gitea требует меньше ресурсов, что делает ее оптимальным выбором для небольших проектов.
- Контроль над данными: Возможность self-hosted развертывания позволяет хранить данные внутри вашей инфраструктуры, что критично для организаций с высокими требованиями к конфиденциальности.
- Многофункциональность: Платформа подходит не только для управления кодом. Например, пользователи Obsidian могут использовать Gitea для версионирования заметок, а менеджеры паролей вроде Pass — для безопасного хранения учетных данных.
- Активное сообщество и документация: Благодаря открытому сообществу разработчиков и подробной документации, процесс внедрения и решения проблем становится проще.
- Необходимость технических навыков: Настройка и обслуживание Gitea требуют знаний в области администрирования Linux, баз данных и сетевой безопасности. Например, установка Gitea включает настройку MariaDB, Nginx и SSL-сертификатов.
- Ответственность за инфраструктуру: При локальном развертывании вы несете полную ответственность за резервное копирование, обновления и защиту сервера от атак.
- Ограниченные встроенные функции: Хотя Gitea покрывает базовые потребности, некоторые продвинутые инструменты, такие как CI/CD с автоматической сборкой, требуют интеграции сторонних решений.
Сфера использования
Gitea идеально подходит для стартапов или фрилансеров, которым нужен надежный, но экономичный Git-сервер. Например, команда может использовать платформу для совместной работы над веб-приложением, отслеживания задач и управления версиями кода.
Специалисты, работающие с Linux-серверами, могут использовать Gitea для хранения конфигурационных файлов. Это позволяет отслеживать изменения, быстро восстанавливать предыдущие версии и делиться настройками между коллегами.
Даже если вы не пишете код, Gitea может быть полезной. Например, менеджеры проектов могут использовать вики-страницы для документирования этапов проекта, а авторы — версионировать текстовые документы.
- Gitea vs GitHub: GitHub предлагает больше инструментов и облачную инфраструктуру, но Gitea выигрывает в вопросах контроля данных. Если вам нужна альтернатива GitHub с возможностью self-hosted развертывания, Gitea станет лучшим выбором.
- Gitea vs GitLab: GitLab предоставляет более мощные встроенные функции CI/CD, но требует больше ресурсов. Для небольших проектов Gitea будет более экономичным и простым решением.
Заключение
Gitea — мощное, гибкое и экономичное решение для управления версиями. Несмотря на необходимость небольших технических навыков для первоначальной настройки, преимущества Gitea в виде безопасности, автономности и гибкости делают ее отличной альтернативой GitHub и GitLab. Обширная документация закрывает многие вопросы и активное сообщество, которое поможет научиться использовать Gitea в кратчайшие сроки. Если вы ищете способ минимизировать затраты на инфраструктуру и сохранить полный контроль над своими данными, Gitea станет самым лучшим выбором.