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?
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:

Kemudian tambahkan A record denga ketentuan:
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:
sudo pacman -Syy nginx ddclient
Selanjutnya kita konfigurasi ddclient:
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:
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)
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:

Keterangan:
Kalau sudah beres semua, tinggal cek deh. Ini aku coba cek dari HP pakai koneksi Indosat:

Selesai.