Hospedagem Lavalink
O servidor de música do seu bot de Discord, criado pelo template de 1 clique: a Cube baixa o Lavalink.jar oficial, confere e gera a senha. Ele fica num projeto privado da sua conta, a partir de R$ 5,99 por mês no Pix, sem fidelidade.
O que é o LavalinkO áudio do bot de música, num servidor só dele.
O Lavalink é um servidor em Java que busca, decodifica e envia o áudio para o canal de voz. O bot só manda os comandos: tocar, pausar, pular. É o que a maioria dos bots de música do Discord usa.
Bot que toca um link direto de áudio ou uma rádio não precisa dele: o FFmpeg já vem instalado em todas as versões de Node.js e Python, e o template Bot de música usa só isso. O Lavalink entra quando o bot tem fila, busca e vários servidores tocando ao mesmo tempo.
Projeto separado do bot
O Lavalink roda num projeto só dele, com a própria memória. Reiniciar o bot não reinicia o Lavalink, e um só serve todos os bots da conta.
Privado da sua conta
O Lavalink não tem endereço público. Só os seus projetos chegam nele, pelo nome interno, e outra conta não alcança.
.jar oficial, conferido
Você não envia nada. A Cube baixa o Lavalink.jar da página oficial de releases e confere o SHA-256 antes de usar. Um arquivo diferente é descartado, e nada sobe.
YouTube e SoundCloud
O application.yml já vem com o plugin oficial do YouTube, SoundCloud, Bandcamp, Twitch, Vimeo e links diretos de áudio. Toque só o que você tem direito de tocar.
Como hospedar o LavalinkDo template ao Lavalink no ar em três passos.
Sem enviar .jar, sem escrever o application.yml e sem inventar senha.
Escolha o template.
No painel, clique em Templates na barra lateral e em Usar este template no Lavalink. Ou abra Novo projeto e escolha a aba Template.
Confira a memória.
O Lavalink pede pelo menos 512 MB, que já vêm marcados. Não precisa preencher mais nada: a senha é gerada pela Cube.
Crie o projeto.
A Cube baixa o Lavalink.jar oficial, confere e inicia. Em alguns segundos, os Logs mostram
Lavalink is ready to accept connections.
- Memória
- a partir de 512 MB
- Planos
- a partir do Block
- Java
- JDK 21
- Porta
- 2333
- Endereço
- só dentro da sua conta
- Senha
- gerada pela Cube
Depois de criado, é um projeto como os outros. Os Logs mostram o que o Lavalink escreve, o gráfico mostra a memória, e o application.yml fica na aba Arquivos para você mudar as fontes e os plugins.
Como conectar o bot ao LavalinkO bot conecta pelo nome interno.
O Lavalink e o bot são dois projetos da mesma conta. O bot acha o Lavalink pelo nome interno do projeto, que só existe dentro da sua conta.
Pegue o host, a porta e a senha.
Na aba Projeto do Lavalink, o cartão Conectar seu bot mostra o host (o nome interno do projeto, como
cube-t9d1h3xa), a porta2333e a senha, em Mostrar senha.Guarde a senha no bot.
Crie o bot como outro projeto da mesma conta e, em Configurações › Variáveis de ambiente dele, salve a senha numa variável, como
LAVALINK_PASSWORD. Nunca no código.Conecte pelo nome interno.
Use o host e a porta no cliente do Lavalink da sua biblioteca, como nos exemplos, e inicie o bot. A conexão não sai da sua conta, então vai sem TLS.
index.js · lavalink-client
import { Client, GatewayIntentBits } from 'discord.js';import { LavalinkManager } from 'lavalink-client';const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates],});client.lavalink = new LavalinkManager({ nodes: [ { id: 'cube', host: 'cube-t9d1h3xa', port: 2333, authorization: process.env.LAVALINK_PASSWORD, }, ], sendToShard: (guildId, payload) => client.guilds.cache.get(guildId)?.shard?.send(payload),});client.on('raw', (d) => client.lavalink.sendRawData(d));client.on('ready', () => client.lavalink.init({ ...client.user }));client.login(process.env.DISCORD_TOKEN);main.py · wavelink
import osimport discordimport wavelinkfrom discord.ext import commandsclass Bot(commands.Bot): async def setup_hook(self) -> None: node = wavelink.Node( uri="http://cube-t9d1h3xa:2333", password=os.environ["LAVALINK_PASSWORD"], ) await wavelink.Pool.connect(nodes=[node], client=self)intents = discord.Intents.default()bot = Bot(command_prefix="!", intents=intents)bot.run(os.environ["DISCORD_TOKEN"])Use uma biblioteca atual. O Lavalink 4.2 pede o lavalink-client 2.9.7 ou mais novo, ou o wavelink 3.5.1 ou mais novo. Com uma versão de antes, o bot conecta, mas a música não toca.
Quanta memória o Lavalink precisa512 MB para o Lavalink, 256 MB para o bot.
Os dois cabem no Block: 1 GB de RAM por R$ 5,99 por mês. O Free fica de fora, porque tem 100 MB.
Cada projeto reserva a própria memória dentro da RAM do plano. Se muitas músicas tocarem ao mesmo tempo e o log do Lavalink mostrar OutOfMemoryError, aumente a memória dele em Configurações › Geral e reinicie.
- Lavalink
- a partir de 512 MB
- Bot de música
- a partir de 256 MB
- Block (1 GB)
- Lavalink e até 2 bots
- Stack (2 GB)
- Lavalink e até 6 bots
- Free (100 MB)
- não cabe
- Mudar depois
- em Configurações, sem recriar
Hospedagem LavalinkPerguntas frequentes.
O que mais perguntam antes de pôr o Lavalink no ar.
Tem hospedagem Lavalink grátis?
Não. O Lavalink pede pelo menos 512 MB, e o Plano Free tem 100 MB. Ele entra a partir do Block, de R$ 5,99 por mês: em 1 GB cabem o Lavalink e um bot de 256 MB.
Posso usar o Lavalink com um bot hospedado fora da Cube?
Não. O Lavalink não tem endereço público: só os projetos da mesma conta chegam nele, pelo nome interno. Para usar, hospede o bot como outro projeto da conta.
Um Lavalink serve mais de um bot?
Serve. Todos os bots da conta conectam no mesmo Lavalink, com o mesmo host, a mesma porta e a mesma senha. Se muitas músicas tocarem ao mesmo tempo e o log mostrar OutOfMemoryError, aumente a memória do Lavalink em Configurações › Geral e reinicie.
Meu bot conecta no Lavalink, mas a música não toca. Por quê?
Quase sempre é a biblioteca do bot desatualizada. O Lavalink 4.2 pede o lavalink-client 2.9.7 ou mais novo no Node.js, ou o wavelink 3.5.1 ou mais novo no Python: com uma versão de antes, o bot conecta e entra no canal de voz, mas o áudio não sai. Atualize a biblioteca e envie o bot de novo.
Como troco a senha do Lavalink?
Mude o valor da variável LAVALINK_SERVER_PASSWORD em Configurações › Variáveis de ambiente do Lavalink, reinicie e troque a senha também no bot. A senha fica guardada cifrada, e cada vez que ela aparece na tela fica registrado na Atividade.
Dá para mudar as fontes de áudio e os plugins?
Dá. O application.yml do projeto já vem com o plugin oficial do YouTube, SoundCloud, Bandcamp, Twitch, Vimeo e links diretos de áudio e rádio. Edite o arquivo na aba Arquivos (um plugin novo é uma linha em lavalink.plugins) e clique em Aplicar mudanças: o Lavalink reinicia com a configuração nova.
Seu primeiro deploy leva menos que um café.
Crie a conta, envie o .zip e o bot está no ar antes de a xícara esfriar. Sem cartão de crédito: os planos são pagos no Pix, mês a mês ou por ano.