AstraLinux - установка и запуск GitFlic

Описание и установка из архива

Скачайте последнюю версию GitFlic self-hosted. Содержимое архива:

  • ./gitflic.jar - исполняемый файл.
  • /default-config/application.properties - файл конфигурации приложения. Типичный путь для распаковки архива - /opt/gitflic Пример передачи и распаковки архива:
# Со своей машины на сервер gitflic:
scp -P 122 ~/Downloads/gitflic.zip test@192.168.31.63:~/
# Установка unzip:
sudo apt install unzip
# Распаковка архива на сервере gitflic:
sudo unzip /home/test/gitflic* -d /opt/gitflic

Схема работы приложения GitFlic:

Схема

Рекомендуемые системные требования

Параметр Рекомендации
CPU 2 ядра Ice Lake
RAM 4 Гб
HDD Зависит от объёма ваших репозиториев. От 25 Гб

Требования к ПО (в скобках указаны версии в AstraLinux 1.7.4 Орел):

  • Java 11 (openjdk 11.0.18)
  • Redis 6.2 (redis-server 7.0.10)
  • PostgreSQL 11/12 (psql 11.17)
  • RabbitMQ 3.12 (rabbitmqadmin 3.8.2)

Общее обновление компонентов

Проверяем /etc/apt/sources.list - нужно закомментировать репозитории cdrom и раскомментировать онлайн-репозитории.

# deb cdrom:[OS Astra Linux 1.7.4 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free
# deb cdrom:[OS Astra Linux 1.7.4 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free

deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free
deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free

deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free
#deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free

* repository-extended - Не обязателен для установки и запуска приложения Gitflic.

  • Обновить список пакетов:
sudo apt update
# Опционально: установить актуальные обновления
sudo apt dist-upgrade

Установка Java 11

Инструкция по установке на сайте AstraLinux

  • Проверить доступные версии OpenJDK:
apt policy openjdk-11-jdk
  • Установить пакет:
sudo apt install openjdk-11-jdk
  • Проверка установленной версии:
java --version

Установка PostgreSQL

Инструкция по установке на сайте AstraLinux

  • Проверить доступные версии OpenJDK:
apt policy postgresql-11
  • Установить пакет:
sudo apt install postgresql-11
  • Проверка установленной версии:
psql --version
  • Проверка запущенной службы:
sudo systemctl status postgresql

Конфигурация PostgreSQL

  • Подключение к консоли psql:
sudo -u postgres psql
  • Создание пользователя с паролем, БД с указанным владельцем, выход:
CREATE USER gitflic WITH PASSWORD 'gitflic';
CREATE DATABASE gitflic WITH OWNER gitflic;
\q
  • Вход в созданную базу данных gitflic:
sudo -u postgres psql -d gitflic
  • Загрузка расширения pgcrypto для базы gitflic (обязательно):
CREATE EXTENSION pgcrypto;
  • Перезагрузка сервера БД для принятия изменений:
service postgresql restart

Установка Redis

  • Установка пакета:
sudo apt install redis
  • Проверка версии Redis:
redis-server --version
  • Состояние сервиса:
sudo systemctl status redis
  • Убедиться, что Redis запущен, с помощью команды (должно вернуться PONG)
redis-cli ping

Настройка SSH порта

Для remote-url вида git@gitflic.ru:gitflic/gitflic.git требуется освободить 22 порт от использования системным ssh. После принятия изменений, для подключения по ssh, указываем значение -p порта, например: ssh -p 122 amazing@84.47.177.90 Изменение настроек ssh:

sudo nano /etc/ssh/sshd_config
# Раскомментировать строку Port с отличным значением от "22", пример "122"
Port 122 
# Перезагрузка службы
sudo systemctl restart ssh

Нестандартный порт на ssh-сервере GitFlic

При настройке GitFlic-сервера с нестандартным портом, требуется изменить git-запрос, указав нужный порт. Пример дляssh.server.port=1234 (указывается в application.properties):

git clone ssh://git@gitflic.ru:1234/adminuser/test.git

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

Параметр Описание
gitflic.ru Доменное имя вашего сервера
1234 Порт указанный в параметре ssh.server.port=1234 в application.properties
adminuser Учётная запись пользователя
test.git Название проекта

Генерация ключа key.pem (для ssh-транспорта git)

Для генерации ssh ключа откройте терминал и выполните команду:

sudo ssh-keygen -t ed25519

Результат: Enter file in which to save the key (/home/user/.ssh/id_ed25519): Нажимаем Enter с сохранением предложенного пути к файлу. Кодовая фраза для дополнительной защиты (можно пропустить):Enter passphrase (empty for no passphrase): Копируем файл /home/user/.ssh/id_ed25519 в директорию ‘cert’ с переименованием в key.pem. Папку cert/ можно создать в любом месте, путь к сертификату указывается в файле конфигурации application.properties (по умолчанию, /opt/gitflic/var/cert).

Создаем общий каталог:

sudo mkdir -p /opt/gitflic/var

Переходим в него:

cd /opt/gitflic/var

Создаем каталоги для работы, включая /cert:

sudo mkdir cert cicd img registry releases repo

Копируем созданный ранее ключ в каталог /cert с переименованием:

sudo cp ~/.ssh/id_ed25519 /opt/gitflic/var/cert/key.pem

! Обратите внимание: пути для ключа могут отличаться, если при создании указывали другой каталог, а также при нестандартном пути для /cert


Установка RabbitMQ (опционально)

☘️ Данное ПО устанавливается для платной версии self-hosted enterprise. RabbitMQ - это распределённый и горизонтально масштабируемый брокер сообщений, является одним из самых популярных средств для обмена данными между сервисами. Благодаря использованию RabbitMQ увеличиваются отказоустойчивость и количество обрабатываемых сообщений в GitFlic.

sudo apt install rabbitmq-server

После установки RabbitMQ сам запускается и добавляется в автозагрузку. Проверка статуса службы:

sudo systemctl status rabbitmq-server.service 

Запуск GitFlic-приложения

Описание application.properties: файл конфигурации - /opt/gitflic/default-config/application.properties содержит типичные настройки для приложения: сервера, баз данных, служебные каталоги, логирование, дополнительные компоненты. Каждый блок настроек описан внутри файла - Подробное описание

Переходим в директорию gitflic (пример /opt/gitflic), запускаем приложение gitflic.jar с указанием пути к файлу конфигурации:

cd /opt/giflic
sudo java -jar gitflic.jar --spring.config.additional-location=file:default-config/

Допускается переместить конфиг-файл другую удобную директорию и указать к ней путь в параметре --spring.config.additional-location. Обратите внимание, путь к директории должен оканчиваться символом ‘/’

Запуск приложения позволяет определить правильность настройки и запуска продукта (лог работы отображается в процессе запуска). В дальнейшем, рекомендуется настроить и использовать gitflic в качестве сервиса

Проверка работы в браузере

Пример ссылки по ip сервера - http://192.168.31.63:8080

Стандартные пользователь и пароль для входа:

  • adminuser@admin.local
  • qwerty123

❗️Возможные проблемы

psql: error obtaining MAC configuration for user... 

Ошибка означает что БД не может верно определить метку безопасности пользователя.

Для устранения необходимо проверить есть ли у пользователя который запускает СУБД (postgres по умолчанию) необходимые права на чтение и исполнение необходимых директорий

sudo getfacl /etc/parsec/macdb/
sudo getfacl /etc/parsec/capdb/

Запись в выводе user:postgres:r-x

Если данной записи в выводе нет, необходимо задать необходимые права

sudo setfacl -R -m u:postgres:rx /etc/parsec/capdb
sudo setfacl -R -m u:postgres:rx /etc/parsec/macdb

Проверить результат перезапуском приложения.

Если ошибка осталась

Установить параметр zero_if_notfound в yes в файле etc/parsec/mswitch.conf и перезапустить службы

sudo systemctl daemon-reload

❗️Данный параметр позволит устанавливать нулевой уровень доступа для всех пользователей с неопределенными правами

Если ошибка осталась , необходимо установить валидные уровни конфиденциальности для пользователя согласно официальной инструкции