Контроль версий — это ключевой инструмент для управления кодом и обмена им. Gitea — это бесплатный сервис Git с открытым исходным кодом, написанный на Go. Это лёгкая и простая в использовании альтернатива другим платформам Git. Он включает в себя простой интерфейс, отслеживание проблем и хорошо сочетается с популярными функциями Git.
Настройка системы
В этом руководстве я покажу вам, как настроить Git-сервер в Ubuntu с помощью Gitea и Docker. В итоге у вас будет собственный Git-сервер, готовый для личного или командного использования.
Перед установкой новых пакетов, нужно обновить существующие:
sudo apt update -y
Следующая команда создаст системного пользователя с именем «git» с определённым домашним каталогом и без пароля, что идеально подходит для размещения сервера Git без необходимости доступа к другим частям вашей системы.
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
Получим вывод:
Добавляется системный пользователь «git» (UID 102) ...
Добавляется новая группа «git» (GID 109) ...
Добавляется новый пользователь «git» (UID 102) в группу «git» ...
Создаётся домашний каталог «/home/git» ...
После выполнения приведенной ниже команды мы сохраняем значения UID и GID, так как будем использовать их в файле docker-compose.yml:
Далее нужно создать каталог, в котором будет установлена Gitea и будут храниться её файлы. Этот каталог будет служить домом для вашего экземпляра Gitea, что позволит вам легко управлять его данными и конфигурацией. Следующие команды создадут каталог и переведут в него:
mkdir ~/gitea
cd ~/gitea
Docker-compose Gitea
Теперь, когда вы находитесь в каталоге Gitea, следующим шагом будет создание и редактирование файла docker-compose.yml. В этом файле будут определены контейнеры Docker, необходимые для запуска вашего Git-сервера. Чтобы создать и открыть этот файл в текстовом редакторе, используйте следующую команду:
nano docker-compose.yml
В файле docker-compose.yml вы зададите конфигурацию для службы Gitea, включая образ Docker, сетевые настройки, переменные среды и сопоставления томов. Следующая конфигурация настроит Gitea с необходимыми параметрами среды, сетевыми настройками и сопоставлениями томов, а также откроет соответствующие порты для доступа к веб-интерфейсу Gitea и SSH.
После добавления конфигурации сохраните и закройте файл. Не забудьте заменить параметры <YOUR UID> и <YOUR GID> в файле docker-compose.yml на свои, полученные при создании пользователя git.
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=<YOUR UID>
- USER_GID=<YOUR GID>
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /home/git/.ssh/:/data/git/.ssh
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:22"
Сохраним файл Ctrl + O и выйдем из редактора Ctrl + X.
Чтобы запустить службу Gitea, указанную в файле docker-compose.yml:
docker-compose up -d
После этого вы сможете получить доступ к своему Gitea-серверу, как показано ниже:
http://<your-ip>:3000/
Доступ к Gitea
Теперь вы готовы завершить настройку Gitea.
Следующий шаг — получить доступ к веб-интерфейсу Gitea (IP-адресу сервера) через браузер.
При входе в интерфейс вы увидите страницу начальной настройки, как показано ниже.
Здесь вы можете изменить название сайта и просмотреть различные настройки. Я продолжаю пользоваться кнопкой «Установить Gitea», не меняя никаких настроек.
После завершения установки вы увидите страницу входа/регистрации. Пользователь, зарегистрировавшийся после первой установки, является пользователем с правами администратора.
Теперь вы завершили настройку вашей собственной системы контроля версий.
Дополнительная настройка для регистрации
Если вы хотите закрыть доступ к разделу регистрации и разрешить только пользователям с правами администратора создавать учётные записи и только этим пользователям получать доступ к системе, вы можете воспользоваться приведённой ниже инструкцией.
Вам нужно настроить файл app.ini в Gitea. С помощью приведенной ниже команды вы можете получить доступ к файлу app.ini:
nano ~/gitea/gitea/gitea/conf/app.ini
После доступа к этому файлу вы должны установить для параметра DISABLE_REGISTRATION значение true.
[service]
DISABLE_REGISTRATION = true
Затем мы перезапускаем наш контейнер docker, чтобы применить наши изменения.
docker restart gitea
При попытке получить доступ к странице регистрации мы увидим предупреждение.
В этом руководстве мы описали процесс настройки собственного Git-сервера с помощью Gitea и Docker, а также Nginx в системе Ubuntu. Выполнив эти действия, вы получите полностью работоспособный экземпляр Gitea, адаптированный под ваши нужды. Если у вас возникнут какие-либо проблемы или потребуется дополнительная настройка, документация Gitea и ресурсы сообщества станут ценными инструментами, которые помогут вам получить максимальную отдачу от вашей настройки.