Hosting VPS Blazor

Hosting Blazor Server di UpCloud dengan Nginx dan HTTPS

Gunakan panduan ini saat aplikasi Blazor Server kecil membutuhkan VPS Ubuntu sendiri, bukan platform terkelola. Panduan ini membahas pekerjaan utama: DNS, SSH, .NET, Nginx, TLS, restart layanan, cadangan, dan biaya berkelanjutan server.

Titik awalnya adalah server UpCloud sederhana dengan harga perkiraan Rp61.019/bulan. Ini bisa cukup untuk peluncuran produksi sederhana, asalkan Anda menjaga kebiasaan patching, pemantauan, rotasi log, dan rollback tetap sederhana dan konsisten.

Catatan promo UpCloud: Anda dan kami masing-masing mendapatkan kredit sebesar Rp508.492. Harga server bulanan Anda tidak bertambah karena tautan referral.

Jawaban cepat

Gunakan VPS saat kontrol lebih penting daripada kenyamanan platform

VPS UpCloud kecil cocok saat Anda menginginkan biaya stabil, akses Linux penuh, aturan Nginx khusus, log langsung, dan alur deployment yang bisa Anda tinjau. Tidak cocok jika Anda tidak ingin patch Ubuntu, memantau ruang disk, menguji cadangan, atau debug systemd di waktu yang tidak tepat.

Domain dan DNS Akses kunci SSH Nginx dengan TLS Anda mengelola operasional

Pemeriksaan kecocokan

VPS Blazor murah berguna hanya jika pekerjaan operasional dapat diterima

Harga server bukan satu-satunya pertimbangan. Hitung waktu untuk pembaruan, aturan firewall, sertifikat, pemulihan, log, pemantauan, dan kegagalan deploy sebelum memilih hosting sendiri untuk aplikasi produksi.

Cocok

Pilih jalur ini saat Anda menginginkan kontrol

  • Anda ingin kontrol penuh atas Nginx, systemd, SSH, log, file, dan versi runtime.
  • Aplikasi cukup ringan untuk mulai di VPS kecil dan skala nanti dari snapshot atau rebuild.
  • Anda mampu menangani update Ubuntu, aturan firewall, sertifikat, backup, pemulihan, dan monitoring.
  • Anda butuh biaya infrastruktur bulanan yang dapat diprediksi lebih dari kemudahan platform terkelola.
Tidak cocok

Pilih hosting terkelola saat operasional menjadi risiko

  • Tidak ada yang bertanggung jawab atas patching, backup, pengecekan uptime, tekanan disk, atau respons insiden.
  • Aplikasi butuh scaling terkelola, database terkelola, slot deploy, dan dukungan platform sejak hari pertama.
  • Rekan non-teknis harus bisa deploy dan pulihkan aplikasi tanpa menyentuh Linux.
  • Downtime singkat akan lebih mahal daripada tagihan hosting terkelola.

Sebelum pengaturan

Siapkan domain, DNS, SSH, .NET, Nginx, dan keputusan TLS terlebih dahulu

Sebagian besar kegagalan peluncuran VPS bukan karena Blazor. Biasanya karena DNS belum siap, akses SSH tidak jelas, port diblokir, jalur aplikasi diimprovisasi, atau sertifikat dibuat sebelum domain diarahkan ke server.

Prasyarat DNS

Arahkan DNS sebelum TLS

Buat record A atau AAAA untuk nama host akhir sebelum menjalankan Certbot. Validasi sertifikat butuh nama publik yang dapat resolve dengan benar.

Akses SSH

Gunakan kunci SSH dan user deploy

Mulai dengan akses berbasis kunci, hindari upload rutin root, dan tentukan pemilik direktori aplikasi sebelum rilis pertama.

Lingkungan runtime .NET

Pilih lokasi publishing

Pasang runtime ASP.NET Core di VPS. Tambahkan SDK .NET lengkap hanya saat sengaja membangun atau publish di server.

Rencana server

Mulai dengan server perkiraan Rp61.019/bulan hanya jika aplikasi sederhana

Rencana terkecil adalah dasar peluncuran, bukan jaminan. Cocok untuk lalu lintas rendah sampai sedang, aset statis di belakang Nginx, penggunaan database ringan di tempat lain, dan tim yang bisa meningkatkan kapasitas sebelum tekanan memori atau CPU terlihat pengguna.

Referensi rencana perkiraan Rp61.019
Gunakan untuk
Aplikasi produksi kecil, aplikasi staging, dashboard internal, prototipe dengan pengguna nyata, dan situs konten dengan lalu lintas rendah.
Hindari untuk
Aplikasi yang membutuhkan memori besar, pekerjaan latar belakang yang berat, database lokal besar, lonjakan lalu lintas tinggi, atau tim tanpa waktu pemeliharaan server.
Sinyal peningkatan
Skalakan saat penggunaan swap, saturasi CPU, keterlambatan antrean, atau frekuensi restart terlihat di log dan waktu respons pengguna.
01

Buat server

Pilih wilayah terdekat yang berguna, image Ubuntu bersih, kunci SSH, dan paket terkecil yang sesuai dengan risiko peluncuran Anda.

02

Kunci jaringan

Izinkan SSH, HTTP, dan HTTPS. Jaga agar database, dashboard, dan port aplikasi tetap privat kecuali ada alasan khusus.

03

Ambil snapshot awal

Ambil snapshot server setelah pengamanan dan sebelum deploy produksi pertama agar rebuild lebih cepat dan tidak stres.

04

Dokumentasikan rebuild

Simpan langkah DNS, paket, firewall, jalur aplikasi, nama layanan, dan sertifikat dalam runbook singkat.

Pengaturan server

Patch Ubuntu, jaga permukaan publik kecil, dan pasang .NET dengan sengaja

Mulai dari image Ubuntu bersih. Terapkan pembaruan, jaga timestamp konsisten, pasang hanya paket yang diperlukan, dan buka hanya SSH, HTTP, serta HTTPS. SDK opsional jika Anda publish dari workstation atau CI.

Paket dasar

Shell
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget unzip apt-transport-https ca-certificates gnupg
sudo timedatectl set-timezone UTC

Firewall dan fail2ban

Shell
sudo apt install -y ufw fail2ban
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo systemctl enable --now fail2ban

Paket .NET

Shell
wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt update
sudo apt install -y aspnetcore-runtime-8.0

Alur deploy

Publish lokal, unggah dengan teratur, dan biarkan systemd mengelola proses aplikasi

Untuk server kecil, deploy manual paling aman adalah sederhana: buat output Release, unggah ke direktori yang diketahui, jalankan aplikasi sebagai pengguna khusus, dan biarkan systemd mengatur restart dan log.

Publish dan unggah

Shell
# Build locally
dotnet publish -c Release -o publish

# Copy to UpCloud (replace user@host)
rsync -avz --delete publish/ user@YOUR_UPCLOUD_IP:/var/www/blazor-app/releases/current/

# On the server, set ownership
sudo useradd -m -s /bin/bash blazorapp || true
sudo chown -R blazorapp:blazorapp /var/www/blazor-app

Layanan systemd

systemd
[Unit]
Description=Blazor Server on UpCloud
After=network.target

[Service]
User=blazorapp
WorkingDirectory=/var/www/blazor-app/releases/current
ExecStart=/usr/bin/dotnet /var/www/blazor-app/releases/current/YourApp.dll --urls http://127.0.0.1:5001
Restart=always
RestartSec=5
Environment=ASPNETCORE_URLS=http://127.0.0.1:5001

[Install]
WantedBy=multi-user.target

Nginx dan TLS

Letakkan Kestrel di belakang Nginx dan jadikan HTTPS satu-satunya jalur publik

Kestrel harus mendengarkan di localhost. Nginx menerima trafik publik, mengarahkan HTTP ke HTTPS, mengakhiri TLS, meneruskan host dan protokol asli, serta menjaga URL tetap stabil untuk pengguna dan mesin pencari.

Proxy terbalik Nginx

nginx
server {
    listen 80;
    listen [::]:80;
    server_name app.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name app.example.com;

    ssl_certificate     /etc/letsencrypt/live/app.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;

    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

    location / {
        proxy_pass         http://127.0.0.1:5001;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection "keep-alive";
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

Perintah Certbot

Shell
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d app.example.com --redirect --agree-tos -m [email protected]
sudo certbot renew --dry-run

Operasional

Jaga biaya tetap jujur dengan merencanakan pemeliharaan sebelum trafik datang

Tagihan VPS bulanan dapat diprediksi. Namun, biaya operasional tidak akan terduga kecuali Anda menjadikannya rutinitas: jadwal pemeliharaan untuk patching, pengecekan pembaruan sertifikat, rotasi log, peringatan disk, snapshot, uji pemulihan, dan proses rollback singkat untuk rilis yang gagal.

Pembaruan Ubuntu

Patch sesuai jadwal

Jalankan pembaruan paket saat jendela terencana, lalu periksa layanan Blazor, status Nginx, dan jalur perpanjangan sertifikat.

Restore backup

Uji restore, bukan hanya pembuatan snapshot

Snapshot berguna hanya jika Anda sudah pernah melakukan restore. Simpan file aplikasi, rahasia, dan backup database dalam rencana pemulihan.

Log server

Pantau kegagalan tersembunyi

Gunakan journalctl, log Nginx, peringatan disk, dan cek uptime agar deploy gagal atau trafik bot tidak tersembunyi.

Skalasi VPS

Skalakan sebelum pengguna merasakannya

Pindah ke paket lebih besar, pisah layanan, tambah CDN, atau clone dari snapshot sebelum tekanan memori menyebabkan downtime.

Realitas SEO

Hosting hanya bantu SEO jika dasar-dasarnya stabil

VPS tidak otomatis menaikkan peringkat. VPS membantu jika menyediakan URL stabil, respons awal cepat, pengalihan HTTPS yang benar, metadata bersih, JSON-LD yang sesuai, dan downtime lebih sedikit dibanding solusi murah yang Anda gunakan sebelumnya.

01

Redirect HTTPS

Redirect HTTP sekali saja, jaga sertifikat tetap diperbarui, dan hindari aset konten campuran yang membuat halaman terlihat rusak.

02

URL stabil

Gunakan rute yang mudah dibaca, jaga konsistensi URL kanonik, dan hindari jalur deploy yang berubah setiap rilis.

03

Performa VPS

Ukur TTFB, cache aset statis lewat Nginx, kompres respons, dan buat halaman pertama dimuat dengan cepat tanpa gangguan.

04

Metadata SEO

Jaga agar judul, H1, deskripsi, gambar Open Graph, skema Artikel, BreadcrumbList, dan FAQPage sesuai dengan konten yang terlihat.

Opsi otomatisasi

Gunakan GhostlyHosting saat pengulangan setup manual berisiko

Setup manual berguna untuk memahami setiap bagian. Jika sudah paham stack dan ingin jalur deploy berulang yang terarah, GhostlyHosting dapat mengotomatisasi workflow Ubuntu, Nginx, SSL, GitHub, dan manajemen layanan.

Pertanyaan umum

Bisakah saya hosting Blazor Server di UpCloud dengan biaya perkiraan Rp61.019/bulan?

Bisa, untuk aplikasi sederhana dengan ekspektasi yang realistis. Paket awal dapat menangani peluncuran kecil, lingkungan staging, atau alat internal, tapi Anda tetap butuh monitoring, backup, patching, dan rencana skalasi.

Apakah saya perlu menginstal .NET SDK lengkap di VPS?

Biasanya tidak. Instal runtime ASP.NET Core saat Anda publish dari workstation atau CI. Instal SDK hanya jika server sengaja membangun atau mem-publish aplikasi.

Haruskah Kestrel langsung terbuka ke internet?

Tidak. Bind Kestrel ke localhost dan buka Nginx di port 80 dan 443. Nginx yang mengelola TLS, redirect, header proxy, dan URL publik.

Apa risiko terbesar hosting Blazor VPS murah?

Risiko umum adalah paket tidak terpatch, sertifikat kadaluarsa, kebiasaan SSH yang lemah, backup hilang, tekanan disk, log berisik, dan tidak ada yang sadar saat layanan sering restart.

Apakah hosting VPS meningkatkan SEO Blazor?

Hanya jika setup memperbaiki dasar: URL HTTPS stabil, respons cepat, metadata bersih, JSON-LD cocok, uptime, dan redirect yang dapat diprediksi. Hosting saja bukan jalan pintas SEO.

Kapan saya harus menggunakan GhostlyHosting daripada setup manual?

Gunakan setup manual untuk belajar atau audit stack. Gunakan GhostlyHosting jika ingin workflow Ubuntu, Nginx, SSL, GitHub, dan manajemen layanan yang bisa diulang setelah paham bagian-bagiannya.