Labels

Cari di blog ini

Development heroicbit

Git Push Langsung ke Server Production

Silakan Ngomen

 Waktu jaman shared hosting dimana kami belum sanggup buat beli VPS, ada software penyelamat yaitu git-ftp buat ngepush project ke shared hosting via protokol ftp, karena pada saat itu shared hosting belum pada mendukung git. Dibanding kalau harus upload manual via FileZilla yang malesin banget, git-ftp adalah solusi. 


Kian kemari udah biasa pakai VPS karena harganya udah pada murah juga, kami bisa pakai git pull buat ngepull project. Proses deployment lebih cepet daripada pakai git-ftp. Tapi kami jadi harus login ssh dulu ke server.


Maka kemudian kami bikin script buat autopull setiap kali ngepush ke server remote (github atau gitlab). Rada ribet juga ini karena kadang suka masalah sama user permission. Suka lupa juga cara setupnya karena metodenya ga baku.


Asyik banget dulu waktu sempet main Heroku dan CloudFoundry, dimana kita tinggal git push ke heroku langsung kedeploy ke server production. Dan akhirnya ketemu juga caranya untuk bikin yang serupa ini. Sebenernya ini bukan ilmu baru. Cuma baru sekarang aja keotakan buat memahaminya hehe..


Caranya adalah dengan membuat bare repo di server production. Oh iya seingatku dulu rada ribet juga sih buat setup seperti ini karena harus bikin user git dulu di servernya, dst. Sekarang kita bisa akses bare repo via protokol ssh aja.


Langkah-langkah

Seperti biasa, bikin repo dulu di lokal. Lalu sambungkan dengan remote server di github atau gitlab.


Kemdian login ssh ke server, lalu bikin bare repo dari remote server:

sudo mkdir /repos
sudo chmod 775 /repos
sudo chown $USER:$USER /repos
cd /repos
git clone --bare git@github.com:heroicbit/heroicbit.git


Sampai sini dia belum langsung bisa dipake, karena cloning bare repo itu ga kayak clone biasa dimana kita bisa langsung lihat penampakan file-file project kita. Ini seperti kita bikin repo remote di github. Dengan demikian kita punya repository yang bisa diakses sebagai remote repo melalui ssh://usernameserver@IP.SERVER/repos/heroicbit.git


Kita daftarkan remote repo tersebut ke project di local, dengan perintah:

git remote add production ssh://usernameserver@IP.SERVER/repos/heroicbit.git

Nama remote servernya bebas, bisa production, live, dev, staging, dan sebagainya. Jangan pakai origin karena origin kan sudah kita pakai untuk remote repo github.


Kembali ke server, kita harus buat satu file hook supaya kalau ada push ke repo ini file-file projectnya kita pasang di tempat kita ingin memasang project kita supaya bisa diakses online. Biasanya di /var/www.

Masuk ke folder reponya lalu buat file post-receive di folder hooks:

cd /repos/heroicbit.git

nano hooks/post-receive

Masukkan kode berikut:

#!/bin/sh
git --work-tree=/var/www/heroicbit checkout -f main

Lalu set executable filenya:

sudo chmod +x hooks/post-receive


Done!

Next time kita mau deploy, kita tinggal jalankan perintah (dari folder project di komputer local):

git push production

Nantinya update file project kita akan otomatis terpasang di folder /var/www/heroicbit.


0 tanggapan:

Posting Komentar

terima kasih sebelumnya untuk tanggapannya ^_^