Gitea — это автономный git-сервер с открытым исходным кодом, написанный на Go. Он поставляется с редактором файлов репозитория, отслеживанием проблем проекта, управлением пользователями, уведомлениями, встроенной вики и многим другим.
Gitea — это легкое приложение, которое можно установить на менее мощные системы. Если вы ищете альтернативу Gitlab с гораздо меньшим объемом памяти и вам не нужны все навороты, которые предлагает Gitlab, вам следует попробовать Gitea.
В этой статье показано, как установить и настроить Gitea на CentOS 8.
Содержание
Подготовка
Gitea поддерживает SQLite, PostgreSQL и MySQL / MariaDB в качестве серверной части базы данных.
Мы будем использовать SQLite. Это легкая база данных, в которой данные хранятся в одном файле. Если SQLite не установлен на вашем компьютере с CentOS, вы можете установить его, выполнив следующую команду от имени пользователя sudo :
sudo dnf install sqlite
Мы предполагаем, что SELinux либо отключен, либо установлен в разрешающий режим.
Установка 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
, и появится страница начальной конфигурации:
Заполните обязательные поля следующим образом:
Настройки базы данных:
- Тип базы данных: SQLite3
- Путь: используйте абсолютный путь,
/var/lib/gitea/data/gitea.db
Общие настройки приложения:
- Заголовок сайта — введите название вашей организации.
- Путь к
/home/git/gitea-repositories
— оставьте значение по умолчанию/home/git/gitea-repositories
. - Корневой путь Git LFS — оставьте значение по умолчанию
/var/lib/gitea/data/lfs
. - Запуск от имени пользователя — git
- Домен SSH-сервера — введите IP-адрес вашего домена или сервера.
- SSH Port — 22, измените его, если SSH прослушивает другой порт.
- Порт прослушивания HTTP Gitea — 3000
- Базовый URL Gitea — используйте http и IP-адрес вашего домена или сервера.
- Путь к
/var/lib/gitea/log
— оставьте значение по умолчанию/var/lib/gitea/log
После этого нажмите кнопку «Установить 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
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
[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
[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 — несложная задача. Вам нужно только скачать и заменить двоичный файл.
-
Остановите сервис Gitea:
sudo systemctl stop gitea
-
Загрузите последний двоичный файл 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
-
Сделайте двоичный исполняемый файл:
sudo chmod +x /usr/local/bin/gitea
-
Перезапустите сервис Gitea:
sudo systemctl restart gitea
Вот и все.
Выводы
Мы показали вам, как установить Gitea на CentOS 8. Теперь вам следует посетить страницу документации Gitea и узнать, как настроить установку и создать свой первый проект.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.