Настройка собственного Git сервера с помощью Gitea

1.Немного о Gitea

Gitea — это удобная система управления репозиториями Git, которая предлагает простой пользовательский интерфейс и все необходимые функции для эффективной разработки и сотрудничества над проектами. Если вы знакомы с другими системами Git, такими как GitHub, Bitbucket или GitLab, то Gitea будет знакомым и удобным решением для вас.

Почему именно Gitea? Она абсолютна бесплатна по сравнению с другими системами. Ее легко настроить под свои задачи. В этой статье, я расскажу об этом.

2. Настройка Ubuntu Server

И так начнем. Тут все просто. Выбираем какой нить виртуальный сервер, на него ставим Ubuntu Server. Заходим по ssh и ставим обнову.

Далее нам нужно создать пользователя под которым будет работать gitea.

3. Установка и настройка MySQL БД

Следующим этапом будет подготовка БД. Как одним из вариантов можно использовать MySQL.

Давайте его установим:

Далее заходим в консольную утилиту mysql

*пароль пустой

Сразу же зададим пароль для root пользователя:

Теперь нам нужно создать БД

Создаем пользователя для работы с БД

Дадим ему права для доступа к БД

И обновим привилегии:

Все готово! для выхода из консольной утилиты пишем exit

4. Установка и настройка Nginx

Для того что бы мы могли получить доступ к gitea через web интерфейс, нам нужно установить и настроить Nginx.

Выполняем команду

Теперь нужно отредактировать конфиг. Будем использовать nano. Это редактор более удобный и интуитивно понятный чем vi или vim.

Вставляем туда вот эти настройки:

5. Установка и настройка Gitea

Переходим в эту директорию

Теперь качаем последнюю версию gitea

Установим права на выполнение файла и переименуем его

Далее нужно создаем структур папок и выставить для них доступы

Из под пользователя root gitea не запуститься. По этому создадим службу для запуска gitea под пользователем git, которого мы создали ранее.

Создаем файл gitea.service

И копируем туда следующие настройки:

Далее активируем и запускаем сервис

И проверяем его статус

Если все ок, то увидим следующее

6. Первый запуск

Перезапускаем nginx

Открываем в браузере адрес который указали в конфиге.

Если все ок, то увидим следующее

Указываем БД имя пользователя и пароль которые мы создали ранее.

И не забываем про настройки админа(имя admin зарезервировано, так что придумайте что то другое)

Остальное не трогаем!

Нажимаем на кнопку Установить Gitea и ждем когда завершиться установка.

Поздравляю, теперь у вас есть git сервер.

7.Настройка автодеплоя

У Gitea есть поддержка веб-хуков. А это значит мы можем запустить свой скрипт, привязавшись к какому-нибудь событию. Например когда был сделан мердж в ветку master.

Для этого нужно зайти в раздел веб-хуки. Указать url обработчика, секретный ключ(придумываем сами) и ветку к которой будем привязываться.

Вот пример кода на PHP в котором показывается как реализовать обработчик.

К примеру мы можем запустить sh скрипт.

И вот пример deploy.sh

8. Заключение

Данное решение не является панацеей, оно подойдет для небольшой фирмы или организации. Это всего лишь одни из вариантов как можно организовать совместную разработку продукта не используя сторонние сервисы.