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.


beanstalk Development heroicbit queue

Cara Pakai Beanstalk untuk Queue di Heroicbit

Silakan Ngomen

HeroicBit CMS sudah disetup untuk langsung pakai sistem queue menggunakan Beanstalk. Library PHP yang digunakan adalah Pheanstalk.


Persiapan

Pertama-tama install dulu beanstalk di OS. Kalau pakai Ubuntu tinggal install aja pakai command sudo apt-get install beanstalkd. Lalu jalankan servicenya dengan perintah ./beanstalkd -l 10.0.1.5 -p 11300. Perintah ini nantinya akan perlu kamu set sebagai service.


Kalau mau nyoba di Windows, tinggal download aja https://github.com/caidongyun/beanstalkd-win. Harus install dulu cygwin terminal lalu jalankan servicenya dengan perintah ./beanstalkd.exe -l 127.0.0.1 -p 11300


Lalu pasang aplikasi beanstalk admin ini https://github.com/ptrofimov/beanstalk_console pasang di localhost PHP biar bisa mantau queuenya beneran masuk atau engga.


Menjalankan Consumer

Command untuk consumer sudah dibuat di class application/cli/Queue.php. Untuk menjalankan consumer tinggal jalankan melalui terminal perintah php cli command queue/consume/email -d domain.name. Perintah ini nantinya akan perlu kamu daftarkan sebagai service menggunakan pm2.


email pada command di atas adalah contoh nama tube yang ingin dipantau queuenya. Kode worker untuk queue email disimpan di application/cli/queueWorker/EmailWorker.php. Kode worker lainnya bisa dilihat di folder application/cli/queueWorker/, begitu pula kalau ingin membuat worker baru, simpan disitu.


Untuk menambahkan job ke queue cukup menuliskan satu baris kode             App\libraries\Beanstalk::produce('email', $payload);


Contoh penulisan job bisa dicek di application/controllers/Test.php method produce().


---

Referensi penyusunan modul: https://jtreminio.com/blog/queues-working-smart-faster-in-parallel/

belajar Kewirausahaan Mikir Mindset Pendidikan Refleksi Tafakur

Kepatuhan Hadir Karena Adanya Pemahaman

Silakan Ngomen

Suatu hari saya mengikuti gathering BP di sebuah hotel di Bandung. Pematerinya adalah mas Adrian Maulana dan Mas Ade Rai. Yang akan saya bahas ini adalah diantara hal penting yang membangun mindset baru buat saya.


Sebagai muslim kita mampu taat untuk menjalankan kewajiban agama. Beberapa diantaranya bahkan kita sudah lakukan meskipun kita tidak sadar kalau agama pun memerintahkan hal tersebut.


Contohnya, kita rajin mendirikan sholat wajib 5 waktu. Kenapa kita mau dan rajin melakukannya? Karena kita tau pentingnya menjalankan hal tersebut, karena kita paham akibatnya kalau tidak menjalankan. Kita paham mengapa kita perlu mendirikan sholat, makanya kita berusaha keras untuk konsisten melakukannya. Orang yang masih belum konsisten mendirikan sholat artinya belum paham.


Contoh lain yang lebih sederhana. Kita mungkin pernah begadang saat ada pekerjaan yang menuntut diselesaikan malam itu. Padahal kita ngantuk, tapi kita terus berupaya menyelesaikannya. Kita melakukannya karena kita paham kalau tidak selesai, akan ada akibat yang cukup fatal yang kita dapatkan. 


Tapi ada juga orang yang begadang cuma buat sekedar scroll scroll medsos. Ga ada manfaat yang signifikan yang bisa didapatkan dari bersosmed tengah malam, tapi dia terus saja begitu meskipun terkantuk-kantuk. Dia artinya tidak paham kalau tidur itu lebih penting daripada begadang ga jelas. Andaikata dia paham, tentulah dia akan memaksakan diri tidur apalagi kalau sudah ngantuk ketimbang begadang.


Ada orang giat bekerja ngantor jam 9-5. Serajin itu dia pulang-pergi kerja karena dia paham kalau ga maksimal kerjanya, dia bisa dapat teguran dari bosnya, yang imbasnya ke terancamnya karir dia di kantor tersebut. Andaikata dia tidak paham akan hal itu dan masuk kerja seenaknya, tentulah dia akan cepat dipecat.


Hubungannya dengan kesehatan, Mas Ade Rai melajutkan pembahasan. Kalau kita bisa sedemikan patuh pada ajaran agama, kewajiban bekerja, dan sebagainya, mengapa tidak kita juga patuh untuk rajin berolahraga. Kebanyakan orang malas berolahraga karena dia tidak paham pentingnya olahraga. Dia hanya sekedar tau kalau olahraga itu penting, tapi dia tidak benar-benar paham bagaimana bisa hal itu penting untuk kesehatannya.


Maka di satu jam setengah sesi itu mas Ade Rai fokus membangun pemahaman kepada kami para audiens tentang pentingnya olahraga. Bahkan saya sendiri, dengan pemahaman baru yang beliau tanamkan, membuat saya dengan senang hati dan bersemangat untuk konsisten berolahraga. Dan itu adalah pengalaman yang luar biasa.


Mindset yang penting yang mengatakan bahwa Kepatuhan Hadir Karena Adanya Pemahaman dapat diterapkan di berbagai aspek. Dan itu bisa menjadi patokan hidup kita bahwa, apapun yang ingin kita lakukan dalam hidup secara konsisten dan senang hati, maka kita harus terlebih dahulu menemukan pemahaman akan hal tersebut.

It's Time for New Chapter

Silakan Ngomen

Sayonara Blogger. Sepertinya New Chapter gw akan tertulis di Medium. Ga kenapa-napa. Biar satu aja yang diurus, ga banyak-banyak hehe.. Sepertinya untuk saat ini Medium lebih relevan untuk dipakai. No hard feeling. Udah ada banyak kenangan dan catatanku kutulis di platform ini. Ia akan tetap disini, tak akan kupindahkan ke Medium atau tempat lainnya.


Banyak hal yang perlu kusesuaikan untuk menuliskan chapter baru. Chapter apa yang dimaksud? Itu akan kubahas di Medium. Kamu boleh kunjungi https://toharyan.medium.com/


Sampai ketemu di sana. Bye!