Skip to content

Discord music bot made with discord-akairo and discord.js-lavalink

License

Notifications You must be signed in to change notification settings

gazmull/ramiel-bot

Repository files navigation

what are you looking at

GitHub package.json version

Travis (.org) Docker Build Status

MicroBadger Size MicroBadger Layers Docker Automated build Docker Pulls

Ramiel

Features

  • Just a music bot, what else?
  • Currently only supports Youtube search and Direct links.

Commands

Prefix: r! / ramiel, / @Ramiel

See r!help <command> for a better command description.

Not final.

Admin

  • blacklist - Blocks/unblocks a user from using Ramiel's commands
  • moderator - See or set the current Music Queue Moderator

General

  • help - Displays reference for Ramiel's commands

Music

  • destroy - Destroys the player and tells Ramiel to leave the channel
  • play - Plays a song or adds a song to the current queue
  • playlists - Displays your saved playlists or other user's playlists
  • pause - Pauses the current song
  • queue - Displays the current queue and the current song playing
  • save - Saves the current queue as a playlist to your account
  • seek - Seeks to a specified time within the song
  • stop - Stops/skips the current song (leaves when there are no songs left in the queue)
  • volume - Sets the player volume (Moderators only)

Utility

  • eval (bot owner only) - Evaluates a Javascript syntax text
  • ping - Pokes Ramiel
  • stats - Displays Ramiel's [technical] information

Self-Hosting

The following items are required: Discord Bot Account, Docker-CE, and at least MariaDB 10.1

This section assumes that the user has basic knowledge of workflow in his/her machine (e.g: how to run a command shell). If not then ask everyone's bestfriend, Google, first.

$ denotes it should be executed at a command shell.

Build from Source

  1. $ git clone https://github.com/gazmull/ramiel-bot.git ramiel && cd ramiel
  2. Create an auth.js file and obtain the template from auth.example.js.
  3. Set up MariaDB
  4. Create an application.yml file and obtain the template from application.example.yml.
  5. Optional: edit docker-compose.yml according to preferences, although it is already properly configured.
    • ! - To disable automatic updates from gazmull/ramiel-bot, make sure to put the watchtower service in comments.
  6. $ docker-compose up -d

Pre-built

This repository has a pre-built Docker image over here: gazmull/ramiel-bot

  1. Create a folder named ramiel and then do the following in it:
  2. Create an auth.js file and obtain the template from auth.example.js.
  3. Set up MariaDB
  4. Create an application.yml file and obtain the template from application.example.yml.
  5. Edit the docker-compose.yml file and obtain the template from docker-compose (prebuilt).
    • Optional: edit docker-compose.yml according to preferences, although it is already properly configured.
      • ! - To disable automatic updates from gazmull/ramiel-bot, make sure to put the watchtower service in comments.
  6. $ docker-compose up -d

Next Step

This assumes that the user is in the ramiel folder.

Here are some commands to execute while running Ramiel:

  • $ docker-compose stop to stop all services from docker-compose.yml
  • $ docker-compose logs -f to see the logs from all services in real time.
  • $ docker ps -a to show all containers (services).
  • The following steps are for cleaning up (clean re-installing / uninstalling):
    1. $ docker-compose down
    2. $ docker system purge -a

Setting Up MariaDB

To shorten the cover of the guide, please ask Google again on how to install MariaDB. (how to install MariaDB on [Operating System] should be enough :angeryCat:)

  1. Assuming that the MariaDB server is already installed by this section, open the MariaDB CLI ($ mysql), login as root, and then execute each line— replace any text wrapped with [] with the credentials from the auth.js:
CREATE DATABASE `ramiel` CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_unicode_ci';
CREATE USER `ramiel`@`localhost` IDENTIFIED BY '[password in auth.js]';
GRANT ALL PRIVILEGES ON `ramiel`.* TO `ramiel`@`localhost`;
exit;

License

MIT