Ree6

Applications
Report Issue

All-in-one, open source and 100% free Discord Bot!

Contributors:
README

Ree6


Authors / Contributors


Bot Description & Features

From the developer's Github:

Ree6 is an all-in-one Discord Bot maintained by Presti, which started as an alternative of Mee6 to provide a lot of features that are hidden behind a paywall or subscription.

  • Contains almost every feature Mee6 has.
  • Has a open Source Webinterface.
  • Provides advanced Audit-Logging.
  • Has built in post notifications (Twitter, Instagram, YouTube, Reddit and Twitch).
  • Built-in simple Ticket System.
  • And more!

Configuration

  • You will need to modify the config.yml to even start the bot.

Server Ports

There are no ports required for Ree6.


Updating

Re-Installing the server via the panel will do the following:

  1. Update the bot to the latest version.

API keys

This bot uses a lot of api keys. It will print some errors to the console if you don't have some filled in but the bot should still function as normal with the api keys you entered.

Docker Images (1)
Name Image
Java_17 ghcr.io/pterodactyl/yolks:java_17
Startup Command
java -Dnogui=true -jar Ree6.jar
Variables (39)

[REQUIRED] Discord Bot Token

The token for your Discord bot. Learn how to obtain a token and configure your bot application properly here: https://jmusicbot.com/getting-a-bot-token/

Environment:
BOT_TOKEN
Default:
None
User Viewable:
User Editable:
Rules:
required|string

Dagpi token

Your Dagpi.xyz API-Token, for tweet image generation!

Environment:
DAGPI_TOKEN
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Sentry DSN

Your Sentry DSN, for error reporting!

Environment:
SENTRY_DSN
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Spotify Client Id

Spotify Application Configuration, used to parse Spotify Tracks/Playlists to YouTube search queries.

Environment:
SPOTIFY_CLIENT_ID
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Spotify Client Secret

Spotify Application Configuration, used to parse Spotify Tracks/Playlists to YouTube search queries.

Environment:
SPOTIFY_CLIENT_SECRET
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Heartbeat Url

The URL to the Heartbeat-Server

Environment:
HEARTBEAT_URL
Default:
none
User Viewable:
User Editable:
Rules:
string

Heartbeat Interval

The interval between the heartbeats.

Environment:
HEARTBEAT_INTERVAL
Default:
60
User Viewable:
User Editable:
Rules:
integer

Amari Token

Your Amari API-Token, for Amari Level imports!

Environment:
AMARI_TOKEN
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Twitch Client Id

Twitch Application Configuration, used for the StreamTools and Twitch Notifications.

Environment:
TWITCH_CLIENT_ID
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Twitch Client Secret

Twitch Application Configuration, used for the StreamTools and Twitch Notifications.

Environment:
TWITCH_CLIENT_SECRET
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Twitter Bearer Key

Twitter Application Configuration, used for the Twitter Notifications.

Environment:
TWITTER_BEARER
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Reddit Client Id

Reddit Application Configuration, used for the Reddit Notification.

Environment:
REDDIT_CLIENT_ID
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Reddit Client Secret

Reddit Application Configuration, used for the Reddit Notification.

Environment:
REDDIT_CLIENT_SECRET
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Instagram Username

Instagram Application Configuration, used for the Instagram Notification.

Environment:
INSTAGRAM_USERNAME
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Instagram Password

Instagram Application Configuration, used for the Instagram Notification.

Environment:
INSTAGRAM_PASSWORD
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

SQL Username

Username for the SQL connection.

Environment:
DATABASE_USER
Default:
root
User Viewable:
User Editable:
Rules:
string|max:32

SQL Database

Database for the SQL Connection

Environment:
DATABASE_DB
Default:
root
User Viewable:
User Editable:
Rules:
string|max:64

SQL Password

Password for the SQL connection.

Environment:
DATABASE_PW
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

SQL Port

Port for the SQL connection.

Environment:
DATABASE_PORT
Default:
3306
User Viewable:
User Editable:
Rules:
integer

Database Typ

The Typ of the Database Ree6 should use! Possible typs: - mariadb - sqlite - h2 - postgres

Environment:
DATABASE_TYP
Default:
sqlite
User Viewable:
User Editable:
Rules:
required|string|in:mariadb,sqlite,postgres,postregsql,h2

Database Storagefile

The location of the storagefile if sqlite is being used.

Environment:
DATABASE_FILE
Default:
storage/Ree6.db
User Viewable:
User Editable:
Rules:
required|string|max:32

[DEVELOPER-STUFF] Database Poolsize

The Database connection pool size!

Environment:
DATABASE_POOL
Default:
10
User Viewable:
User Editable:
Rules:
required|integer

Database host

The Host address of the Database connection.

Environment:
DATABASE_HOST
Default:
localhost
User Viewable:
User Editable:
Rules:
nullable|string|max:128

OpenAI Token

Your Authentication token that should be used in the AI API calls.

Environment:
AI_TOKEN
Default:
OpenAI API-Token
User Viewable:
User Editable:
Rules:
nullable|string|max:128

OpenAI Url

The URL that should receive the API calls.

Environment:
AI_URL
Default:
https://api.openai.com/v1/chat/completions
User Viewable:
User Editable:
Rules:
nullable|string|max:128

OpenAI Model

The AI model that should be used in the API calls.

Environment:
AI_MODEL
Default:
gpt-3.5-turbo-0301
User Viewable:
User Editable:
Rules:
nullable|string|max:32

Activity Status

The Activity status of the Bot that will be shown.

Environment:
MISC_STATUS
Default:
ree6.de | %guilds% Servers. (%shard%)
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Feedback Channel

The Channel Id of the Feedback channel.

Environment:
MISC_FEEDBACK
Default:
0
User Viewable:
User Editable:
Rules:
integer

[DEVELOPER-STUFF] Bot Owner Id

The ID of the Bot Owner, this will be used internally on some checks.

Environment:
MISC_OWNER
Default:
321580743488831490
User Viewable:
User Editable:
Rules:
required|integer

Invite Link

The Invite link to invite the Bot.

Environment:
MISC_INVITE
Default:
https://invite.ree6.de
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Predefined Information for AI

The Information for the AI.

Environment:
MISC_PREDEF
Default:
You are Ree6 a Discord bot.
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Support Link

The Url link for users to receive support.

Environment:
MISC_SUPPORT
Default:
https://support.ree6.de
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Website

The Url to the Website of the Bot.

Environment:
MISC_WEB
Default:
https://ree6.de
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Webinterface

The Url to the Webinterface.

Environment:
MISC_INTERFACE
Default:
https://cp.ree6.de
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Record Url

The Url that uses can access to get their recording.

Environment:
MISC_RECORD
Default:
https://cp.ree6.de/external/recording
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Twitch Url

The Url used to connect a Twitch Account with the Ree6 System.

Environment:
MISC_TWITCH
Default:
https://cp.ree6.de/external/twitch
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Advertisment

The Advertisement in Embed Footers and the rest.

Environment:
MISC_ADV
Default:
powered by Tube-hosting
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Name

The Name of the Bot.

Environment:
MISC_NAME
Default:
Ree6
User Viewable:
User Editable:
Rules:
required|string|max:20

Shards

The amount of shards that should be created.

Environment:
MISC_SHARD
Default:
1
User Viewable:
User Editable:
Rules:
required|integer
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: bash
#!/bin/bash
## this is a simple script to use the github API for release versions.
## this requires the egg has a variable for GITHUB_PACKAGE and VERSION
## this supports using oauth/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)
## if you are getting hit with GitHub API limit issues then you need to have the user and token set.
apt update
apt install -y jq curl


CONFIG_LINK="https://raw.githubusercontent.com/ptero-eggs/application-eggs/main/bots/discord/ree6/config.yml"
LATEST_JSON=$(curl --silent "https://api.github.com/repos/Ree6-Applications/Ree6/releases/latest")
RELEASES=$(curl --silent "https://api.github.com/repos/Ree6-Applications/Ree6/releases")
MATCH=jar-with-dependencies.jar


if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i "${MATCH}" | head -1 )
else
    VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
    if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
        DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i "${MATCH}" | head -1)
    else
        echo -e "defaulting to latest release"
        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i *.jar)
    fi
fi

## Ree6 Setup
[ ! -d /mnt/server ] && mkdir -p /mnt/server

if [ ! -z "${DOWNLOAD_URL}" ]; then 
    if curl --output /dev/null --silent --head --fail ${DOWNLOAD_URL}; then
        echo -e "link is valid. setting download link to ${DOWNLOAD_URL}"
        DOWNLOAD_LINK=${DOWNLOAD_URL}
    else        
        echo -e "link is invalid closing out"
        exit 2
    fi
fi

cd /mnt/server
echo -e "\nInstalling/Updating Ree6...\n"

if [ -f Ree6.jar ]; then
    echo -e "Updating Ree6.jar to latest version..."
    echo -e '\t(Old version can be found at "Ree6.jar-old")'
    mv -f Ree6.jar Ree6.jar-old
fi

echo -e "Running: curl -sSL -o Ree6.jar ${DOWNLOAD_LINK}\n"
curl -sSL -o  Ree6.jar ${DOWNLOAD_LINK}

if [ -f config.yml ]; then
    echo -e "Updating config.yml to latest version..."
    echo -e '\t(Old version can be found at "config.yml-old")'
    mv -f config.yml config.yml-old
fi

echo -e "Running: curl -sSL -o config.yml ${CONFIG_LINK}\n"
curl -sSL -o config.yml ${CONFIG_LINK}
    

echo -e "\nRee6 Successfully Installed!"