Notification texts go here Contact Us Buy Now!

Cara Hosting/Deploy Hugo di Github

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:
1. Hosting ke direktori doc
2. Hosting ke cabang gh-pages
3. Hosting ke halaman personal/organisasi
4. Hosting Github dengan Continuous Integration (CI)
Kita akan mencoba cara yang nomer 3, karena menurut saya cukup gampang. Kita membutuhkan dua repositori untuk melakukan cara ini.
Repositori untuk menyimpan konten (opsional).
Repositori untuk menyimpan hasil render.
Mari kita mulai…

Membuat Repositori di Github

Buatlah dua repositori di Github dengan nama seperti berikut ini.
blog (opsional)
username.github.io atau organisasi.github.io
 Catatan: Saat membut repository, jangan centang “Initalize this repository with README.md” agar kosong..

Repositori blog berfungsi untuk menyimpan semua file Hugo (proyek hugo). Repository ini bisa kita gunakan untuk back-up.
Sementara repositori username.github.io untuk menyimpan file yang ada di public atau hasil render dari Hugo.
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:
cd blog
Inisialisasi Git:
git init
Hapus direktori public… tenang nanti kita bisa buat lagi dengan perntah
rm -rf public
Tambahkan repositori remote (github):
Untuk yang menggunakan HTTPS:
git remote add origin https://github.com/{username}/{nama-repo}.git
Untuk yang menggunakan SSH:
git remote add origin git@github.com:{username}/{nama-repo}.git
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.
git add . 
git commit -m "commit pertama" 
git push -u origin master
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:
git submodule add -b master https://github.com/{username}/{username}.github.io.git public
SSH:
git submodule add -b master git@github.com:{username}/{username}.github.io.git public

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
hugo
push ke repository
cd public 
git add . 
git commit -m "tes Deploy hugo" 
git push -u origin master
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
hugo
Push ke repository
cd public 
git add . 
git commit -m "tes Deploy hugo" 
git push -u origin master
Nah biar tidak repot, kita bisa bungkus perintah-perintah tersebut ke dalam sebuah file skrip.
#!/bin/bash 
echo -e "\033[0;32mDeploying updates to GitHub...\033[0m" 

# Genterate file statis hugo 
# if using a theme, replace by `hugo -t <yourtheme>`

# pindah ke direktoru publik
cd public 

# tambahkan perubahan ke Git 
git add -A 

# Buat sebuah commit baru 
msg="rebuilding site `date`" 
if [ $# -eq 1 ] 
 then msg="$1" 
fi 
git commit -m "$msg" 

# Push atau puload ke Github 
git push origin master 

# Balik ke direktori sebelumnya 
cd ..
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.
chmod +x deploy.sh
Nah, kita bisa melakukan deploy dengan skrip tersebut. Setiap kali kita ingin meng-update blog, kita cukup menjalankan skrip itu saja.

Kita juga bisa menambahkan pesan commit-nya:
./deploy.sh "tes deploy web hugo ke github"
Tunggulah beberapa saat, website kita akan segera mengudara di username.github.io Cara ini saya gunakan di blog saya: enohbadri.github.io

About the Author

An ordinary people

Posting Komentar

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.