GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal HTTP Git Server dengan Nginx di Debian 11

Git adalah sistem kontrol versi sumber terbuka yang digunakan oleh ribuan pengembang di seluruh dunia. Ini digunakan untuk melacak perubahan perangkat lunak Anda di tingkat sumber. Ini memungkinkan Anda untuk melacak perubahan, mengembalikannya ke tahap sebelumnya dan membuat versi alternatif dari file dan direktori.

HTTP Git Server adalah proyek sumber terbuka yang menggunakan server web Nginx untuk melayani repositori Git melalui Jaringan Area Lokal (LAN) Anda. Ini sangat sederhana dan mudah diatur. Siapa pun dapat mengelolanya dari antarmuka baris perintah.

Dalam tutorial ini, saya akan menjelaskan cara menyiapkan server repositori HTTP Git dengan Nginx di Debian 11.

Prasyarat

  • Server yang menjalankan Debian 11.
  • Nama domain valid yang ditunjukkan dengan IP server Anda.
  • Kata sandi root dikonfigurasi di server Anda.

Instal Nginx dan Dependensi Lainnya

Pertama, Anda perlu menginstal server web Nginx dan paket lain yang diperlukan untuk menyiapkan server HTTP Git. Anda dapat menginstal semuanya menggunakan perintah berikut:

apt-get install nginx git fcgiwrap apache2-utils unzip -y

Setelah semua paket terinstal, Anda dapat melanjutkan ke langkah berikutnya.

Buat Repositori Git

Selanjutnya, Anda perlu membuat direktori untuk menyimpan repositori Git. Mari buat direktori bernama myrepo di dalam direktori root web Nginx:

mkdir /var/www/html/myrepo

Selanjutnya, ubah direktori menjadi myrepo dan buat direktori lain untuk pengguna:

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

Selanjutnya, navigasikan ke direktori pengguna dan inisialisasi repositori Git menggunakan perintah berikut:

cd user1.git
git --bare init

Anda akan mendapatkan output berikut:

Initialized empty Git repository in /var/www/html/myrepo/user1.git/

Selanjutnya, perbarui informasi server Git dengan perintah berikut:

git update-server-info

Selanjutnya, ubah kepemilikan myrepo dan atur izin yang tepat dengan perintah berikut:

chown -R www-data:www-data /var/www/html/myrepo
chmod -R 755 /var/www/html/myrepo

Selanjutnya, buat pengguna bernama user1 dan atur kata sandi:

htpasswd -c /var/www/html/myrepo/htpasswd user1

Anda dapat mengatur kata sandi seperti yang ditunjukkan di bawah ini:

New password: 
Re-type new password: 
Adding password for user user1

Anda dapat memeriksa kata sandi Anda menggunakan perintah berikut:

cat /var/www/html/myrepo/htpasswd

Contoh keluaran:

user1:$apr1$LoyCEkzA$Fjq5nBbLhBRdaxCQBBUQd1

Konfigurasikan Nginx untuk Melayani Repositori Git

Selanjutnya, Anda perlu membuat file konfigurasi virtual host Nginx untuk melayani repositori Git.

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

Tambahkan baris berikut:

server {
        listen 80;

        root /var/www/html/myrepo;

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

        server_name git.yourdomain.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/myrepo/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/myrepo;
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param PATH_INFO $1; 
    fastcgi_pass  unix:/var/run/fcgiwrap.socket;
}

}

Simpan dan tutup file setelah Anda selesai kemudian verifikasi Nginx untuk kesalahan sintaks:

nginx -t

Anda akan mendapatkan output berikut:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Terakhir, restart layanan Nginx untuk menerapkan perubahan:

systemctl restart nginx

Anda juga dapat memeriksa status Nginx menggunakan perintah berikut:

systemctl status nginx

Anda akan mendapatkan output berikut:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-12-11 08:00:04 UTC; 2s ago
       Docs: man:nginx(8)
    Process: 144985 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 144986 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 144987 (nginx)
      Tasks: 2 (limit: 2341)
     Memory: 2.5M
        CPU: 42ms
     CGroup: /system.slice/nginx.service
             ??144987 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??144988 nginx: worker process

Dec 11 08:00:04 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 11 08:00:04 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Dec 11 08:00:04 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Hubungkan ke Repositori Git Dari Klien

Pada titik ini, server HTTP Git sudah diatur dengan Nginx. Sekarang, saatnya menghubungkannya dari mesin klien dan mengujinya.

Pertama, instal paket Git pada mesin klien menggunakan perintah berikut:

apt-get install git -y

Selanjutnya, buat direktori untuk proyek Anda dengan perintah berikut:

mkdir project

Selanjutnya, navigasikan ke direktori proyek Anda dan inisialisasi Git menggunakan perintah di bawah ini:

cd project
git init

Selanjutnya, konfigurasikan Git menggunakan email dan nama pengguna Anda:

git config --global user.email "[email protected]"
git config --global user.name "user1"

Selanjutnya, tambahkan server HTTP Git Anda menggunakan perintah berikut:

git remote add origin http://[email protected]/user1.git

Selanjutnya, buat direktori bernama dev01 dan tambahkan file di dalamnya:

mkdir dev01
echo "This is my first application" > dev01/file1

Selanjutnya, tambahkan direktori dan file yang Anda buat ke repositori Git:

git add .

Selanjutnya, komit perubahan dengan perintah berikut:

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

Anda akan mendapatkan output berikut:

[master (root-commit) 0299d83] Add files and directories
 1 file changed, 1 insertion(+)
 create mode 100644 dev01/file1

Selanjutnya, unggah file dan direktori Anda ke server HTTP Git menggunakan perintah berikut:

git push origin master

Anda akan diminta untuk memberikan kata sandi Anda untuk mengakses server Git:

Password for 'http://[email protected]': 

Setelah Anda terhubung, Anda akan mendapatkan output berikut:

Counting objects: 4, done.
Writing objects: 100% (4/4), 281 bytes | 281.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To http://git.yourdomain.com/user1.git
 * [new branch]      master -> master

Anda juga dapat mengunduh repositori Anda dari server Git secara langsung menggunakan perintah berikut:

git clone http://[email protected]domain.com/user1.git

Anda akan mendapatkan output berikut:

Cloning into 'user1'...
Password for 'http://[email protected]': 
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.

Kesimpulan

Dalam panduan di atas, Anda telah mempelajari cara menyiapkan server HTTP Git dengan Nginx di Debian 11. Kini Anda dapat menerapkan penyiapan ini ke lingkungan pengembangan lokal dan mengelola serta melacak proyek Anda menggunakan baris perintah.


Debian
  1. Cara Menginstal HTTP Git Server Dengan Nginx di Ubuntu 16.04

  2. Cara Menginstal HTTP Git Server dengan Nginx di Ubuntu 20.04

  3. Cara Menginstal Ghost di Debian dengan Nginx

  1. Cara menginstal DokuWiki di Debian Wheezy dengan Nginx

  2. Cara menginstal FuelPHP dengan Nginx di Debian 8 VPS

  3. Cara Menginstal WonderCMS dengan Nginx di Debian 11

  1. Cara Menginstal Git di Debian 9

  2. Cara Menginstal WonderCMS dengan Nginx di Debian 9

  3. Cara Menginstal HTTP Git Server dengan Nginx di Ubuntu 18.04 LTS