Як встановити HTTP Git Server на Ubuntu 24.04 LTS Ubuntu 22.04

Як встановити HTTP Git Server на Ubuntu 24.04 LTS Ubuntu 22.04

 

У цьому посібнику ми покажемо вам, як встановити HTTP Git Server на Ubuntu 24.04 LTS.Для тих, хто не знав, HTTP Git Server — це проект з відкритим вихідним кодом, який використовує веб-сервер Nginx для обслуговування репозиторіїв Git через вашу локальну мережу (LAN).HTTP Git Server на диво простий у налаштуванні та керуванні.

У цій статті передбачається, що у вас є хоча б базові знання про Linux, ви знаєте, як використовувати оболонку, і найголовніше, ви розміщуєте свій сайт на власному VPS.Установка досить проста і передбачає, що ви працюєте з обліковим записом root, в іншому випадку вам може знадобитися додати ‘sudo’ до команд, щоб отримати привілеї root.Я покажу вам покрокову установку HTTP Git Server на Ubuntu 24.04 (Focal Fossa).Ви можете дотримуватися інструкцій для Ubuntu 22.04, 120.04 та будь-якого іншого дистрибутива на основі Debian, такого як Linux Mint.

Встановіть HTTP Git Server на Ubuntu 24.04 LTS Focal Fossa

Крок 1. Спочатку переконайтеся, що всі ваші системні пакети оновлені, виконавши наступні аapt команди в терміналі.

sudo apt update
sudo apt upgrade
sudo apt install fcgiwrap apache2-utils unzip

Крок 2. Встановлення Nginx на Ubuntu 24.04.

Nginx доступний у стандартних репозиторіях Ubuntu.Щоб встановити його, виконайте таку команду:

sudo apt install nginx

Після завершення інсталяції запустіть команди, щоб Nginx автоматично запускався при запуску вашого сервера:

sudo systemctl stop nginx
sudo systemctl start nginx
sudo systemctl enable nginx

Настроювання брандмауера.

Тим часом, необхідно переконатися, що ваш брандмауер налаштований на дозвіл трафіку через порти HTTP (80) та HTTPS (443).Nginx реєструє себе як службу за допомогою ufw:

sudo ufw allow in "Nginx Full"

Крок 3. Встановлення Git на Ubuntu 24.04.

Виконайте наступну команду нижче, щоб встановити Git у вашій системі Ubuntu:

sudo apt install git

Підтвердьте встановлення Git:

git --version

Крок 4. Створіть репозиторій Git.

Тепер ми створюємо каталог для зберігання репозиторію Git:

mkdir /var/www/html/infoit-repo

Потім змініть каталог на і створіть інший каталог для користувачів:infoit-repo

cd /var/www/html/myrepo
mkdir user.git

Тепер ініціалізуємо репозиторій командою:

cd user.git
git --bare init

Потім оновіть Git Server за допомогою команди:

git update-server-info

Дайте репозиторію правильне право власності за допомогою команди:

chown -R www-data:www-data /var/www/html/infoit-repo
chmod -R 755 /var/www/html/infoit-repo

Після цього створіть користувача з ім’ям user та встановіть пароль для обмеження доступу до репозиторію git з використанням базової автентифікації HTTP:

htpasswd -c /var/www/html/infoit-repo/htpasswd user

Крок 5. Налаштуйте Nginx для обслуговування репозиторію Git.

Тепер ми створюємо файл конфігурації віртуального хоста Nginx для обслуговування репозиторію Git:

nano /etc/nginx/conf.d/git.conf

Додайте наступні рядки:

server {
        listen 80;

        root /var/www/html/infoit-repo;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name git.your-domain.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

location ~ (/.*) {
    client_max_body_size 0; 
    auth_basic "Git Login"; 
    auth_basic_user_file "/var/www/html/infoit-repo/htpasswd";
    include /etc/nginx/fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; 
    fastcgi_param GIT_HTTP_EXPORT_ALL "";
    fastcgi_param GIT_PROJECT_ROOT /var/www/html/infoit-repo;
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param PATH_INFO $1; 
    fastcgi_pass  unix:/var/run/fcgiwrap.socket;
}

}

Збережіть і закрийте файл, а потім перезапустіть службу Nginx, щоб застосувати зміни.

nginx -t
sudo systemctl restart nginx

Крок 6. Підключіться до репозиторію Git із клієнта.

Спочатку створіть каталог для вашого проекту за допомогою наступної команди:

mkdir my-project

Потім перейдіть в каталог вашого проекту та ініціалізуйте Git за допомогою команди:

cd my-project
git init

Ми рекомендуємо налаштувати ваш Git для фіксації електронної пошти та імені користувача.Для цього виконайте такі команди:

git config --global user.email "user@your-domain.com"
git config --global user.name "user"

Після цього додайте свій віддалений репозиторій Git за допомогою наступної команди:

git remote add origin http://user@git.your-domain.com/user.git

Потім створіть каталог з ім’ям dev і додайте до нього файл:

mkdir dev
echo "This is my first my application" > dev/file

Тепер ми можемо додати ці файли до git за допомогою команди:

git add .

Зафіксуйте зміни командою:

git commit -a -m "Add files and directories"

Потім надішліть всі наші новостворені каталоги та файли на сервер за допомогою команди:

git push origin master

После подключения вы получите следующий вывод:

Counting objects: 8, done.
Writing objects: 100% (4/4), 512 bytes | 346.00 KiB/s, done.
Total 8 (delta 0), reused 0 (delta 0)
To http://git.your-domain.com/user.git
 * [new branch]      master -> master

Ви також можете завантажити свій репозиторій безпосередньо з сервера Git, використовуючи наступну команду:

git clone http://user@git.your-domain.com/user.git

Вітаємо!Ви успішно встановили HTTP Git Server.Дякуємо за використання цього посібника з встановлення HTTP Git Server у вашій системі Ubuntu 24.04 LTS Focal Fossa.Для отримання додаткової допомоги або корисної інформації ми рекомендуємо вам відвідати офіційний сайт Git.

Прокрутка до верху