Skip to content
⚡ TENVO AI · LANGSUNG · v0.16.26 · TLS · Sertifikat per-perangkat · AGPL-3.0 · TINGKAT GRATIS · 30 PERANGKAT · INFRA HOSTING MANDIRI · GUNAKAN API KEY SENDIRI · MCP UNTUK CLAUDE & CURSOR
Kembali ke BlogTutorial

sunshine moonlight setup: self-host and maintain

Tenvo Editorial Team7 menit baca
sunshine moonlight setup: self-host and maintain

Jika Anda menginginkan akses jarak jauh ber-latensi rendah atau streaming game dari PC sendiri, Sunshine + Moonlight menarik: klien native lintas platform, latensi sangat baik, dan tidak perlu akun cloud.

Jika Anda menginginkan akses jarak jauh ber-latensi rendah atau streaming game dari PC Anda sendiri, Sunshine + Moonlight menarik: klien native di berbagai platform, latensi sangat baik, dan tidak wajib memiliki akun cloud. Permasalahannya ada pada operasional — menjalankan stack itu bagian yang mudah; menjaga agar tetap andal, aman, dan dapat dijangkau tanpa kejutan adalah pekerjaan berulang yang walkthrough ini akan jelaskan secara tegas.

Apa yang sebenarnya dilakukan Sunshine dan Moonlight

Sunshine adalah komponen host/server yang Anda jalankan pada mesin yang ingin Anda streaming. Ia menangkap tampilan/audio, mengenkode frame, dan mengekspos layanan yang dihubungkan Moonlight (klien). Moonlight adalah klien: Windows, macOS, Linux, iOS, Android, dan bahkan beberapa smart TV memiliki port atau build. Bersama-sama mereka mengimplementasikan kembali streaming bergaya GameStream dengan codec modern dan latensi rendah.

Pilih model konektivitas — relays, direct, or Tenvo-managed

Ada empat cara praktis untuk membuat Sunshine dapat dijangkau dari internet. Saya mencantumkannya beserta beban operasional yang harus Anda antisipasi.

  • Tenvo managed relay (direkomendasikan kecuali aturan melarang infrastruktur pihak ketiga). Anda mendapatkan relay multi-region yang dipelihara untuk Anda; untuk sebagian besar klien tidak perlu mengurus sertifikat, NAT, atau konfigurasi router. Tenvo pricing: Free $0 / Lite $2.99/mo / Pro $7.99/mo — pertimbangkan ini terhadap penghematan on-call dan beban operasional.
  • Public relay yang Anda jalankan sendiri (self-hosted). Cocok ketika ada persyaratan tertulis yang memaksakan ini: kepatuhan, VPC terisolasi, mandat lokasi data. Self-hosting memindahkan tanggung jawab penerbitan sertifikat, uptime, skala, dan penjagaan kunci ke tim Anda.
  • Koneksi langsung dengan port forwarding atau NAT traversal (UPnP, hole punching). Biaya infrastruktur paling rendah tetapi rapuh: router rumah, IP dinamis, ISP CGNAT, dan firewall perusahaan seringkali akan memutus koneksi ini.
  • Jaringan privat atau VPN (WireGuard, VPN korporat). Sangat andal, tetapi membutuhkan infrastruktur VPN dan onboarding pengguna. Cocok untuk tim kecil atau lab di mana Anda mengendalikan kedua ujung.

Prerequisites — what you must sort before you click install

  • Host OS: distro Linux terbaru (Ubuntu 22.04 / Debian 12 adalah pilihan umum); Windows dan beberapa build macOS didukung tetapi Linux paling umum untuk host headless.
  • GPU/drivers: untuk encoding hardware biasanya Anda ingin GPU yang didukung (NVIDIA, AMD) dan driver yang mengekspos encoder. Di Linux itu berarti paket vendor — kebijakan pembaruan driver GPU penting (sering kali perlu pengecekan kompatibilitas kernel atau X/Wayland).
  • Networking: jika Anda berencana menggunakan relay, pastikan outbound TLS (443/HTTPS) diperbolehkan. Untuk koneksi langsung Anda memerlukan IP publik yang stabil atau dynamic DNS + port forwarding dan akses ke router.
  • Certificates: untuk mengekspos ke internet gunakan solusi TLS otomatis (Caddy, certbot, acme.sh). Jika Anda self-host relay, Anda harus mengurus penerbitan dan perpanjangan sertifikat sendiri.
  • Client devices: pasang Moonlight di platform yang akan digunakan pengguna Anda. Uji pairing di LAN terlebih dahulu sebelum membuka apa pun ke internet.

Step-by-step: install and configure Sunshine on Linux (example workflow)

Ini contoh pragmatis untuk host Linux (ganti dengan langkah Windows/macOS jika Anda lebih suka installer native). Saya menghindari nomor rilis spesifik untuk Sunshine karena metode distribusi berubah — ambil rilis resmi dari GitHub proyek atau repositori paket untuk build stabil terbaru.

1) Prepare the OS
# Keep packages up to date
sudo apt update && sudo apt upgrade -y

2) Install GPU drivers (example: NVIDIA)
# On Ubuntu 22.04
sudo apt install -y nvidia-driver-535 # pick the vendor driver your GPU needs

3) Create a dedicated user for Sunshine
sudo useradd -r -m -d /var/lib/sunshine -s /usr/sbin/nologin sunshine

4) Download Sunshine & place binaries
# Download the official release tarball or package and extract to /usr/local/bin
sudo mkdir -p /etc/sunshine /var/lib/sunshine
sudo install -m 0755 /path/to/sunshine /usr/local/bin/sunshine

5) Example systemd unit (/etc/systemd/system/sunshine.service)
[Unit]
Description=Sunshine game streaming host
After=network.target

[Service]
User=sunshine
Group=sunshine
ExecStart=/usr/local/bin/sunshine --config /etc/sunshine/config.toml
Restart=on-failure

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl enable --now sunshine

6) Firewall: only open what you intend to use
# If using only a managed relay, you need outbound TLS only. For direct connect, open the ports Sunshine advertises and your chosen TCP/UDP ports.
# Example (ufw):
sudo ufw allow from 192.168.0.0/16 to any port 47999 proto tcp # adjust to your config

7) TLS / certificates
# For internet exposure use an ACME-enabled server (Caddy or certbot) to get a cert for your FQDN. If you run a relay, verify its TLS requirements.

Dua tip praktis: simpan konfigurasi Sunshine di bawah version control (/etc/sunshine/config.toml) dan jalankan binary sebagai user tanpa hak istimewa. Uji pairing di LAN sebelum mengutak-atik DNS atau sertifikat.

Pairing and client setup — what actually happens

Pada koneksi pertama Moonlight dan Sunshine saling bertukar kredensial pairing. Alur umum: jalankan Sunshine di host, buka Moonlight di klien, temukan host (penemuan LAN atau manual IP/FQDN), minta pairing, terima di host — biasanya lewat prompt lokal atau kode jangka pendek. Setelah ter-pair, Moonlight menyimpan sebuah kunci dan reconnect tanpa konfirmasi interaktif sampai Anda mencabutnya di host.

Jika Anda menggunakan relay (Tenvo atau self-hosted), penemuan sering terjadi via layanan relay sehingga klien dapat menjangkau host di belakang NAT tanpa port forwarding. Catatan operasional: ketika Anda memakai relay pihak ketiga, TLS berakhir di relay tersebut — operator relay memiliki kemampuan teknis untuk mengamati atau mencegat trafik jika mereka memilih demikian. Pertimbangkan ini terhadap keputusan kepatuhan atau tingkat kepercayaan Anda.

Ongoing maintenance: the quiet commitments you inherit

Menjalankan host Sunshine sendiri bukan proyek "set it and forget it". Rencanakan untuk tugas berulang berikut:

  • Perpanjangan sertifikat: jika Anda memiliki TLS publik, otomatiskan perpanjangan (Let's Encrypt via certbot atau Caddy). Verifikasi pelaporan auto-renew dan uji jalur reload untuk Sunshine agar service mengambil sertifikat baru tanpa restart manual.
  • Pembaruan OS dan driver: pembaruan keamanan bulanan; pembaruan driver GPU pada siklus pengujian sebelum produksi. Driver sering menjadi sumber regresi untuk streaming dan audio.
  • Backup konfigurasi dan kunci: simpan /etc/sunshine dan kunci pairing dalam backup konfigurasi Anda. Jika kehilangan kunci pairing, pengguna harus melakukan pairing ulang.
  • Pemantauan dan alerting: cek uptime (synthetic test eksternal), pemantauan disk/CPU/GPU, dan log. Rencanakan SLO ketersediaan dan tentukan kapan perlu orang on-call jika host gagal di malam hari.
  • Rotasi dan retensi log: log streaming cepat menjadi besar; rotasi log dan pangkas rekaman lama. Tentukan log mana yang harus disimpan untuk audit dan berapa lama.
  • Skalabilitas dan failover: jika Anda memiliki banyak host atau site, uji failover. Satu relay self-hosted di satu region adalah single point of failure; relay multi-region yang dikelola oleh Tenvo menghilangkan detail operasional ini bagi Anda.
  • Siklus hidup pengguna: cabut pairings saat orang keluar, dan audit perangkat yang ter-pair setiap kuartal.

Perkiraan waktu: harapkan 1–2 jam untuk instalasi dan pengujian untuk satu host, lalu pekerjaan berkelanjutan diukur dalam menit per minggu untuk setup kecil (cek sertifikat, pembaruan). Untuk fleet, hitung setara-pekerjaan-penuh untuk patching, pemantauan, dan respons insiden.

Troubleshooting: practical failure modes and fixes

  • Tidak ditemukan di LAN — periksa mDNS/UPnP dan firewall lokal. Beberapa switch perusahaan memblokir multicast; uji dengan ping ke host lewat IP dan coba koneksi manual lewat FQDN atau IP, bukan discovery.
  • Layar hitam atau frame rusak — biasanya konflik driver GPU atau compositor. Coba sesi tanpa komponennya (non-composited) atau perbarui driver. Di Wayland, periksa dukungan compositor untuk capture.
  • Audio tidak terdengar — pastikan backend audio disetel dengan benar (PulseAudio/pipewire) dan Sunshine dikonfigurasi untuk menangkap sink yang tepat.
  • Latensi tinggi — periksa jalur jaringan dan pengaturan encoding. Turunkan bitrate atau ubah preset encoder; uji di LAN untuk memisahkan masalah GPU/encoding dari masalah jaringan.
  • Pairing sering gagal — bersihkan kunci lama (/etc/sunshine/pairs atau lokasi serupa) dan mulai ulang pairing; periksa log sistem (journalctl -u sunshine) untuk kesalahan.

Jika Anda menginginkan konteks keamanan yang lebih dalam atau perlu menghindari port forwarding sepenuhnya, baca panduan kami Remote Desktop Tanpa Port Forwarding Dijelaskan dan model ancaman di Apakah Remote Desktop Aman? Model Ancaman Jujur. Jika kebutuhan Anda adalah self-hosting penuh, baca Self-Hosted Remote Desktop: Why, How, and What Breaks sebelum mengambil keputusan.

Final notes — when to self-host and when to pay for managed relay

Self-hosting Sunshine dan relay hanya langkah yang tepat ketika kebijakan atau isolasi jaringan memaksa Anda melakukannya. Jika tidak, relay yang dikelola seringkali lebih murah dalam istilah operasional nyata: Anda membeli uptime, manajemen sertifikat, failover multi-region, dan pager orang lain. Relay yang dikelola Tenvo adalah default pragmatis yang kami rekomendasikan: menghapus sebagian besar tunggangan harian sambil tetap memberi Anda kontrol atas host dan pairings. Jika Anda memilih self-hosting, anggarkan item pemeliharaan di atas — hal-hal itu lebih penting daripada instalasi awal.

Siap mencoba relay yang dikelola atau mengunduh klien? Mulai di Unduh. Jika Anda ingin perbandingan lebih mendalam dengan alat lain, lihat tulisan kami lainnya seperti Pengaturan RustDesk self-hosted: Docker + Caddy TLS dan perbandingan harga kami untuk memahami total biaya kepemilikan.

Dapatkan Tenvo

Siap mencoba sendiri?

Gratis untuk 30 perangkat, tanpa kartu kredit. Siap dan tersambung dalam dua menit.