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.
Tautan
- Ubuntu
- Git