Github memiliki layanan hosting Static Page yang bisa kita manfaatkan untuk
hosting Hugo. Pada dasarnya SSG seperti Hugo akan membuat sebuah file statis
yang (biasanya) berada di dalam direktori public. Nah direktori ini yang akan
kita upload ke Github agar website atau blog kita bisa dibuka melalui:
https://username.github.io
atau kustom domain sendiri.
Berdasarkan panduan di dokumentasi Hugo, ada empat cara yang bisa dilakukan
untuk hosting Hugo di Github:
Kita akan mencoba cara yang nomer 3, karena menurut saya cukup gampang. Kita
membutuhkan dua repositori untuk melakukan cara ini.
Mari kita mulai…Membuat Repositori di Github
Buatlah dua repositori di Github dengan nama seperti berikut ini.
Catatan: Saat membut repository, jangan centang “Initalize
this repository with README.md” agar kosong..
Semua file statis yang ada di repository username.github.io akan bisa diakses
melalui
https://username.github.i.o
Persiapkan Repositori Lokal
Setelah kita membuat repository kosong di Github, selanjutnya buatlah
repository baru di dalam proyek hugo dengan melakukan inisialisasi git.
Silahkan ikuti perintah berikut ini.
Masuk ke direktori Hugo:
Inisialisasi Git:
Tambahkan repositori remote (github):
Untuk yang menggunakan HTTPS: Untuk yang menggunakan SSH: Atau kalau tidak mau repot, URL-nya bisa di-copy dari repo Github-nya.
Hapus direktori public… tenang nanti kita bisa buat lagi dengan perntah
Masuk ke direktori Hugo:
Inisialisasi Git:
Tambahkan repositori remote (github):
Untuk yang menggunakan HTTPS: Untuk yang menggunakan SSH: Atau kalau tidak mau repot, URL-nya bisa di-copy dari repo Github-nya.
Upload ke Github
Repositori lokal sudah dipersiapkan, sekarang kita upload/push ke github.
Nah sekarang, semua file Hugo sudah dipublikasikan ke repository blog.
Tips: Buat yang mau menyimpan secara private, bisa belangganan akun
premium Github atau menggunakan layanan lain seperti Gitlab dan Bitbucket
Membuat Submodule
Kita sudah meng-upload semua file Hugo ke repository blog, namun blog
https://username.github.io
masih Error 404 Not Found. Kenapa bisa begini? Karena repository
username.github.io belum ada isinya. Untuk mengisinya, kita akan
membuatkan submodule dari repository inti (blog). Pastikan sedang berada
di repository blog, lalu ketik perintah berikut untuk menambahkan
submodule.
Tips: Jika kamu menggunakan HTTPS, maka kamu akan diminta password
disetiap kali nge-push ke Github, maka cobalah untuk menggunakan SSH.HTTPS: SSH:
Perintah tersebut akan melakukan clone repository username.github.io ke dalam direktori public.
Sekarang kita bisa mulai mempublikasikan web atau blognya. Silahkan ketik perintah berikut:
generate statc web
push ke repository
Perintah hugo akan menghasilkan sekumpulan file web statis di dalam direktori public. Setelah itu kita melakukan push ke repository username.github.io. Hal ini akan terus kita lakukan setiap kali kita mau update konten.Biar tidak repot, kita bisa membuatkan sktrip untuk perintah-perintah tersebut.
Membuat Skrip deploy.sh
Setiap kali kita mau update blog, kita harus melakukan upload atau push ke Github, dengan perintah-perintah ini:Generate statc web Push ke repository
Nah biar tidak repot, kita bisa bungkus perintah-perintah tersebut ke dalam sebuah file skrip. File skrip tersebut dapat kita simpan di dalam root direktory proyek Hugo. Sebagai contoh, kita simpan dengan dengan deploy.sh.
Setelah itu, berikan hak akses eksekusi untuk skrip ini. Nah, kita bisa melakukan deploy dengan skrip tersebut. Setiap kali kita ingin meng-update blog, kita cukup menjalankan skrip itu saja.