Как установить Gitea на Ubuntu 18.04

Gitea — это автономный git-сервер с открытым исходным кодом, написанный на Go. Это вилка Gogs . Gitea включает в себя редактор файлов репозитория, отслеживание проблем проекта, управление пользователями, уведомления, встроенную вики и многое другое.

Gitea — это легкое приложение, которое можно установить на маломощные системы. Если вы ищете альтернативу Gitlab с гораздо меньшим объемом памяти, и вам не нужны все навороты, которые предлагает Gitlab , тогда вам обязательно стоит попробовать Gitea.

В этом руководстве объясняется, как установить и настроить Gitea в Ubuntu 18.04. Те же инструкции применимы для Ubuntu 16.04 и любого другого дистрибутива на основе Debian.

Подготовка

Gitea поддерживает SQLite, PostgreSQL и MySQL / MariaDB в качестве серверной части базы данных.

Мы будем использовать SQLite в качестве базы данных для Gitea. Если SQLite не установлен в вашей системе Ubuntu, вы можете установить его, введя следующие команды от имени пользователя sudo :

sudo apt updatesudo apt install sqlite3

Установка Gitea

Gitea предоставляет образы Docker и может быть установлен из исходного кода, двоичного кода или в виде пакета. Мы установим Gitea из двоичного файла.

Установить Git

Первый шаг — установить Git на ваш сервер:

sudo apt updatesudo apt install git

Проверьте установку, отобразив версию Git:

git --version
git version 2.17.1

Создайте пользователя Git

Создайте нового системного пользователя, который будет запускать приложение Gitea, набрав:

sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git

Команда создаст нового пользователя и группу с именем git и установит домашний каталог в /home/git . Результат будет выглядеть примерно так:

Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116) ...
Adding new user `git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...

Скачать бинарный файл Gitea

Посетите страницу загрузки Gitea и загрузите последнюю версию двоичного файла для вашей архитектуры. На момент написания последняя версия — 1.10.2. Если доступна новая версия, измените переменную VERSION в приведенной ниже команде.

Загрузите двоичный файл Gitea в каталог /tmp используя следующую команду wget :

VERSION=1.10.2sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64

gitea файл gitea можно запускать из любого места. Мы будем следовать соглашению и переместим двоичный файл в каталог /usr/local/bin :

sudo mv /tmp/gitea /usr/local/bin

Сделайте двоичный исполняемый файл:

sudo chmod +x /usr/local/bin/gitea

Выполните следующие команды, чтобы создать каталоги и установить необходимые разрешения и владение :

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}sudo chown git: /var/lib/gitea/{data,indexers,log}sudo chmod 750 /var/lib/gitea/{data,indexers,log}sudo mkdir /etc/giteasudo chown root:git /etc/giteasudo chmod 770 /etc/gitea

Указанная выше структура каталогов рекомендована официальной документацией Gitea.

Разрешения для каталога /etc/gitea установлены на 770 чтобы мастер установки мог создать файл конфигурации. После завершения установки мы установим более строгие разрешения.

Создайте файл модуля Systemd

Gitea предоставляет файл модуля Systemd, который уже настроен в соответствии с нашей настройкой.

Загрузите файл в каталог /etc/systemd/system/ , набрав:

sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/

После этого включите и запустите службу Gitea:

sudo systemctl daemon-reloadsudo systemctl enable --now gitea

Убедитесь, что служба запущена успешно:

sudo systemctl status gitea
● gitea.service - Gitea (Git with a cup of tea)
   Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-01-04 21:27:23 UTC; 3s ago
 Main PID: 14804 (gitea)
    Tasks: 9 (limit: 1152)
   CGroup: /system.slice/gitea.service
           └─14804 /usr/local/bin/gitea web --config /etc/gitea/app.ini
...

Настроить Gitea

Теперь, когда Gitea загружена и запущена, пора завершить установку через веб-интерфейс.

По умолчанию Gitea прослушивает подключения через порт 3000 на всех сетевых интерфейсах.

Если на вашем сервере работает брандмауэр UFW , вам нужно открыть порт Gitea:

Чтобы разрешить трафик на порт 3000 , введите следующую команду:

sudo ufw allow 3000/tcp

Откройте браузер, введите http://YOUR_DOMAIN_IR_IP:3000 , и появится экран, подобный следующему:

Настройки базы данных:

  • Тип базы данных: SQLite3
  • Путь: используйте абсолютный путь, /var/lib/gitea/data/gitea.db

Общие настройки приложения:

  • Заголовок сайта: введите название вашей организации.
  • Корневой путь репозитория: оставьте значение по умолчанию /home/git/gitea-repositories .
  • Корневой путь Git LFS: оставьте значение по умолчанию /var/lib/gitea/data/lfs .
  • Запуск от имени пользователя: git
  • Домен SSH-сервера: введите IP-адрес вашего домена или сервера.
  • Порт SSH: 22, измените его, если SSH прослушивает другой порт
  • Порт прослушивания HTTP Gitea: 3000
  • Базовый URL Gitea: используйте http и IP-адрес вашего домена или сервера.
  • Путь к /var/lib/gitea/log : оставьте значение по умолчанию /var/lib/gitea/log
Вы можете изменить настройки в любое время, отредактировав файл конфигурации Gitea.

После этого нажмите кнопку «Установить Gitea». Установка происходит мгновенно. По завершении вы будете перенаправлены на страницу входа.

Щелкните ссылку «Зарегистрироваться сейчас». Первый зарегистрированный пользователь автоматически добавляется в группу администратора.

Измените разрешения файла конфигурации Gitea на доступ только для чтения, используя:

sudo chmod 750 /etc/giteasudo chmod 640 /etc/gitea/app.ini

Вот и все. Gitea установлена на вашем компьютере с Ubuntu.

Настройка Nginx в качестве прокси завершения SSL

Этот шаг не является обязательным, но настоятельно рекомендуется. Чтобы использовать Nginx в качестве обратного прокси, вам необходимо иметь домен или поддомен, указывающий на общедоступный IP-адрес вашего сервера. В этом руководстве мы будем использовать git.example.com .

Сначала установите Nginx и сгенерируйте бесплатный SSL-сертификат Let's Encrypt, используя приведенные ниже инструкции:

После этого откройте текстовый редактор и отредактируйте файл блока сервера домена:

sudo nano /etc/nginx/sites-enabled/git.example.com
/etc/nginx/sites-enabled/git.example.com
server {
    listen 80;
    server_name git.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://git.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name git.example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    client_max_body_size 50m;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/git.example.com/chain.pem;
    include snippets/letsencrypt.conf;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/git.example.com.access.log;
    error_log /var/log/nginx/git.example.com.error.log;

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://127.0.0.1:3000;
    }
}

Не забудьте заменить git.example.com на свой домен Gitea и указать правильный путь к файлам сертификатов SSL. HTTP-трафик перенаправляется на HTTPS.

Перезапустите службу Nginx, чтобы изменения вступили в силу:

sudo systemctl restart nginx

Затем измените домен Gitea и корневой URL. Для этого откройте файл конфигурации и отредактируйте следующие строки:

sudo nano /etc/gitea/app.ini
/etc/gitea/app.ini
[server]
DOMAIN           = git.example.com
ROOT_URL         = https://git.example.com/

Перезапустите сервис Gitea, набрав:

sudo systemctl restart gitea

На этом этапе прокси Gitea настроен, и вы можете получить к нему доступ по адресу: https://git.example.com

Настройка уведомлений по электронной почте

Чтобы Gitea могла отправлять электронные письма с уведомлениями, вы можете либо установить Postfix, либо использовать какую-либо службу транзакционной почты, такую как SendGrid, MailChimp, MailGun или SES.

Чтобы включить уведомления по электронной почте, откройте файл конфигурации и отредактируйте следующие строки:

sudo nano /etc/gitea/app.ini
/etc/gitea/app.ini
[mailer]
ENABLED = true
HOST    = SMTP_SERVER:SMTP_PORT
FROM    = SENDER_EMAIL
USER    = SMTP_USER
PASSWD  = YOUR_SMTP_PASSWORD

Убедитесь, что вы указали правильную информацию о SMTP-сервере.

Перезапустите сервис Gitea, чтобы изменения вступили в силу:

sudo systemctl restart gitea

Чтобы проверить настройки и отправить тестовое электронное письмо, войдите в Gitea и выберите: Администрирование сайта> Конфигурация> Конфигурация почтовой программы SMTP.

Gitea также позволяет вам подключаться к Slack, создавая веб-перехватчик и отправлять уведомления на ваши каналы Slack .

Обновление Gitea

Чтобы обновить Gitea до последней версии, просто скачайте и замените двоичный файл.

  1. Остановите сервис Gitea:

     sudo systemctl stop gitea
  2. Загрузите последнюю версию Gitea и переместите ее в каталог /usr/local/bin :

     VERSION=<THE_LATEST_GITEA_VERSION> wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64 sudo mv /tmp/gitea /usr/local/bin
  3. Сделайте двоичный исполняемый файл:

     sudo chmod +x /usr/local/bin/gitea
  4. Перезапустите сервис Gitea:

     sudo systemctl restart gitea

Вот и все.

Выводы

В этом руководстве вы познакомились с установкой Gitea на Ubuntu 18.04.

Теперь вам следует посетить страницу документации Gitea и узнать, как настроить экземпляр Gitea и создать свой первый проект.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Оставьте комментарий