Membuat Git Server Lokal
Assalamualaikum wr wb. Alhamdulillah hari ini masih diberikan kesempatan untuk menulis sesuatu di sini. Untuk kesempatan kali ini, saya akan membagikan cara membuat git server lokal. Git server lokal maksudnya git server yang bisa diakses di dalam jaringan lokal. Ini bisa digunakan misalnya untuk menyimpan data yang bisa diakses oleh para pegawai. Di sini saya akan menggunakan Fedora Server yang telah saya setup di VMware pada tutorial sebelumnya. Perlu dicatat bahwa tulisan ini sebagian besar disadur dari buku Pro Git khususnya chapter 4.4. Berikut adalah cara untuk melakukan setup git servernya:
- Buat terlebih dahulu akun baru, yaitu
git
pada server dan jangan lupa untuk memberikan password pada akun tersebut:
$ sudo useradd -k git
$ sudo passwd git
- Selanjutnya, install
git
:
$ sudo dnf -y install git
- Kemudian login sebagai user
git
menggunakan perintahsu
dan pindah ke direktori home usergit
:
$ su git
$ cd ~
- Buat sub direktori untuk menyimpan ssh public key dan atur permissionnya sehingga hanya bisa diakses oleh user
git
:
$ mkdir .ssh && chmod 700 .ssh
- Selanjutnya buat file
authorized_keys
dan isi dengan public key dari semua user yang akan menggunakan repositorigit
(misalnya contoh ini menggunakan public key dengan tipe ed25519). Setelah itu jangan lupa mengatur permission filenya menjadi600
:
$ echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGMVQJR1M2wMataA5vVBt1Y+AhshYwpBuqWnFQkB35vC' > ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
- Setelah itu, buat repositori yang nantinya akan digunakan oleh user:
$ mkdir ~/project.git && cd $_
$ git init --bare
Initialized empty Git repository in /home/git/project.git/
- Dari sini, setiap user sudah dapat menambahkan repositori tersebut sebagai remote repositori. Tapi perlu diingat bahwa jika ingin menambahkan repositori maka terlebih dahulu harus login ke server
git
tersebut. Adapun cara menambahkan repositori yang sudah dibuat pada langkah sebelumnya sebagai remote repositori pada PC user (misalnya PC operator) adalah sebagai berikut:
$ whoami
operator2
$ mkdir ~/myproject && cd $_
$ git init
$ git add .
$ git commit -m 'Initial commit'
$ git remote add origin git@kantor:/home/git/project.git
$ git push origin master
- Dan user lain (misalnya PC data2) dapat melakukan cloning, melakukan perubahan lalu push perubahannya ke server:
$ whoami
data2
$ git clone git@kantor:/home/git/project.git
$ cd project
$ echo "Daftar Anak Tidak Sekolah" > README.txt
$ git commit -am "Tambahan informasi"
$ git push origin master
- Karena user
git
pada server masih menggunakan default shell yang ada pada server, maka sebaiknya shell usergit
diganti dengangit-shell
. Caranya adalah dengan terlebih dahulu memeriksa shell apa saja yang tersedia pada server, lalu mengganti default shell usergit
:
$ cat /etc/shells # lihat isi file /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
$ which git-shell # cari tahu lokasi git-shell
/usr/bin/git-shell
$ sudo -e /etc/shells # tambahkan /usr/bin/git-shell pada file /etc/shells
$ sudo chsh git -s $(which git-shell) # ganti default shell user git
- Langkah terakhir adalah menambahkan opsi pada file
authorized_keys
pada sub direktori.ssh
usergit
. Hal itu dilakukan untuk membatasi user yang dapat mengakses akungit
:
$ cat ~/.ssh/authorized_keys
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGMVQJR1M2wMataA5vVBt1Y+AhshYwpBuqWnFQkB35vC
Sampai di sini, git server sudah dapat digunakan oleh user di dalam jaringan. Sekian dan sampai jumpa pada tulisan selanjutnya, wassalam.