Gitea — это лёгкая и доступная система управления версиями на основе Git, созданная для удобства и эффективности работы как индивидуальных пользователей, так и команд. Эта платформа распространяется с открытым исходным кодом, что делает её свободно доступной для использования и модификации. Основное преимущество Gitea заключается в том, что она может быть развернута на собственном сервере пользователя, что обеспечивает полный контроль над данными и конфигурацией.
Gitea предлагает все основные функции Git, такие как ветвление, слияние и тегирование, а также дополнительные удобства для управления проектами, включая систему отслеживания задач, вики-страницы и инструменты для код-ревью. Это делает её идеальным решением для команд разработчиков, которые хотят совместно работать над проектами в изолированной и безопасной среде.
По мере того как всё больше организаций и частных лиц признают важность цифровой безопасности и автономности, Gitea выделяется как надёжное и удобное решение для самостоятельного управления данными и проектами. Наличие активного сообщества и обширной документации дополнительно облегчает внедрение и использование этой системы в самых разных контекстах.
Системы управления версиями, традиционно ассоциируются с разработкой программного обеспечения, однако их потенциал применения значительно шире. Для непрограммистов они могут стать мощным инструментом для решения разнообразных задач управления данными и координации проектов.
Один из ярких примеров — использование Gitea для синхронизации заметок. Например, пользователи приложения для заметок, такого как Obsidian, могут использовать Gitea для версионирования своих записей. Это позволяет отслеживать изменения, возвращаться к предыдущим версиям и даже работать над заметками совместно с другими пользователями.
Другой распространенный сценарий — использование Gitea в качестве инструмента для синхронизации и версионирования паролей с помощью менеджера паролей, такого как Pass. Такой подход увеличивает безопасность управления паролями, предоставляя историю изменений, синхронизацию между устройствами и возможность восстановления предыдущих состояний.
Системные администраторы и энтузиасты Linux также найдут Gitea особенно полезной. Для них система может служить надежным хранилищем для конфигурационных файлов систем и приложений. В случае необходимости можно легко отследить изменения, внесенные в файлы конфигурации, и при необходимости вернуться к более ранней версии. Это особенно важно, когда изменения в конфигурации могут повлиять на стабильность системы.
Также Gitea может служить для управления контентом и документацией проектов. Например, организации могут использовать встроенные вики для создания и хранения технических руководств, инструкций и других документов, что особенно полезно в условиях частых изменений и необходимости обеспечения доступа к актуальной информации.
Gitea поддерживается активным сообществом разработчиков и пользователей, которые регулярно обновляют и дополняют документацию, делая систему доступной для новичков и профессионалов. Пользователи могут обратиться за помощью через GitHub, специализированные форумы и чаты, где можно задать вопросы, обменяться опытом или найти решения для специфических проблем. Это обеспечивает надёжную поддержку и постоянное развитие платформы.
Альтернативы и в каких случаях стоит выбирать Gitea
Выбор подходящей системы управления версиями зависит от конкретных потребностей проекта или организации. Gitea выделяется среди подобных систем благодаря своей лёгкости и минимальным требованиям к ресурсам, что делает её идеальной для малых команд или индивидуальных разработчиков, которым нужен простой и эффективный инструмент без сложной инфраструктуры.
В отличие от GitHub, который является популярной коммерческой платформой, Gitea предоставляет возможность полного контроля над вашими данными, поскольку её можно развернуть в собственной инфраструктуре. Это может быть критически важно для организаций, требующих строгого соблюдения политик конфиденциальности и безопасности.
GitLab, хотя и предлагает обширные возможности для CI/CD, требует значительно больше ресурсов для своего функционирования и имеет сложную структуру, что может оказаться излишним для небольших проектов. Более того, не все функции GitLab доступны в бесплатной версии, что также может повлиять на выбор в пользу более доступных решений.
Таким образом, если ваша цель — обеспечить лёгкость управления, минимизировать затраты на инфраструктуру и удерживать полный контроль над системой и данными, Gitea представляет собой прекрасный выбор.
Процесс установки
Перед установкой на сервере выполним ряд подготовительных действий. В качестве примера мы будем использовать Ubuntu 22.04, но стоит отметить, что процесс установки в других дистрибутивах Linux отличается не сильно.
Создание облачного сервера
- Перейдите в панель управления Timeweb Cloud и нажмите на кнопку «Создать». Затем выберите опцию «Облачный сервер».
- Выберите Ubuntu 22.04 в качестве операционной системы.
- Выберите регион «Санкт-Петербург» и минимальную доступную конфигурацию сервера.
- В настройках сети оставьте настройки по умолчанию: внешний IP для IPv4 и отсутствие приватной сети.
- Для усиления надежности рассмотрите возможность активации сервиса бэкапов. Эта услуга может быть важна, если нужна дополнительная избыточность данных. Мы рассмотрим процесс создания резервных копий вручную, но полный бэкап сервера может быть полезен для обеспечения редундантность.
- Укажите SSH ключ, задайте имя сервера и завершите заказ, нажав на кнопку «Заказать».
После создания сервера подключитесь к нему по SSH и выполните обновление системы с помощью следующих команд:
Эти команды обновят систему до последних доступных версий пакетов.
Облачные серверы
по всему миру с почасовой оплатой.
Настройка базы данных
Перед тем как приступить к установке, необходимо подготовить базу данных, которая будет использоваться для хранения всей информации, связанной с системой управления версиями. Мы будем использовать MariaDB, популярную систему управления базами данных, известную своей производительностью и совместимостью с MySQL.
Установка MariaDB
Для начала установите MariaDB на ваш сервер командой:
Эта команда установит MariaDB вместе со всеми необходимыми зависимостями.
Безопасная настройка MariaDB
После установки выполните скрипт mysql_secure_installation, который поможет установить пароль для пользователя root, удалить анонимных пользователей, ограничить доступ к базе данных удаленно и удалить тестовую базу данных. Это улучшит безопасность вашего сервера баз данных:
Следуйте подсказкам на экране, чтобы завершить настройку.
Создание пользователя и базы данных
Затем войдите в консоль MariaDB и создайте пользователя и базу данных, которые будут использоваться системой:
После входа выполните следующие команды:
Эта команда создает нового пользователя для базы данных. Здесь 'twgitea'@'%' указывает имя пользователя и хост, с которого он может подключаться. Символ '%' означает, что пользователь может подключаться с любого хоста. Часть IDENTIFIED BY 'secretpass' устанавливает пароль для этого пользователя. Важно выбрать надежный и безопасный пароль.
Эта команда создает новую базу данных с именем giteadb. Здесь также указывается, что база данных будет использовать UTF-8 для хранения символов, что подходит для текстов на любом языке.
Эта команда предоставляет пользователю twgitea все права на работу с базой данных giteadb. Это включает в себя права на чтение, запись и модификацию данных, что необходимо для полноценной работы приложения.
Эта команда применяет все изменения привилегий, которые были сделаны. Она обновляет привилегии, чтобы новые настройки вступили в силу немедленно, без перезагрузки или переподключения к серверу. Для выхода из mysql нажмите сочетание клавиш CTRL+D.
Установка Gitea
Чтобы установить Gitea на ваш сервер, выполните следующие шаги, которые включают подготовку окружения, загрузку исполняемого файла и настройку автозапуска сервиса.
Загрузка и установка исполняемого файла
Скачайте последнюю стабильную версию Gitea с официального сайта:
Список всех доступных версий можно увидеть на сайте Gitea.
Сделайте скачанный файл исполняемым:
Проверка установленной версии Git
Убедитесь, что на вашем сервере установлен Git, так как он необходим для работы Gitea:
Создание системного пользователя: Создайте отдельного пользователя, под которым будет работать Gitea:
Настройка структуры директорий
Создайте необходимые директории для хранения данных, конфигураций и логов:
Настройка рабочей директории и копирование файла
Установите переменную окружения для рабочей директории и скопируйте исполняемый файл в системный каталог:
Создание и настройка сервиса для systemd
Создайте сервисный файл для systemd, чтобы Gitea автоматически запускалась при старте системы:
Вставьте в окне редактора следующий конфигурационный файл:
Затем включите и запустите сервис:
Проверьте, что сервис запущен и работает корректно:
Завершение установки через веб-интерфейс
После того как вы запустили сервис и обратились к серверу по адресу ip:3000, вас встретит мастер установки. На этом этапе вам предстоит настроить связь с базой данных и создать аккаунт администратора.
- Настройка базы данных:
- В поле Database Type выберите MySQL, что соответствует типу вашей базы данных.
- В поле Host оставьте значение по умолчанию.
- Введите имя пользователя базы данных в поле Username — в вашем случае это twgitea.
- Введите пароль, который вы задали при создании пользователя базы данных, в поле Password.
- В поле Database Name укажите имя вашей базы данных, которое вы задали ранее, — giteadb.
- Настройка общих параметров:
- В разделе General Settings вы можете оставить значения по умолчанию. Эти параметры включают настройки пути и базовых URL, которые можно будет изменить позже, если потребуется.
- Создание аккаунта администратора:
- В разделе Administrator Account Settings необходимо создать аккаунт администратора, указав желаемое имя пользователя, пароль и контактный email. Этот аккаунт будет использоваться для входа в систему и управления Gitea.
- Завершение установки:
- После заполнения всех необходимых данных нажмите на кнопку Install Gitea. Процесс установки начнется, и после его завершения вы сможете войти в систему с помощью созданного аккаунта администратора.
Настройка Nginx и SSL для вашего домена
После установки, для обеспечения безопасности и корректной работы на собственном домене, рекомендуется настроить веб-сервер Nginx и установить SSL-сертификат. Это позволит защитить данные и обеспечить их шифрование при передаче через интернет.
Установка и настройка Nginx
Установите Nginx на вашем сервере:
Создайте конфигурационный файл для вашего домена в Nginx:
Вставьте следующую конфигурацию, заменив twgitea.twtest.ru на ваш домен:
Активируйте новую конфигурацию, создав символическую ссылку на неё в директории sites-enabled:
Установка SSL сертификата с помощью Certbot
Установите Certbot и его плагин для Nginx:
Запустите Certbot для автоматической установки SSL-сертификата для вашего домена:
Эта команда выпустит и настроит SSL-сертификат, автоматически обновляя конфигурацию Nginx для использования HTTPS. В команде необходимо изменить значение mail@example.com, указав ваш email, и twgitea.test.ru, указав ваш домен.
Перезапустите Nginx для применения изменений:
Теперь сервис доступен по безопасному HTTPS-соединению на вашем домене.
Дополнительно вы можете отредактировать файл конфигурации /etc/gitea/app.ini, чтобы настроить домен и уровень доступа. В сегменте [server] файла конфигурации измените значения SSH_DOMAIN, DOMAIN и ROOT_URL, указав вместо IP-адреса ваш домен. Это позволит корректно отображать ссылки в вашей системе управления версиями.
В разделе [service] файла /etc/gitea/app.ini вы можете установить параметр DISABLE_REGISTRATION в значение true, чтобы запретить регистрацию новых пользователей. Это увеличит безопасность вашей системы, ограничив доступ только к выбранным пользователям.
Для применения изменений необходимо перезапустить сервис командой:
Безопасность и резервное копирование
Чтобы обеспечить безопасность ваших данных, настроим файрвол на сервере и систему резервного копирования.
Настройка брандмауэра UFW
Для обеспечения безопасности вашего сервера важно правильно настроить брандмауэр. Используя ufw (Uncomplicated Firewall), вы можете легко управлять доступом к различным портам и услугам. Ниже приведены основные шаги по настройке ufw:
Сброс текущих настроек брандмауэра:
Запрет входящих соединений по умолчанию и разрешение исходящих:
Разрешение доступа к стандартным веб-портам и SSH:
Запретим доступ к нашему git-серверу по ip:3000 для внешних подключений:
Активация и проверка статуса брандмауэра:
Создание резервной копии
Регулярное создание резервных копий — ключевой аспект поддержания данных в безопасности. Для Gitea процесс создания резервной копии может быть выполнен следующим образом:
Переключитесь на пользователя, под которым работает Gitea:
Перейдите в директорию, где будет создан бэкап (например, /home/git):
Выполните команду для создания дампа данных:
Эта команда создаст архив с резервной копией, который включает базу данных, конфигурационные файлы, репозитории и другие важные данные.
Созданный архив будет содержать важные компоненты, такие как:
-
app.ini— файл конфигурации (если он был вне стандартной папкиcustom/), -
custom/— все настройки кастомных решений, если такие используются, -
data/— данные приложения, включая вложения и аватары, -
repos/— полная копия директории репозиториев, -
gitea-db.sql— дамп базы данных, -
log/— различные логи, хотя они не обязательны для восстановления.
Восстановление из резервной копии
Для восстановления данных из резервной копии выполните следующие шаги:
Распакуйте архив резервной копии:
Перейдите в директорию с распакованными данными:
Восстановите основные компоненты:
- Конфигурационные файлы:
- Данные приложения:
- Логи:
- Репозитории:
Обновите права доступа:
Импортируйте дамп базы данных в MySQL:
Замените $USER, $PASS, и $DATABASE на имя пользователя, пароль и имя базы данных соответственно.
Эти шаги позволят вам восстановить всю необходимую информацию и данные на вашем сервере после сбоя или переноса на новый сервер.
Настройка репозиториев и деплой
Эта глава посвящена управлению репозиториями и развертыванию приложений с помощью Timeweb Cloud App Platform.
Добавление SSH-ключа
Для начала упростим процесс работы с вашими репозиториями, добавив SSH-ключ в Gitea. Для этого перейдите в настройки вашего пользователя, выберите «Ключи SSH/GPG» и нажмите на «Добавить ключ». В поле «Содержимое» вставьте ваш публичный SSH-ключ, который можно получить с помощью команды cat ~/.ssh/id_rsa.pub в Linux.
Пример создания и деплоя приложения
Скачайте и подготовьте ваш проект. Например, клонируйте на локальный компьютер тестовое приложение и удалите из него папку .git, после чего инициируйте новый репозиторий:
После инициализации нового репозитория локально, создайте репозиторий в Gitea, перейдя на главную страницу и нажав на плюс в разделе репозиториев. Измените только название на «Svelte» и нажмите «Создать репозиторий».
Добавление репозитория в Gitea и деплой
На странице репозитория выберите SSH для взаимодействия. Открывшаяся страница опишет, как можно создать новый репозиторий или добавить уже существующий.
Нам подойдет второй вариант:
При выполнении git push -u origin main у вас может возникнуть ошибка. Это связано с тем, что при инициации git-репозитория, имя ветки по умолчанию указывается как master, поэтому, если у вас возникает ошибка, выполните команду:
Обновите страницу репозитория, чтобы убедиться, что файлы были успешно добавлены.
Настройка деплоя в App Platform
После добавления репозитория, следующим шагом будет его размещение в App Platform. Для этого сначала создадим токен для авторизации.
- Создание токена для авторизации:
- Вернитесь в настройки Gitea и перейдите в раздел «Приложения».
- Введите имя для вашего токена и выберите «Выбрать разрешения».
- Установите для «repository» значение «Прочитанные» (в оригинале Read).
- После создания токен будет показан один раз на верху страницы. Обязательно сохраните его.
- Подключение репозитория в App Platform:
- В панели управления Timeweb Cloud перейдите в раздел «App Platform».
- Выберите раздел «Frontend» и фреймворк «Svelte».
- В разделе «Репозиторий» выберите «Подключить git-репозиторий по URL».
- В «URL репозитория» введите ссылку, указанную в репозитории Gitea при выборе HTTPS.
- В «Имя пользователя» введите ваше имя пользователя из Gitea.
- В «Пароль или токен» введите ранее полученный токен.
- Запуск и управление деплоем:
- После добавления репозитория все дополнительные настройки можно оставить по умолчанию.
- Нажмите на «Запустить деплой» и дождитесь завершения процесса.
- На странице настроек вы увидите домен, подключенный к вашему приложению. Здесь же вы можете изменить его.
- Для выбора коммитов для деплоя нажмите на «Редактировать» в разделе «Настройки деплоя».
Эти шаги помогут вам не только настроить репозитории, но и автоматизировать процесс деплоя приложений через Timeweb Cloud, упрощая разработку и обеспечивая более эффективное управление проектами.
Разверните Gitea на собственном сервере
477 ₽/мес
657 ₽/мес
Заключение
В этой статье мы подробно рассмотрели процесс установки и настройки Gitea на вашем сервере, начиная с базовой установки, проходя через настройку безопасности и резервное копирование, и завершая интеграцией с внешними сервисами для деплоя приложений. Теперь вы обладаете знаниями о том, как эффективно использовать системы управления версиями для управления версиями вашего кода и автоматизации разработки. Платформа обеспечивает надежную и масштабируемую основу, позволяющую значительно увеличить производительность разработки и усилить контроль над изменениями в проектах.
