1.Немного о Gitea
Gitea — это удобная система управления репозиториями Git, которая предлагает простой пользовательский интерфейс и все необходимые функции для эффективной разработки и сотрудничества над проектами. Если вы знакомы с другими системами Git, такими как GitHub, Bitbucket или GitLab, то Gitea будет знакомым и удобным решением для вас.
Почему именно Gitea? Она абсолютна бесплатна по сравнению с другими системами. Ее легко настроить под свои задачи. В этой статье, я расскажу об этом.
2. Настройка Ubuntu Server
И так начнем. Тут все просто. Выбираем какой нить виртуальный сервер, на него ставим Ubuntu Server. Заходим по ssh и ставим обнову.
|
1 2 |
sudo apt update sudo apt upgrade |
Далее нам нужно создать пользователя под которым будет работать gitea.
|
1 2 3 4 5 6 7 8 |
sudo adduser\ —system\ —shell/bin/bash\ —gecos‘Git Version Control’\ —group\ —disabled—password\ —home/home/git\ git |
3. Установка и настройка MySQL БД
Следующим этапом будет подготовка БД. Как одним из вариантов можно использовать MySQL.
Давайте его установим:
|
1 |
sudo apt install mysql—server |
Далее заходим в консольную утилиту mysql
|
1 |
mysql—uroot—p |
*пароль пустой
Сразу же зададим пароль для root пользователя:
|
1 |
ALTER USER‘root’@‘localhost’IDENTIFIED BY‘12345678’; |
Теперь нам нужно создать БД
|
1 |
CREATE DATABASE gitea; |
Создаем пользователя для работы с БД
|
1 |
CREATE USER‘gitea’@‘localhost’IDENTIFIED BY‘12345678’; |
Дадим ему права для доступа к БД
|
1 |
GRANT ALL PRIVILEGES ON`gitea`.*TO‘gitea’@‘localhost’; |
И обновим привилегии:
|
1 |
FLUSH PRIVILEGES; |
Все готово! для выхода из консольной утилиты пишем exit
4. Установка и настройка Nginx
Для того что бы мы могли получить доступ к gitea через web интерфейс, нам нужно установить и настроить Nginx.
Выполняем команду
|
1 |
sudo apt—get install nginx |
Теперь нужно отредактировать конфиг. Будем использовать nano. Это редактор более удобный и интуитивно понятный чем vi или vim.
|
1 |
nano/etc/nginx/sites—available/default |
Вставляем туда вот эти настройки:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
server{ server_name domen.ru www.domen.ru; location/{ client_max_body_size512M; proxy_pass http://localhost:3000; proxy_set_header Host$host; proxy_set_headerX—Real—IP$remote_addr; proxy_set_headerX—Forwarded—For$proxy_add_x_forwarded_for; proxy_set_headerX—Forwarded—Proto$scheme; } } |
5. Установка и настройка Gitea
Переходим в эту директорию
|
1 |
cd/usr/local/bin |
Теперь качаем последнюю версию gitea
|
1 |
curl—s https://api.github.com/repos/go-gitea/gitea/releases/latest |grep browser_download_url | cut -d ‘»‘ -f 4 | grep ‘\linux-amd64$’ | wget -i — |
Установим права на выполнение файла и переименуем его
|
1 2 |
chmod+xgitea—1.20.4—linux—amd64 mv gitea—1.20.4—linux—amd64 gitea |
Далее нужно создаем структур папок и выставить для них доступы
|
1 2 3 4 5 6 7 |
sudomkdir—p/etc/gitea/var/lib/gitea/{custom,data,indexers,public,log} sudo chown git:git/var/lib/gitea/{data,indexers,log} sudochmod750/var/lib/gitea/{data,indexers,log} sudo chown root:git/etc/gitea sudo chmod770/etc/gitea sudo mkdir—p/usr/local/bin/data sudo chown—Rgit:git/usr/local/bin/data |
Из под пользователя root gitea не запуститься. По этому создадим службу для запуска gitea под пользователем git, которого мы создали ранее.
Создаем файл gitea.service
|
1 |
nano/etc/systemd/system/gitea.service |
И копируем туда следующие настройки:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[Unit] Description=Gitea After=syslog.target After=network.target [Service] RestartSec=3s 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 |
Далее активируем и запускаем сервис
|
1 2 |
sudo systemctl enable gitea sudo systemctl start gitea |
И проверяем его статус
|
1 |
sudo systemctl status gitea |
Если все ок, то увидим следующее

6. Первый запуск
Перезапускаем nginx
|
1 |
sudo systemctl restart nginx |
Открываем в браузере адрес который указали в конфиге.
Если все ок, то увидим следующее
Указываем БД имя пользователя и пароль которые мы создали ранее.
И не забываем про настройки админа(имя admin зарезервировано, так что придумайте что то другое)
Остальное не трогаем!
Нажимаем на кнопку Установить Gitea и ждем когда завершиться установка.
Поздравляю, теперь у вас есть git сервер.
7.Настройка автодеплоя
У Gitea есть поддержка веб-хуков. А это значит мы можем запустить свой скрипт, привязавшись к какому-нибудь событию. Например когда был сделан мердж в ветку master.
Для этого нужно зайти в раздел веб-хуки. Указать url обработчика, секретный ключ(придумываем сами) и ветку к которой будем привязываться.

Вот пример кода на PHP в котором показывается как реализовать обработчик.
К примеру мы можем запустить sh скрипт.
И вот пример deploy.sh
|
1 2 3 4 5 |
#!/bin/sh set—e git pull origin master npm install npm run prod |
8. Заключение
Данное решение не является панацеей, оно подойдет для небольшой фирмы или организации. Это всего лишь одни из вариантов как можно организовать совместную разработку продукта не используя сторонние сервисы.