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 и номер порта, на котором работает веб-интерфейс.
