Cara Install SpringBoot Lavalink pada Linux Ubuntu NAT VPS

Cara Install SpringBoot Lavalink pada Linux Ubuntu NAT VPS

NATVPS.id – Lavalink adalah sebuah project open-source berbasis Framework SpringBoot yang dirancang untuk memberikan server pemutar musik berkinerja tinggi. Pada umumnya Lavalink digunakan bersama Discord Bot. Sehingga Anda dapat mendengarkan musik melalui Bot Discord melalui Voice room. pada Artikel kali ini Anda akan mempelajari Cara Install SpringBoot Lavalink pada Linux Ubuntu NAT VPS. Yuk langsung saja cek Langkah pada Artikelnya.

Prerequiresites

Sebelum mengikuti tutorial pada artikel ini, pastikan Anda memenuhi Syarat berikut untuk memastikan tutorial diikuti dengan lancar

Goals

Setelah mengikuti artikel ini. Anda diharapkan berhasil mempelajari cara:

  • Melakukan instalasi Java jdk 17
  • Melakukan Instalasi Lavalink
  • Melakukan Port Forwading menuju NAT VPS
  • Mengoperasikan terminal melalui SSH

Login Ke Client Area

Untuk dapat mengakses NAT VPS, silakan masuk terlebih dahulu ke Client Area NAT VPS. Anda dapat merujuk pada petunjuk login ke NAT VPS melalui panduan ini Cara Membeli dan Login NAT VPS. Setelah berhasil login, Anda akan melihat tampilan berikut di Client Area NAT VPS:

tampilan dashboard setelah selesai login berhasil login client area
tampilan dashboard setelah selesai login berhasil login client area

Untuk mendapatkan kredensial Anda di Client Area, harap cek email yang telah diterima setelah menyelesaikan pemesanan NAT VPS. Cek Informasi kredensial yang telah dikirimkan melibatkan username, password, dan tautan login ke Client Area, Lalu kurang lebih akan terlihat seperti berikut:

<yoastmark class=

Cara Install SpringBoot Lavalink pada Linux Ubuntu NAT VPS

Masuk Terminal NAT VPS melalui SSH

Gunakan aplikasi SSH client seperti Terminal, Termius, Termux, Putty, dan sejenisnya untuk terhubung ke terminal NAT VPS. Dalam kasus ini, kami menggunakan NAT SSH dengan PORT ssh yang telah kami lakukan domain forwading menjadi 24448:

ssh [email protected] -p 24448

Selanjutnya, masukkan password. Jika kredensial yang dimasukkan benar, maka Anda akan melihat pesan selamat datang pada shell terminal.

<yoastmark class=

Update Dependesi Linux

Pastikan bahwa dependensi Linux Anda sudah diperbarui ke versi terbaru. Jalankan kode berikut untuk melakukan pembaruan dependensi dan instalasi beberapa aplikasi yang diperlukan pada Ubuntu NAT VPS:

sudo apt update && sudo apt install nano screen curl wget htop gnupg ca-certificates -y

Tampilan di bawah ini adalah preview pada saat proses pembaruan pada Ubuntu NAT VPS.

Baca Juga:  Cara menginstall AzuraCast untuk radio di NAT VPS
proses update ubuntu nat vps pada terminal ssh
proses update ubuntu nat vps pada terminal

Instalasi Azul JavaJDK 17

Selanjutnya, Lakukan Instalasi Java. Versi Java yang akan digunakan adalah java-jdk-17 dengan versi java adalah Azul. Pada Langkah Instalasi Ini menggunakan apt install, namun diperlukan untuk mengimport GPG public key dan linux address repository azul dahulu. Masukkan Script berikut untuk melakukan Instalasi:

curl -s https://repos.azul.com/azul-repo.key | sudo gpg --dearmor -o /usr/share/keyrings/azul.gpg
echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" | sudo tee /etc/apt/sources.list.d/zulu.list

Setelah itu Update kembali dependesi Linux

sudo apt update

Install Zulu-java-jdk17

sudo apt install zulu17-jdk -y

Untuk memastikan java sudah terinstall, Anda dapat gunakan command java -version  untuk melihat versi java

melakukan cek versi java untuk lavalink
melakukan cek versi java untuk lavalink

Instalasi Lavalink

Sebelum Masuk Instalasi, Silakan buat folder dengan fungsi sebagai workspace untuk Lavalink. Pada kasus ini Saya membuat folder dengan nama lavalink menggunakan mkdir:

mkdir lavalink

Lalu masuk ke folder lavalink dengan command cd

cd lavalink

Buat sesi terminal baru dengan aplikasi screen. Fungsi disini untuk menghindari aplikasi berhenti saat sudah keluar dari sesi. Gunakan command berikut untuk membuat sesi screen dengan nama sesi lavalink

screen -S lavalink

Saatnya masuk ke Instalasi Lavalink. Pada Artikel kali ini Kita akan menggunakan Lavalink dengan Latest versi 3.x . Anda dapat kunjungi Link releases pada github lavalink

Link Releases: https://github.com/lavalink-devs/Lavalink/releases/tag/3.7.10

Atau anda bisa download langsung java file pada releases dengan curl atau wget. untuk contoh kami gunakan wget sebagai downloadernya. File dengan nama Lavalink.jar terdownload.

wget https://github.com/lavalink-devs/Lavalink/releases/download/3.7.10/Lavalink.jar

Selanjutnya buat file bernama application.yml. pastikan nama file adalah application.yml. File ini harus ditaruh satu folder dengan Lavalink.jar , dikarenakan application.yml akan digunakan sebagai konfigurasi untuk Lavalink.jar

touch application.yml # buat file untuk konfigurasi lavalink.jar

Selanjutnya, Copy Kode berikut pada file application.yml. Anda dapat gunakan nano text editor untuk melakukan edit

server: # REST and WS server
  port: 2333
  address: 0.0.0.0
  http2:
    enabled: false # Whether to enable HTTP/2 support
plugins:
#  name: # Name of the plugin
#    some_key: some_value # Some key-value pair for the plugin
#    another_key: another_value
lavalink:
  plugins:
#    - dependency: "com.github.example:example-plugin:1.0.0" # required, the coordinates of your plugin
#      repository: "https://maven.example.com/releases" # optional, defaults to the Lavalink releases repository by default
#      snapshot: false # optional, defaults to false, used to tell Lavalink to use the snapshot repository instead of the release repository
#  pluginsDir: "./plugins" # optional, defaults to "./plugins"
#  defaultPluginRepository: "https://maven.lavalink.dev/releases" # optional, defaults to the Lavalink release repository
#  defaultPluginSnapshotRepository: "https://maven.lavalink.dev/snapshots" # optional, defaults to the Lavalink snapshot repository
  server:
    password: "youshallnotpass"
    sources:
      youtube: true
      bandcamp: true
      soundcloud: true
      twitch: true
      vimeo: true
      http: true
      local: false
    filters: # All filters are enabled by default
      volume: true
      equalizer: true
      karaoke: true
      timescale: true
      tremolo: true
      vibrato: true
      distortion: true
      rotation: true
      channelMix: true
      lowPass: true
    bufferDurationMs: 400 # The duration of the NAS buffer. Higher values fare better against longer GC pauses. Duration <= 0 to disable JDA-NAS. Minimum of 40ms, lower values may introduce pauses.
    frameBufferDurationMs: 5000 # How many milliseconds of audio to keep buffered
    opusEncodingQuality: 10 # Opus encoder quality. Valid values range from 0 to 10, where 10 is best quality but is the most expensive on the CPU.
    resamplingQuality: LOW # Quality of resampling operations. Valid values are LOW, MEDIUM and HIGH, where HIGH uses the most CPU.
    trackStuckThresholdMs: 10000 # The threshold for how long a track can be stuck. A track is stuck if does not return any audio data.
    useSeekGhosting: true # Seek ghosting is the effect where whilst a seek is in progress, the audio buffer is read from until empty, or until seek is ready.
    youtubePlaylistLoadLimit: 6 # Number of pages at 100 each
    playerUpdateInterval: 5 # How frequently to send player updates to clients, in seconds
    youtubeSearchEnabled: true
    soundcloudSearchEnabled: true
    gc-warnings: true
    #ratelimit:
      #ipBlocks: ["1.0.0.0/8", "..."] # list of ip blocks
      #excludedIps: ["...", "..."] # ips which should be explicit excluded from usage by lavalink
      #strategy: "RotateOnBan" # RotateOnBan | LoadBalance | NanoSwitch | RotatingNanoSwitch
      #searchTriggersFail: true # Whether a search 429 should trigger marking the ip as failing
      #retryLimit: -1 # -1 = use default lavaplayer value | 0 = infinity | >0 = retry will happen this numbers times
    #youtubeConfig: # Required for avoiding all age restrictions by YouTube, some restricted videos still can be played without.
      #email: "" # Email of Google account
      #password: "" # Password of Google account
    #httpConfig: # Useful for blocking bad-actors from ip-grabbing your music node and attacking it, this way only the http proxy will be attacked
      #proxyHost: "localhost" # Hostname of the proxy, (ip or domain)
      #proxyPort: 3128 # Proxy port, 3128 is the default for squidProxy
      #proxyUser: "" # Optional user for basic authentication fields, leave blank if you don't use basic auth
      #proxyPassword: "" # Password for basic authentication

metrics:
  prometheus:
    enabled: false
    endpoint: /metrics

sentry:
  dsn: ""
  environment: ""
#  tags:
#    some_key: some_value
#    another_key: another_value

logging:
  file:
    path: ./logs/

  level:
    root: INFO
    lavalink: INFO

  request:
    enabled: true
    includeClientInfo: true
    includeHeaders: false
    includeQueryString: true
    includePayload: true
    maxPayloadLength: 10000


  logback:
    rollingpolicy:
      max-file-size: 1GB
      max-history: 30

Atau Anda bisa cek link berikut untuk sample dari application.yml

https://raw.githubusercontent.com/lavalink-devs/Lavalink/master/LavalinkServer/application.yml.example

Beberapa value penting yang bisa dijadikan perhatian dalam application.yml ini:

password: "youshallnotpass"

digunakan sebagai password untuk autentikasi lavalink. Ubah Password “youshallnotpass” ini agar lebih aman. Field selanjutnya adalah:

port: 2333
address: 0.0.0.0 # 0.0.0.0:2333

Port yang digunakan adalah Port 2333 dan listen address 0.0.0.0 . address ini digunakan untuk melakukan expos port sehingga client bisa melakukan akses yang di inginkan port 2333. Save application.yml. Untuk Struktur folder lavalink kurang lebih akan seperti berikut:

Baca Juga:  Cara Install Wireguard pada Linux Ubuntu pada NAT VPS
struktur folder Lavalink ubuntu nat vps
struktur folder Lavalink ubuntu nat vps

Jalankan Program Lavalink dengan command berikut:

java -jar Lavalink.jar

Tunggu proses Booting aplikasi selesai dilakukan

proses menjalankan springboot lavalink di ubuntu nat vps
proses menjalankan springboot lavalink di ubuntu nat vps

Lavalink sudah siap berjalan apabila port sebuah pesan “Lavalink is ready to accept connections” muncul. Masih ada satu Langkah lagi, yaitu Melakukan Port forwading ke port 2333.

Melakukan Port / Domain Forwading menuju Lavalink Ubuntu NAT VPS

Pada langkah ini adalah melakukan Domain Forwading TCP ke port 2333. Anda bisa ikuti panduan Penjelasan Domain Forwarding di NAT VPS dan cara melakukannya. Pada konfig ini Saya melakukan Domain forwading dari port 49392 dan diarahkan ke port 2333:

Melakukan Domain Forwading TCP dari Port 49392 ke port 2333 Lavalink Ubuntu NAT VPS
Melakukan Domain Forwading TCP dari Port 49392 ke port 2333 Lavalink Ubuntu NAT VPS

Kemudian lakukan Add dan Silakan Akses port 49392 melalui IP Address NAT Anda.

http://100.202.20.93:49392/

Sebuah Blank Page akan dimunculkan. jangan khawatir. hal ini menandakan Aplikasi lavalink sudah berjalan. Namun untuk menggunakan Lavalink, Anda perlu menggunakan Lavalink Client. kunjungi Link Dokumentasi Lavalink untuk melihat beberapa contoh lavalink client https://lavalink.dev/clients.html.

Lavalink di Ubuntu NAT VPS sudah berjalan
Lavalink di Ubuntu NAT VPS sudah berjalan

Penutup

Begitulah Cara Install SpringBoot Lavalink pada Linux Ubuntu NAT VPS. Jika ada pertanyaan atau kesulitan, silahkan bertanya di grup Telegram @IPv6Indonesia. Kami sangat mengapresiasi Feedback dari Pembaca.

You May Also Like

About the Author: Naufal