diff --git a/README.md b/README.md index 3011aa3..5de9b73 100644 --- a/README.md +++ b/README.md @@ -38,11 +38,11 @@ Guava is a Discord music bot with support for multiple different music and video Getting started is easy, simply invite Guava to your server and run `/help` to see what all Guava has to offer. # Want to self-host? -Guava is built on Python and requires a Lavalink node running release `v4` or higher with the LavaSrc plugin. If you would like to configure Guava and run it on your own, follow the steps below. +Guava is built on Python and requires a Lavalink node running release `v4` or higher with the [LavaSrc](https://github.com/topi314/LavaSrc) and [youtube-source](https://github.com/lavalink-devs/youtube-source) plugins. -*NOTE: For information on each configuration variable, look at the [Configuration](#configuration) section of this page.* +If you would like to run your own version of Guava, continue to read the information below. -*P.S. Some information on starting your own lavalink node can be found [here](#lavalink-information)* +*NOTE: No matter which option you choose (Docker or bare metal) you will get a fatal error on first run due to missing the `config.yaml` file. A new config.yaml file will be created for you with the necessary fields for configuration. For information on each configuration field, see [Configuration](#configuration).* ## Docker To run Guava in Docker, use the provided [docker-compose.yaml](docker-compose.yaml) file as a template for the container. @@ -52,13 +52,11 @@ In addition to the Guava container, you must also create a Lavalink node however ## Bare metal To run Guava on bare metal, follow the steps below. -*NOTE: On first run you will likely get a critical warning in your console, don't worry, this is expected. It will automatically create a `config.ini` file for you in the root of the directory with all of the necessary configuration options.* - -1. Install Python and Pip +1. Install Python 3 and Pip 2. Clone this repository 3. Install the requirements with `pip install -r requirements.txt` 4. Run the `code/bot.py` file -5. Input information into the newly created config.ini file. +5. Input information into the newly created config.yaml file. 6. Re-run the `code/bot.py` file. # Configuration @@ -67,31 +65,28 @@ Field | Description | Requirement --- | --- | --- TOKEN | The token for your bot. Create a bot at [discord.com/developers](https://discord.com/developers) | **REQUIRED** BOT_COLOR | `HEX CODE`: Color that will be used for the color of message embeds | **REQUIRED** -BOT_INVITE_LINK | `URL`: Discord Invite link for your bot (shown on the `help` command) | **REQUIRED** -FEEDBACK_CHANNEL_ID | `CHANNEL ID`: Discord channel for feedback messages to be sent to | **OPTIONAL** -BUG_CHANNEL_ID | `CHANNEL ID`: Discord channel for bug messages to be sent to | **OPTIONAL** -SPOTIFY_CLIENT_ID | Client ID from Spotify Developer account | **REQUIRED** -SPOTIFY_CLIENT_SECRET | Client Secret from Spotify Developer account | **REQUIRED** -GENIUS_CLIENT_ID | Client ID from Genius API Dashboard | **OPTIONAL** -GENIUS_CLIENT_SECRET | Client Secret from Genius API Dashboard | **OPTIONAL** -OPENAI_API_KEY | API Key from OpenAI for autoplay recommendations | **REQUIRED** +BOT_INVITE_LINK | `URL`: Discord Invite link for your bot (shown on the `help` command) | **OPTIONAL** - *Adds an "Invite Me" button to the /help message* +FEEDBACK_CHANNEL_ID | `CHANNEL ID`: Discord channel for feedback messages to be sent to | **OPTIONAL** - *Used for feedback messages* +BUG_CHANNEL_ID | `CHANNEL ID`: Discord channel for bug messages to be sent to | **OPTIONAL** - *Used for bug reporting* +SPOTIFY_CLIENT_ID | `CLIENT ID`: ID from Spotify Developer account | **OPTIONAL** - *Used for Spotify support* +SPOTIFY_CLIENT_SECRET | `CLIENT SECRET`: Secret string from Spotify Developer account | **OPTIONAL** - *Used for Sporify support* +GENIUS_CLIENT_ID | `CLIENT ID`: ID from Genius API Dashboard | **OPTIONAL** - *Used for the /lyrics command* +GENIUS_CLIENT_SECRET | `CLIENT SECRET`: Secret string from Genius API Dashboard | **OPTIONAL** - *Used for the /lyrics command* +OPENAI_API_KEY | API Key from OpenAI for autoplay recommendations | **OPTIONAL** - *Used to support the /autoplay feature* HOST | Host address for your Lavalink node | **REQUIRED** PORT | Port for your Lavalink node | **REQUIRED** PASSWORD | Password to authenticate into the Lavalink node | **REQUIRED** -# Lavalink Information +# Lavalink -As previously state, a Lavalink node running at least `v4` with the LavaSrc plugin is required. Due to the plugin requirement, it is unlikely that you will be able to use a free/public Lavalink node. +For instructions on setting up a Lavalink node on bare metal, look [here](https://lavalink.dev/getting-started/). Refer to the plugin repositories for support on configuring them. -For instructions on setting up a Lavalink node on bare metal, look [here](https://lavalink.dev/getting-started/), and for instructions on the LavaSrc plugin, look [here](https://github.com/topi314/LavaSrc). -
-*P.S. Only the Deezer/SoundCloud sources/search providers are needed.* +*P.S. Only the Deezer/SoundCloud sources/search providers are needed in the LavaSrc plugin.* -It is also highly recommended to setup IPv6 rotation in order to avoid blocks and other issues. There are helpful guides for this both [here](https://blog.arbjerg.dev/2020/3/tunnelbroker-with-lavalink) and [here](https://gist.github.com/Drapersniper/11fee08f91ea7174e0d8af12496f3443). +After setting up your Lavalink node, it is highly recommended to configure IPv6 rotation with at least a /64 or /48 block. IPv6 rotation helps to relieve issues from getting rate limited/blocked from YouTube and other sources. There are helpful guides for setting this up which are available on GitHub, however, [this](https://github.com/Nansess/tunnelbroker-guide) is the one that I have used . -An example of my personal `application.yml` file can be found [here](https://github.com/PacketParker/Guava/blob/main/application.yml.example). +An example of my personal `application.yml` configuration file can be found [here](https://github.com/PacketParker/Guava/blob/main/application.yml.example). -

If you have any questions, feel free to email at [contact@pkrm.dev](mailto:contact@pkrm.dev). Thank you for checking out Guava, and happy coding.