Gitea − лёгкий и быстрый self-hosted сервис для управления Git-репозиториями, который поддерживает работу с кодом, pull requests, отслеживание задач и вики для проектов. Gitea легко устанавливается, потребляет мало ресурсов и отлично подходит для личного использования или небольших команд. Благодаря открытому исходному коду и гибким настройкам, Gitea можно развернуть на любом Linux-сервере. В статье разберём, как установить Gitea на виртуальный выделенный сервер, работающий на Linux-системе, как основанной на Debian (Debian/Ubuntu), так и на CentOS.
Как установить Gitea на Linux
Поскольку Gitea сам по себе не реализует работу с репозиториями, а использует установленный в системе Git для всех операций с кодом, то сначала необходимо установить в систему именно Git. Чтобы проинсталлировать Git на Ubuntu и Debian, выполните в терминале команду:
$ sudo apt install git
В CentOS установка Git запускается при помощи инструкции:
$ sudo dnf install git
По окончании установки на своём локальном компьютере откройте браузер и перейдите на страницу загрузок Gitea, где выберите версию продукта. В нашем примере мы будем устанавливать Gitea версии 1.23.8. Перейдите на страницу выбранной версии и при помощи контекстного меню скопируйте в буфер обмена ссылку на загрузку дистрибутива для 64-х разрядной версии Linux.

Затем вернитесь в терминал и с использованием скопированной ссылки и утилиты wget загрузите бинарный файл Gitea в текущий каталог, сохранив его под именем gitea
:
$ wget -O gitea https://dl.gitea.com/gitea/1.23.8/gitea-1.23.8-linux-amd64
После того, как файл загрузился, добавьте для него право на выполнение, тем самым разрешив запускать его как программу:
$ chmod +x gitea
Теперь можно проверить работоспособность Gitea − запустить его и подключиться к его веб-интерфейсу. Но поскольку веб-интерфейс доступен через порт 3000, необходимо сначала открыть доступ к виртуальной машине с использованием данного порта. Чтобы это сделать, добавьте в брандмауэр вашей системы соответствующее разрешающее правило. В Ubuntu и Debian открыть порт 3000 можно, разрешив доступ к нему в брандмауэре UFW:
$ sudo ufw allow 3000
В CentOS добавьте порт 3000 в список разрешённых в настройках сервиса firewalld
:
$ sudo firewall-cmd --permanent --add-port=3000/tcp
И перезагрузите сервис:
$ sudo firewall-cmd --reload
Для запуска самого Gitea выполните команду:
$ ./gitea web
Теперь откройте браузер и перейдите на X.X.X.X:3000
, где X.X.X.X
замените на IP-адрес вашего сервера.

Если веб-интерфейс Gitea доступен, вы можете произвести его первоначальную настройку. Прежде всего, выберите требуемый для вашего проекта тип базы данных. Например, укажите SQLite3, как на скриншоте выше.
Также в расширенных настройках есть возможность сразу добавить учётную запись администратора. Для применения первоначальной конфигурации нажмите кнопку Установить Gitea
внизу страницы.

После окончания установки с применением указанной конфигурации вам станет доступна главная страница веб-интерфейса.

Чтобы завершить работу системы, вернитесь к командной строке терминала и нажмите Ctrl
C
.
Как запустить Gitea в качестве службы
Чтобы не запускать систему вручную при помощи команды, и при этом обеспечить её работу в фоновом режиме, имеет смысл настроить запуск Gitea в качестве системного сервиса.
Прежде всего, создайте отдельного системного пользователя, например, под именем gitea
, который будет иметь доступ только к файлам и только к каталогам настраиваемой системы. Сделать это в Ubuntu/Debian можно с использованием команды:
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/gitea \
gitea
Аналогичная команда для CentOS выглядит следующим образом:
sudo useradd \
--system \
--shell /bin/bash \
--comment 'Git Version Control' \
--create-home \
--home-dir /home/gitea \
gitea
Затем создайте требуемую структуру каталогов:
$ sudo mkdir -p /etc/gitea
$ sudo mkdir -p /var/lib/gitea/{custom,data,log}
Назначьте созданным каталогам соответствующие права:
$ sudo chown -R gitea:gitea /var/lib/gitea/
$ sudo chmod -R 750 /var/lib/gitea/
$ sudo chown -R root:gitea /etc/gitea
$ sudo chmod -R 770 /etc/gitea
Далее при помощи текстового редактора nano
или vi
создайте unit-файл для нового системного сервиса:
$ sudo nano /etc/systemd/system/gitea.service
Затем скопируйте в него следующее содержимое:
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target
[Service]
RestartSec=2s
Type=simple
User=gitea
Group=gitea
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=gitea HOME=/home/gitea GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
Сохраните созданный unit-файл, закройте его, после чего переместите исполняемый файл Gitea в директорию /usr/local/bin/
:
$ sudo mv gitea /usr/local/bin/
Далее перезапустите конфигурацию системных сервисов, чтобы уведомить systemd
о появлении нового unit-файла:
$ sudo systemctl daemon-reload
Затем запустите созданную службу:
$ sudo systemctl start gitea
Установите её в автозагрузку:
$ sudo systemctl enable gitea
Проверьте корректность работы сервиса при помощи команды:
$ systemctl status gitea
Вывод команды должен содержать информацию о том, что служба стартовала и настроена на автозапуск при загрузке системы. Кроме того, в выводе не должно быть сообщений о каких-либо ошибках.

Чтобы убедиться в успешности запуска, переключитесь в браузер и снова откройте веб-интерфейс Gitea. Для доступа к нему используйте IP-адрес вашего VPS и номер порта, на котором работает веб-интерфейс.