/HLavalink

Lavalink on Heroku, in a nutshell

Primary LanguagePythonMIT LicenseMIT

HLavalink

Lavalink on Heroku, in a nutshell

Deploy

If you want to run this:

Easy Install

  • Click the button "Deploy to Heroku" above to install

The hard way

  • Create an application on Heroku
  • Add Java to buildpacks
  • Fork this repo and deploy it to Heroku

Important notes:

  • To run this 24/7, you need to make an account on UptimeRobot service, and make HTTP request to your app every 5 minutes. For example, if your app is named test-lavalink then make HTTP request to http://test-lavalink.herokuapp.com
  • Do not forget to edit config file (application.yml)
  • Do not forget to set your password (PASSWORD environment variable)

Advantages

  • Uses latest release of Lavalink on (re)start
  • Free to use
  • Easy setup in 3 clicks

Connecting

  • Lavalink's port will be always 80, DO NOT edit port in application.yml!
  • Password is in PASSWORD environment variable, if variable does not exist, it is youshallnotpass

Examples

Python

discord.py

async def initiate_nodes(self):
    nodes = {"MAIN": 
        {
            "host": "test-lavalink.herokuapp.com",
            "port": 80,
            "rest_url": "http://test-lavalink.herokuapp.com",
            "password": "youshallnotpass",
            "identifier": "MAIN",
            "region": "europe"
        }
    }

    for n in nodes.values():
        # ...
async def initiate_nodes(self):
    self.bot.lavalink = lavalink.Client(
        self.bot.user.id
    )
    
    self.bot.lavalink.add_node(
        "test-lavalink.herokuapp.com", 
        80, 
        "youshallnotpass", 
        "eu", 
        "default-node"
    )  # Host, Port, Password, Region, Name
    # ...

Advanced

If you don't like default Heroku options for Java:

  • You can set custom Java flags in ADDITIONAL_JAVA_OPTIONS variable. They override default config. Do not do this if you don't know what you're doing
  • You can opt out of using developer Lavalink version. To set this, you need to create USE_DEV_LAVALINK variable containing n, no or 0 value