GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal HTTP Git Server dengan Nginx di Ubuntu 18.04 LTS

Git adalah sistem kontrol versi sumber terbuka dan gratis yang dapat digunakan untuk melacak perubahan kode. Git memungkinkan Anda membuat banyak repositori untuk aplikasi yang sama dan mengoordinasikan pekerjaan pada file-file itu di antara banyak orang. Ini terutama digunakan untuk manajemen kode sumber dalam pengembangan perangkat lunak.

Pada artikel ini, kita akan mempelajari cara menginstal HTTP Git Server Dengan Nginx di Ubuntu 18.04 LTS (Bionic Beaver).

Persyaratan

  • Server Ubuntu 18.04 baru diinstal pada sistem Anda.
  • Pengguna Sudo dengan hak akses root.
  • Alamat IP statis dikonfigurasi di server Anda, saya menggunakan IP 192.168.1.100 dalam tutorial ini.

1 Memulai

Sebelum memulai, Anda perlu memperbarui sistem Anda dengan versi stabil terbaru.

Anda dapat melakukannya dengan menjalankan perintah berikut:

sudo apt-get update -y
sudo apt-get upgrade -y

Setelah sistem Anda diperbarui, mulai ulang sistem Anda dan masuk dengan pengguna sudo.

2 Instal Paket yang Diperlukan

Pertama, Anda perlu menginstal beberapa paket yang diperlukan termasuk nginx, git, nano, dan fcgiwrap ke sistem Anda. Anda dapat menginstal semuanya dengan menjalankan perintah berikut:

sudo apt-get install nginx git nano fcgiwrap apache2-utils -y

Setelah semua paket yang diperlukan diinstal, Anda perlu membuat direktori untuk repositori Git. Anda dapat melakukannya dengan menjalankan perintah berikut:

sudo mkdir /var/www/html/git

Selanjutnya, berikan izin yang tepat ke direktori Git:

sudo chown -R www-data:www-data /var/www/html/git

Setelah selesai, Anda dapat melanjutkan untuk mengkonfigurasi server web Nginx.

3 Konfigurasi Nginx

Pertama, Anda perlu mengonfigurasi Nginx untuk meneruskan lalu lintas Git ke Git. Anda dapat melakukannya dengan mengedit file konfigurasi default Nginx:

sudo nano /etc/nginx/sites-available/default

Ubah file seperti gambar di bawah ini:

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;


        root /var/www/html/git;

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

        server_name _;

        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; # Git pushes can be massive, just to make sure nginx doesn't suddenly cut the connection add this.
    auth_basic "Git Login"; # Whatever text will do.
    auth_basic_user_file "/var/www/html/git/htpasswd";
    include /etc/nginx/fastcgi_params; # Include the default fastcgi configs
    fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; # Tells fastcgi to pass the request to the git http backend executable
    fastcgi_param GIT_HTTP_EXPORT_ALL "";
    fastcgi_param GIT_PROJECT_ROOT /var/www/html/git; # /var/www/git is the location of all of your git repositories.
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param PATH_INFO $1; # Takes the capture group from our location directive and gives git that.
    fastcgi_pass  unix:/var/run/fcgiwrap.socket; # Pass the request to fastcgi
}

}

Simpan dan tutup file setelah Anda selesai. Kemudian uji Nginx untuk menemukan kesalahan konfigurasi dengan perintah berikut:

sudo nginx -t

Jika semuanya baik-baik saja, Anda akan melihat output berikut:

Selanjutnya, Anda perlu membuat akun pengguna yang perlu Anda gunakan untuk menelusuri komit ke repositori. Anda dapat membuat pengguna dengan nama hitesh dengan menggunakan utilitas htpasswd:

sudo htpasswd -c /var/www/html/git/htpasswd hitesh

Terakhir, restart Nginx untuk menerapkan semua perubahan dengan perintah berikut:

sudo systemctl restart nginx

Anda dapat memeriksa status server Nginx dengan perintah berikut:

sudo systemctl status nginx

Anda akan melihat output berikut:

4 Buat Repositori Git

Setelah semuanya dikonfigurasi dengan benar, saatnya membuat repositori Git.

Anda dapat membuat repositori dengan nama hitesh.git dengan perintah berikut:

cd /var/www/html/git
sudo mkdir hitesh.git
sudo cd hitesh.git
sudo git --bare init
sudo git update-server-info
sudo chown -R www-data.www-data .
sudo chmod -R 755 .

Selanjutnya, Anda harus mengizinkan layanan HTTP melalui firewall UFW. Secara default UFW dinonaktifkan pada sistem Anda, jadi Anda harus mengaktifkannya terlebih dahulu. Anda dapat mengaktifkannya dengan perintah berikut:

sudo ufw enable

Setelah firewall UFW diaktifkan, Anda dapat mengizinkan layanan HTTP dan SSH dengan menjalankan perintah berikut:

sudo ufw allow http
sudo ufw allow ssh

SSH tidak diperlukan untuk GIT, tetapi Anda harus mengaktifkannya agar dapat mengelola server Anda melalui SSH.

Sekarang Anda dapat memeriksa status firewall UFW dengan menjalankan perintah berikut:

sudo ufw status

Ok itu saja untuk konfigurasi sisi server. Sekarang Anda dapat beralih ke sisi klien untuk menguji Git.

5 Uji Git pada Mesin Klien

Sebelum memulai, Anda perlu menginstal git pada sistem klien. Anda dapat menginstalnya dengan perintah berikut:

sudo apt-get install git -y

Pertama, buat repositori lokal dengan perintah berikut:

sudo mkdir ~/testproject

Selanjutnya, ubah direktori menjadi 'testproject' dan mulai repositori jarak jauh baru dengan perintah berikut:

cd ~/testproject
git init
git remote add origin http://[email protected]/hitesh.git

Selanjutnya, buat beberapa file dan direktori dengan perintah berikut:

mkdir test1 test2 test3
echo "This is my first repository" > test1/repo1
echo "This is my second repository" > test2/repo2
echo "This is my third repository" > test3/repo3

Selanjutnya, jalankan perintah berikut untuk menambahkan semua file dan direktori ke repositori:

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

Anda akan melihat output berikut:

[master 002fac9] Add files and directories
 3 files changed, 3 insertions(+)
 create mode 100644 repo1
 create mode 100644 repo2
 create mode 100644 repo3

Selanjutnya, push semua file dan direktori ke server Git dengan perintah berikut:

git push origin master

Anda akan melihat output berikut:

Password for 'http://[email protected]': 
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (5/5), 422 bytes | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To http://[email protected]/hitesh.git
   68f1270..002fac9  master -> master

Sekarang, semua file dan direktori Anda telah di-commit ke server Git Anda.

Proses pembuatan repositori Git Anda sekarang telah selesai. Anda sekarang dapat dengan mudah mengkloning repositori Anda di masa mendatang. Anda dapat mengkloning repositori Anda menggunakan perintah berikut pada sistem jarak jauh:

git clone [email protected]:/var/www/html/git/hitesh.git

Anda akan melihat output berikut:

Cloning into 'hitesh'...
[email protected]'s password: 
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (3/3), done.
Receiving objects: 100% (8/8), 598 bytes | 0 bytes/s, done.
remote: Total 8 (delta 0), reused 0 (delta 0)
Checking connectivity... done.

Sekarang, ubah direktori ke repositori kloning dengan perintah berikut:

cd hitesh
tree

Anda akan melihat output berikut:

.
|-- test1
|   `-- repo1
|-- test2
|   `-- repo2
`-- test3
    `-- repo3

3 directories, 3 files

Unduh sebagai VM

Tutorial ini tersedia sebagai image mesin virtual siap pakai dalam format ovf/ova yang kompatibel dengan VMWare dan Virtualbox. Gambar mesin virtual menggunakan detail login berikut:

Masuk SSH / Shell

Nama pengguna:administrator
Kata sandi:howtoforge

Pengguna ini memiliki hak sudo.

Masuk GIT

Nama pengguna: hitesh
Sandi:howtoforge

IP VM adalah 192.168.1.100, dapat diubah di file /etc/netplan/01-netcfg.yaml. Harap ubah semua kata sandi di atas untuk mengamankan mesin virtual.

Kesimpulan

Saya harap Anda sekarang dapat dengan mudah mendorong, menarik, mengkloning, dan mengkomit kode sumber menggunakan server Git. Jangan ragu untuk mengomentari saya jika Anda ragu.

  • Ubuntu
  • Git

Ubuntu
  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 HTTP Git Server dengan Nginx di Debian 11

  1. Cara Menginstal Server RabbitMQ di Ubuntu 18.04 &16.04 LTS

  2. Cara Menginstal Server Gitlab di Ubuntu 18.04 &16.04 LTS

  3. Cara Menginstal Elgg dengan Nginx di Ubuntu 18.04

  1. Cara Menginstal Server Web Nginx di Ubuntu 18.04

  2. Cara Menginstal Nextcloud dengan Nginx di Ubuntu 18.04 LTS

  3. Cara Menginstal OpenLiteSpeed ​​HTTP Server dengan PHP di Ubuntu 18.04 LTS