Criar o Lavalink
1
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.
2
Confira a memória
O Lavalink pede pelo menos 512 MB. Não precisa preencher nada: a Cube gera a senha dele.
3
Criar projeto
A Cube baixa o
Lavalink.jar oficial, confere e inicia. Em alguns segundos o log mostra Lavalink is ready to accept connections.403 template_not_in_plan). No Block (1 GB), cabem o Lavalink de 512 MB e um bot de 256 MB.
O .jar oficial, conferido
Você não precisa enviar o.jar (uns 100 MB). Na instalação, o download-lavalink.sh do projeto baixa o Lavalink 4.2.2 da página oficial de releases e confere o SHA-256 fixado no script antes de usar. Um arquivo diferente é descartado, a instalação falha e nada sobe. O .jar fica fora dos arquivos do projeto: não entra nos backups nem some quando você envia o código de novo.
Conectar seu bot
1
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 porta 2333 e a senha, que aparece quando você clica em Mostrar senha.2
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.3
Conecte
Use o host e a porta, sem TLS (a conexão não sai da sua conta):
GET http://cube-t9d1h3xa:2333/version com o cabeçalho Authorization: <senha>: a resposta é a versão (4.2.2). Sem a senha, 401.
O nome interno
Todo projeto da Cube tem um nome interno:cube- e os 8 últimos caracteres do ID do projeto, como cube-t9d1h3xa. Ele aparece em Configurações › Rede e no campo internalHost da API.
- Só os projetos da sua conta alcançam o nome, em qualquer porta em que o projeto escute. Outra conta não resolve o nome nem chega no projeto, e o mesmo nome lá é outro projeto.
- Não é um endereço público: o Lavalink continua sem porta aberta para a internet.
- O projeto precisa estar no ar. Um projeto que já estava rodando antes de o nome interno existir enxerga os nomes dos outros depois de reiniciar uma vez.
Fontes e plugins
Oapplication.yml do projeto vem com o plugin oficial do YouTube (youtube-source), SoundCloud, Bandcamp, Twitch, Vimeo e links diretos de áudio e rádio. Para mudar:
- Edite o
application.ymlna aba Arquivos (as opções estão na configuração do Lavalink). - Um plugin novo é uma linha em
lavalink.plugins: o Lavalink baixa ao iniciar. - Clique em Aplicar mudanças. O Lavalink reinicia com a configuração nova.
A senha
A Cube gera uma senha forte ao criar o projeto e guarda cifrada na variávelLAVALINK_SERVER_PASSWORD, que o Lavalink lê. Ela nunca aparece em log, e cada vez que você a vê, a Atividade registra.
Para trocar, mude o valor da variável em Configurações › Variáveis de ambiente do Lavalink, reinicie e troque também no bot. Sem a variável, o Lavalink não inicia.
Trocar de versão
As duas primeiras linhas dodownload-lavalink.sh são a versão e o SHA-256. Troque as duas pela versão nova e pelo SHA-256 da página de releases e clique em Aplicar mudanças: a Cube baixa, confere e reinicia.
Pela API
Crie comtemplate=lavalink em Criar um projeto: a senha é gerada pela Cube (uma que viesse em variables é descartada), e abaixo de 512 MB a resposta é 422 invalid_config. Depois, Ver a conexão devolve o host, a porta e a senha.
Problemas comuns
getaddrinfo ENOTFOUND cube-…no bot: o bot é de outra conta, o Lavalink está parado ou o bot subiu antes de o nome interno existir. Confira os dois na mesma conta, inicie o Lavalink e reinicie o bot.401ouUnauthorized: a senha do bot não é a do Lavalink. Copie de novo no cartão Conectar seu bot.- O bot entra no canal, mas não toca: a biblioteca do bot é de antes do Lavalink 4.2. Atualize, como no aviso acima.
OutOfMemoryErrorno log do Lavalink: muitas músicas ao mesmo tempo. Aumente a memória em Configurações › Geral e reinicie.O arquivo baixado não confere com o SHA-256na instalação: a versão e o SHA-256 dodownload-lavalink.shnão batem. Confira as duas linhas na página de releases.

