Fossil - это безболезненный Git-сервис, созданный самостоятельно и подобный GitHub, Bitbucket и Gitlab.

Главная цель Fossil - предоставить самый быстрый, самый простой и самый безболезненный способ настройки сервиса Git для собственного размещения.

Предпосылки

  • Сервер с МСВСфера 9.6 в качестве ОС.
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo.

Конвенции

1
2
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя.

Обновите систему

Свежая установка МСВСфера 9.6 требует обновления пакетов до последних доступных версий.

1
$ sudo dnf update -y && $ sudo dnf upgrade -y

Шаг 1. Подготовьте среду Fossil

Создайте пользователя для запуска fossil.

1
2
3
4
5
6
7
8
$ sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git

Далее создайте каталог для хранения хранилищ.

1
$ mkdir ~/repo.fossil

Шаг 2. Установите Fossil

Мы установим Fossil, измените путь, где это необходимо, если вы хотите установить его в другом месте.

1
$ wget -O /tmp/fossil.tar.gz https://fossil-scm.org/home/uv/fossil-linux-x64-2.26.tar.gz

И переместите бинарный файл в /usr/local/bin/ каталог:

1
$ sudo mv fossil /usr/local/bin/

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

1
$ sudo chmod +x /usr/local/bin/fossil

Обратите внимание, что вам придется сделать эту операцию каждый раз, когда вы обновляете Fossil.

Шаг 3. Настройте службу systemd для запуска Fossil

Создайте файл службы Linux.

1
$ sudo nano /etc/systemd/system/fossil.service

Заполните файл следующим.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
[Unit]
Description=Fossil user server
After=network-online.target

[Service]
WorkingDirectory=/home/git/repo.fossil
ExecStart=/usr/local/bin/fossil --port 9000 --repolist /home/git/repo.fossil
Restart=always
RestartSec=3
User=git
Group=git

[Install]
WantedBy=multi-user.target

Включите и запустите Fossil при загрузке.

1
2
3
$ sudo systemctl daemon-reload
$ sudo systemctl start fossil.service
$ sudo systemctl enable fossil.service

Шаг 4. Настройте Angie в качестве обратного прокси

1
$ sudo dnf -y install angie

Создайте конфигурацию обратного прокси для fossil.

1
$ sudo nano /etc/angie/sites-available/fossil.conf

Заполните файл следующей конфигурацией.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
server {
    listen 80;
    index index.html index.php index.htm;

    server_name git.example.com;
                
    location / {
        proxy_pass http://localhost:9000;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Включите конфигурацию обратной прокси-сервера.

1
$ sudo ln -s /etc/angie/sites-available/fossil.conf /etc/angie/sites-enabled/fossil.conf

Затем перезагрузите сервис Angie.

1
$ sudo systemctl reload angie.service

Затем откройте браузер и перейдите к имени хоста или IP-адресу сервера.

http://git.example.com

При успешной установке вы должны войти в консоль администрирования Fossil.

Вы успешно установили Fossil на сервер МСВСфера 9.6.

Шаг 5. Обновление Fossil

Обновления до последней версии Fossil просто загрузите и замените бинарный файл.

Остановите службу Fossil:

1
$ sudo systemctl stop fossil.service

Загрузите последнюю версию Fossil.

1
$ wget -O /tmp/fossil.tar.gz https://fossil-scm.org/home/uv/fossil-linux-x64-2.26.tar.gz

И переместите бинарный файл в /usr/local/bin/ каталог:

1
$ sudo mv fossil /usr/local/bin/

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

1
$ sudo chmod +x /usr/local/bin/fossil

Запустите сервис Fossil:

1
$ sudo systemctl start fossil.service

Завершение

Если вам понравился этот пост об установке Fossil на сервере МСВСфера 9.6, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.