Hosting Website di Rumah

Hosting Website di Rumah

Hosting website di rumah? Memang bisa? Bisa dong dengan cara memanfaatkan dynamic dns dan port forwarding. Artikel kali ini akan membahas cara hosting website di rumah dan dapat diakses dari manapun dengan domain.

Syarat hosting website apa saja?

  1. Web server, aku akan pakai nginx untuk contoh.
  2. IP address public dari ISP, nanti akan aku pakai untuk A record domain. Disini aku pakai ISP Indihome.
  3. Domain, biar kita bisa akses website kita pakai nama, gak hafalan IP. Disini aku pakai subdomain laptop.sumarsono.com untuk demo.

Masalahnya adalah ISP untuk rumahan tidak memberikan IP address public static (kecuali kita beli). IP Address yang berubah-ubah tentu merepotkan kita, masa iya setiap kita mau akses website kita harus cek public IP, kalau di rumah mah enak tinggal cek aja, lah kalau kita lagi di luar kota? Repot. Disini kita butuh yang namanya DDNS (Dynamic DNS), DNS dengan record yang dinamis. Kita juga butuh port forward dari router untuk forward port 80/443 dari luar ke web server.

Aku beli domain sumarsono.com di namecheap.com. Dari namecheap aku dapat fitur free ddns. Untuk mengaktifkan ddns di namecheap, kita hanya perlu login ke dashboard kemudian masuk ke menu advance, cari dynamic dns dan aktifkan, catat password yang muncul karena akan kita pakai. Lihat gambar berikut:

gh-webhook.png

Kemudian tambahkan A record denga ketentuan:

  • Type: A record+Dynamic DNS Record
  • Host: laptop
  • Value: 127.0.0.1 (ini dummy aja gpp, nantinya akan otomatis berubah sesuai dengan IP public yang kita dapat dari ISP)

Konfigurasi DDNS di namecheap sudah selesai, selanjutnya menyiapkan web server dan dynamic dns client. Dalam demo ini aku pakai laptop dengan OS Manjaro, untuk distro linux lain silakan menyesuaikan. Pertama kita install paket yang dibutuhkan:

1
sudo pacman -Syy nginx ddclient

Selanjutnya kita konfigurasi ddclient:

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo nano /etc/ddclient/ddclient.conf

# tambahkan konfigurasi berikut ini:

##
## NameCheap (namecheap.com)
##
 use=web, web=dynamicdns.park-your-domain.com/getip
 protocol=namecheap,                            \
 server=dynamicdns.park-your-domain.com,        \
 login=sumarsono.com,                   \
 password=password-ddns-dari-namecheap              \
 laptop

Keterangan:

yang perlu kalian sesuaikan adalah login, password, dan laptop. laptop disini adalah subdomain yang akan aku pakai, yang tadi sudah di set di namecheap.

Untuk nginx tidak akan saya konfigurasi karena cuma demo yang penting jalan.

Langkah selanjutnya adalah enable ddclient dan nginx:

1
2
sudo systemctl enable --now nginx
sudo systemctl enable --now ddclient

Kemudian cek ip dari laptop.sumarsono.com apakah sudah sama dengan public ip dari isp (disini ip 127.0.0.1 yang tadi kita masukan mestinya sudah berubah jadi ip public isp)

1
2
drill laptop.sumarsono.com
curl ifconfig.co

Langkah terakhir, aktifkan port forwarding di router. HTTP selalu 80, dan HTTPS selalu 443. Login ke router indihome, masuk menu Forward Rules > Port Mapping Configurations, klik tombol new. Buat konfigurasi seperti gambar berikut:

gh-webhook.png

Keterangan:

  • internal host: IP addr laptop yang ada nginx nya
  • Protocol: TCP
  • Port: 80 untuk http dan 443 untuk https

Kalau sudah beres semua, tinggal cek deh. Ini aku coba cek dari HP pakai koneksi Indosat: gh-webhook.png

Selesai.