Semua Panduan VPSTutorial LinuxDocker & DevOpsOtomasi & AIWebsite & WordPressTips Hemat Server
ContaPoDβ€ΊDeploy Website Pertama di VPS KVM NVMe Jakarta,
Tutorial Linux

Deploy Website Pertama di VPS KVM NVMe Jakarta, Mulai Rp10.000/Bulan

✍️ Mirda Safitriyani πŸ“… 2 November 2026 ⏱️ 8 mnt baca πŸ‘οΈ 0Γ—
Deploy Website Pertama di VPS KVM NVMe Jakarta, Mulai Rp10.000/Bulan

Banyak pemula mengira VPS itu mahal dan rumit, sehingga mereka bertahan di hosting yang lambat bertahun-tahun. Kenyataannya, server virtual dengan disk NVMe di Jakarta kini bisa dimulai dari Rp10.000 per bulan, kurang dari harga segelas kopi. Yang membuatnya terasa sulit hanyalah ketidaktahuan soal langkah pertama. Artikel ini menutup celah itu lewat satu studi kasus lengkap, dari server kosong sampai website hidup dengan HTTPS.

Catatan: studi kasus ini adalah skenario ilustratif yang disusun dari kondisi umum pemula. Angka-angkanya adalah hasil pengujian pada setup yang dijelaskan, bukan klaim performa yang pasti sama di semua paket atau beban kerja.

Konteks: Raka dan Website Portofolio yang Lamban

Raka adalah freelance desainer web di Yogyakarta. Ia punya satu website portofolio berisi halaman statis, galeri proyek, dan formulir kontak sederhana. Selama dua tahun, situs itu berjalan di paket shared hosting murah dengan server berlokasi di luar negeri.

Masalahnya mulai terasa saat ia mengirim tautan portofolio ke calon klien. Halaman utama butuh hampir empat detik untuk tampil di ponsel dengan sinyal biasa. Dua calon klien bahkan menyebut situsnya "agak berat dibuka". Bagi seorang desainer, itu memalukan.

Raka tidak butuh server raksasa. Ia butuh tiga hal: lokasi server dekat dengan pengunjung Indonesia, penyimpanan cepat, dan kendali penuh atas konfigurasi supaya bisa belajar sekaligus menghemat biaya.

Tantangan: Takut Terminal, Takut Salah Bayar, Takut Diretas

Saat mempertimbangkan VPS, Raka punya tiga kekhawatiran yang sangat umum di kalangan pemula:

  • Takut terminal. Ia belum pernah login SSH dan tidak tahu harus mengetik apa.
  • Takut pembayaran ribet. Ia tidak punya kartu kredit, hanya e-wallet dan mobile banking.
  • Takut keamanan. Ia pernah membaca bahwa server baru bisa diserang bot dalam hitungan menit setelah menyala.

Kekhawatiran ketiga itu valid. Server dengan IP publik memang segera menerima percobaan login otomatis. Karena itu, langkah keamanan dasar masuk ke dalam tutorial ini sejak awal, bukan sebagai tambahan di akhir.

Solusi: Deploy Langkah demi Langkah

Raka memilih paket VPS KVM NVMe di Jakarta dari ContaPoD dengan pembayaran QRIS. Server aktif otomatis setelah pembayaran terkonfirmasi, jadi tidak ada menunggu verifikasi manual. Berikut urutan yang ia jalankan. Spesifikasi paket Rp10.000 dapat berbeda dari waktu ke waktu, jadi cek halaman produk untuk detail RAM dan CPU terbaru.

Langkah 1: Pesan server dan pilih sistem operasi

Raka memilih Ubuntu 24.04 LTS karena dokumentasinya paling banyak dan dukungan keamanannya panjang. Setelah membayar lewat QRIS, ia menerima alamat IP, nama pengguna, dan kata sandi awal. Virtualisasi KVM berarti sumber daya server dialokasikan terisolasi, sehingga performanya lebih konsisten dibanding virtualisasi yang berbagi kernel.

Langkah 2: Login pertama dan update sistem

Dari terminal laptop (Windows 11, macOS, dan Linux semuanya sudah punya klien SSH bawaan), Raka login sebagai root lalu memperbarui paket.

# Ganti 203.0.113.10 dengan IP server Anda
ssh [email protected]

# Perbarui daftar paket dan terapkan patch keamanan
apt update && apt upgrade -y

Langkah 3: Buat pengguna non-root

Bekerja terus sebagai root adalah kebiasaan buruk. Satu salah ketik bisa menghapus sistem. Raka membuat pengguna biasa dengan hak sudo.

# Buat pengguna baru bernama deploy
adduser deploy

# Beri hak sudo
usermod -aG sudo deploy

Lalu ia membuat kunci SSH di laptopnya dan menyalinnya ke server, sehingga login tidak lagi bergantung pada kata sandi.

# Jalankan di LAPTOP, bukan di server
ssh-keygen -t ed25519 -C 'laptop-raka'
ssh-copy-id [email protected]

# Uji login dengan kunci
ssh [email protected]

Setelah login kunci berhasil, ia menonaktifkan login root dan login kata sandi. Lakukan ini hanya setelah memastikan login kunci bekerja, supaya Anda tidak terkunci di luar.

sudo nano /etc/ssh/sshd_config

# Ubah atau pastikan baris berikut:
# PermitRootLogin no
# PasswordAuthentication no

sudo systemctl restart ssh

Langkah 4: Aktifkan firewall

Firewall UFW cukup untuk kebutuhan pemula. Prinsipnya: tutup semua, buka hanya yang dipakai. Penting: izinkan SSH sebelum mengaktifkan firewall.

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'   # port 80 dan 443 (setelah Nginx terpasang)
sudo ufw enable
sudo ufw status verbose

Jika profil Nginx belum tersedia saat perintah ini dijalankan, pasang Nginx dulu di langkah berikutnya, lalu ulangi baris kedua.

Langkah 5: Pasang Nginx dan unggah website

Nginx dipilih karena ringan dan sangat cocok untuk server dengan RAM kecil. Situs Raka statis, jadi tidak perlu PHP atau database sama sekali. Ini keputusan penting: stack yang lebih sedikit berarti memori lebih lega dan permukaan serangan lebih kecil.

sudo apt install nginx -y

# Siapkan direktori situs dan beri kepemilikan ke pengguna deploy
sudo mkdir -p /var/www/portofolio
sudo chown -R deploy:deploy /var/www/portofolio

Dari laptop, Raka mengunggah folder situsnya dengan rsync. Perintah ini hanya mengirim file yang berubah, jadi pembaruan berikutnya jauh lebih cepat.

# Jalankan di LAPTOP, dari dalam folder proyek
rsync -avz --delete ./dist/ [email protected]:/var/www/portofolio/

Langkah 6: Konfigurasi server block Nginx

Buat file konfigurasi untuk domain Raka. Gantikan contoh.com dengan domain Anda.

server {
    listen 80;
    server_name contoh.com www.contoh.com;

    root /var/www/portofolio;
    index index.html;

    # Kompresi untuk teks agar transfer lebih kecil
    gzip on;
    gzip_types text/css application/javascript image/svg+xml application/json;

    # Cache aset statis selama 30 hari
    location ~* \.(css|js|png|jpg|jpeg|webp|svg|woff2)$ {
        expires 30d;
        add_header Cache-Control 'public, immutable';
    }

    location / {
        try_files $uri $uri/ =404;
    }
}

Simpan sebagai /etc/nginx/sites-available/portofolio, lalu aktifkan dan uji sebelum memuat ulang.

sudo ln -s /etc/nginx/sites-available/portofolio /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default

# Selalu uji sintaks sebelum reload
sudo nginx -t && sudo systemctl reload nginx

Langkah 7: Arahkan domain dan pasang HTTPS

Di panel DNS registrar, Raka membuat dua record A: satu untuk domain utama dan satu untuk www, keduanya menunjuk ke IP server. Propagasi biasanya selesai dalam beberapa menit hingga beberapa jam. Setelah domain mengarah, ia memasang sertifikat gratis dari Let's Encrypt memakai Certbot.

sudo apt install certbot python3-certbot-nginx -y

# Certbot akan mengubah konfigurasi Nginx dan mengatur redirect ke HTTPS
sudo certbot --nginx -d contoh.com -d www.contoh.com

# Pastikan pembaruan otomatis berjalan
sudo certbot renew --dry-run

Langkah 8: Perlindungan dan cadangan minimal

Dua tambahan murah yang sangat berharga: Fail2ban untuk memblokir IP yang berulang kali gagal login, dan swap kecil sebagai bantalan saat RAM menipis.

# Blokir otomatis IP yang brute-force SSH
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

# Swap 1 GB sebagai bantalan memori (jika belum ada)
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Untuk cadangan, Raka cukup menyimpan salinan folder situs di laptop dan repositori Git. Karena situsnya statis, memulihkan server dari nol hanya butuh mengulang langkah di atas dan menjalankan rsync sekali lagi.

Hasil: Angka Sebelum dan Sesudah

Raka mengukur situsnya sebelum dan sesudah pindah, memakai halaman yang sama, dari jaringan seluler yang sama di Yogyakarta, dengan rata-rata beberapa kali percobaan.

MetrikShared hosting lama (luar negeri)VPS KVM NVMe Jakarta
Waktu respons server pertama (TTFB)sekitar 780 mssekitar 90 ms
Waktu halaman utama tampil penuh (seluler)sekitar 3,9 detiksekitar 1,2 detik
Ukuran transfer halaman utamasekitar 2,4 MBsekitar 1,1 MB (gzip dan cache)
HTTPSBergantung paketAktif, perpanjangan otomatis
Biaya per bulanRp25.000 (paket diskon)Mulai Rp10.000
Kendali konfigurasiTerbatasPenuh (akses root via sudo)

Penurunan TTFB paling besar berasal dari jarak jaringan: server di Jakarta jauh lebih dekat ke pengguna Indonesia dibanding server di benua lain. Sisanya datang dari kompresi gzip, cache aset, dan disk NVMe yang membaca file hampir tanpa antrean. Perlu dicatat, untuk situs statis kecil, kenaikan terbesar memang terasa dari lokasi dan konfigurasi, bukan dari kekuatan CPU.

"Saya kira pindah ke VPS itu urusan orang yang sudah jago Linux. Ternyata yang saya butuhkan hanya daftar perintah yang urut dan sedikit keberanian untuk mengetik Enter." β€” Raka, desainer web (tokoh ilustratif)

Dalam dua minggu setelah pindah, Raka melaporkan dua hal. Pertama, tidak ada lagi komentar soal situs yang berat. Kedua, ia mulai memakai server yang sama untuk eksperimen lain, seperti halaman pendaftaran kecil dan uji coba aplikasi Node.js, tanpa menambah biaya besar.

Kesalahan Umum Pemula yang Bisa Anda Hindari

  1. Mengaktifkan firewall sebelum mengizinkan SSH. Akibatnya Anda terkunci dari server sendiri. Selalu jalankan ufw allow OpenSSH terlebih dahulu.
  2. Menonaktifkan login kata sandi sebelum menguji kunci SSH. Buka sesi terminal kedua untuk menguji login kunci sebelum menutup sesi pertama.
  3. Lupa menguji konfigurasi Nginx. Biasakan nginx -t sebelum reload agar situs tidak mati karena salah ketik.
  4. Memasang terlalu banyak layanan. Di RAM kecil, setiap layanan tambahan memakan memori. Pasang yang benar-benar dipakai.
  5. Mengabaikan pembaruan. Jadwalkan apt update && apt upgrade secara berkala, misalnya sebulan sekali.
  6. Tidak memeriksa DNS sebelum Certbot. Sertifikat gagal terbit jika domain belum mengarah ke IP server.

Kapan Rp10.000 Per Bulan Sudah Cukup, dan Kapan Perlu Naik

Paket entry-level ideal untuk situs statis, portofolio, landing page, blog kecil dengan generator statis, bot ringan, atau lingkungan belajar Linux. Pertimbangkan naik paket jika Anda mulai menjalankan database yang ramai, toko online dengan lalu lintas tinggi, atau beberapa aplikasi sekaligus. Tandanya jelas: penggunaan swap terus tinggi, perintah free -h menunjukkan memori hampir habis, atau waktu respons naik saat pengunjung banyak.

Kelebihan VPS adalah Anda bisa membaca tanda-tanda itu sendiri. Dua perintah berikut cukup untuk memantau kondisi dasar.

# Penggunaan memori dan swap
free -h

# Proses yang paling banyak makan sumber daya
top -o %MEM

Mulai dari Hal Kecil, Ukur Hasilnya

Inti dari studi kasus ini sederhana: Raka tidak mengubah desain situsnya sama sekali. Ia hanya memindahkannya ke lokasi yang lebih dekat, di disk yang lebih cepat, dengan konfigurasi yang ia pahami sendiri. Hasilnya terukur, biayanya turun, dan yang terpenting, ia punya keterampilan yang bisa dipakai ulang di proyek berikutnya.

Jika Anda siap mencoba, siapkan tiga hal: sebuah domain, laptop dengan terminal, dan aplikasi pembayaran yang mendukung QRIS. Pilih paket, bayar, tunggu server aktif otomatis, lalu ikuti delapan langkah di atas satu per satu. Anda bisa mulai dari halaman ContaPoD dan menjadikan website pertama Anda berjalan di server sendiri tahun ini, 2026, dengan modal yang lebih kecil dari biaya parkir seminggu.

Pesan VPS mulai Rp10.000
Terapkan yang Anda baca langsung di ContaPoD.
Kunjungi ContaPoD β†—