Как установить Gitea на CentOS 8

Установить Gitea на CentOS

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

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

В этой статье показано, как установить и настроить Gitea на CentOS 8.

Предпосылки

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

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

 sudo dnf install sqlite

Мы предполагаем, что SELinux либо отключен , либо переведен в разрешительный режим.

Установка Gitea

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

Установить Git

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

 sudo dnf install git

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

 git --version
 git version 2.18.4

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

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

 sudo useradd  --system  --shell /bin/bash  --comment 'Git Version Control'  --create-home  --home /home/git  git

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

Загрузить двоичный файл Gitea

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

На момент написания статьи последняя версия — 1.12.3. Если доступна более новая версия, измените переменную VERSION в команде ниже.

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

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

Вы можете запустить исполняемый файл из любого места. Мы, следуя соглашению, переместим исполняемый файл в каталог /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/gitea sudo chown root:git /etc/gitea sudo 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-reload sudo 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 на всех сетевых интерфейсах. Чтобы разрешить доступ к веб-интерфейсу Gitea, необходимо настроить брандмауэр :

 sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp sudo firewall-cmd --reload

Откройте браузер, введите http://YOUR_DOMAIN_IR_IP:3000/install , и появится страница начальных настроек:

Установка Gitea

Заполните обязательные поля следующим образом:

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

  • Тип базы данных: 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

Позже вы сможете изменить настройки, отредактировав файл конфигурации Gitea.

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

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

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

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

Вот и всё. Gitea установлен на вашу машину CentOS.

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

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

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

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

 sudo nano /etc/nginx/conf.d/git.example.com.conf

/etc/nginx/conf.d/git.example.com.conf

 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

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

Для отправки уведомлений по электронной почте вы можете установить 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-сервере.

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

 sudo systemctl restart gitea

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

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

Обновление Gitea

Обновление до последней версии Gitea — простая задача. Вам нужно всего лишь скачать и заменить исполняемый файл.

  1. Остановите службу Gitea:

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

     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 на CentOS 8. Теперь вам следует посетить страницу документации Gitea и узнать, как настроить установку и создать свой первый проект.

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

centos git gitea Не используете CentOS 8?
Выберите другую ОС:
убунту 18.04 убунту 20.04

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *