Membuat Git Server Lokal

Riri Maiyuliani
3 min readOct 1, 2024

--

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 perintah su dan pindah ke direktori home user git:
$ 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 repositori git (misalnya contoh ini menggunakan public key dengan tipe ed25519). Setelah itu jangan lupa mengatur permission filenya menjadi 600:
$ 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 user git diganti dengan git-shell. Caranya adalah dengan terlebih dahulu memeriksa shell apa saja yang tersedia pada server, lalu mengganti default shell user git:
$ 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 user git. Hal itu dilakukan untuk membatasi user yang dapat mengakses akun git:
$ 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.

--

--

Riri Maiyuliani
Riri Maiyuliani

Written by Riri Maiyuliani

Dinas Pendidikan dan Kebudayaan Kabupaten Lima Puluh Kota

No responses yet