Egg Repository

Pterodactyl Community Egg Repository

Ree6

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

Read Me

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.

Yolks
NameTag
Java_17ghcr.io/pterodactyl/yolks:java_17
Variables
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
[REQUIRED] Discord Bot TokenThe 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/BOT_TOKENYesYes
Dagpi tokenYour Dagpi.xyz API-Token, for tweet image generation!DAGPI_TOKENYesYes
Sentry DSNYour Sentry DSN, for error reporting!SENTRY_DSNYesYes
Spotify Client IdSpotify Application Configuration, used to parse Spotify Tracks/Playlists to YouTube search queries.SPOTIFY_CLIENT_IDYesYes
Spotify Client SecretSpotify Application Configuration, used to parse Spotify Tracks/Playlists to YouTube search queries.SPOTIFY_CLIENT_SECRETYesYes
Heartbeat UrlThe URL to the Heartbeat-ServerHEARTBEAT_URLnoneYesYes
Heartbeat IntervalThe interval between the heartbeats.HEARTBEAT_INTERVAL60YesYes
Amari TokenYour Amari API-Token, for Amari Level imports!AMARI_TOKENYesYes
Twitch Client IdTwitch Application Configuration, used for the StreamTools and Twitch Notifications.TWITCH_CLIENT_IDYesYes
Twitch Client SecretTwitch Application Configuration, used for the StreamTools and Twitch Notifications.TWITCH_CLIENT_SECRETYesYes
Twitter Bearer KeyTwitter Application Configuration, used for the Twitter Notifications.TWITTER_BEARERYesYes
Reddit Client IdReddit Application Configuration, used for the Reddit Notification.REDDIT_CLIENT_IDYesYes
Reddit Client SecretReddit Application Configuration, used for the Reddit Notification.REDDIT_CLIENT_SECRETYesYes
Instagram UsernameInstagram Application Configuration, used for the Instagram Notification.INSTAGRAM_USERNAMEYesYes
Instagram PasswordInstagram Application Configuration, used for the Instagram Notification.INSTAGRAM_PASSWORDYesYes
SQL UsernameUsername for the SQL connection.DATABASE_USERrootYesYes
SQL DatabaseDatabase for the SQL ConnectionDATABASE_DBrootYesYes
SQL PasswordPassword for the SQL connection.DATABASE_PWYesYes
SQL PortPort for the SQL connection.DATABASE_PORT3306YesYes
Database TypThe Typ of the Database Ree6 should use! Possible typs: - mariadb - sqlite - h2 - postgresDATABASE_TYPsqliteYesYes
Database StoragefileThe location of the storagefile if sqlite is being used.DATABASE_FILEstorage/Ree6.dbYesYes
[DEVELOPER-STUFF] Database PoolsizeThe Database connection pool size!DATABASE_POOL10YesYes
Database hostThe Host address of the Database connection.DATABASE_HOSTlocalhostYesYes
OpenAI TokenYour Authentication token that should be used in the AI API calls.AI_TOKENOpenAI API-TokenYesYes
OpenAI UrlThe URL that should receive the API calls.AI_URLhttps://api.openai.com/v1/chat/completionsYesYes
OpenAI ModelThe AI model that should be used in the API calls.AI_MODELgpt-3.5-turbo-0301YesYes
Activity StatusThe Activity status of the Bot that will be shown.MISC_STATUSree6.de | %guilds% Servers. (%shard%)YesYes
Feedback ChannelThe Channel Id of the Feedback channel.MISC_FEEDBACK0YesYes
[DEVELOPER-STUFF] Bot Owner IdThe ID of the Bot Owner, this will be used internally on some checks.MISC_OWNER321580743488831490YesYes
Invite LinkThe Invite link to invite the Bot.MISC_INVITEhttps://invite.ree6.deYesYes
Predefined Information for AIThe Information for the AI.MISC_PREDEFYou are Ree6 a Discord bot.YesYes
Support LinkThe Url link for users to receive support.MISC_SUPPORThttps://support.ree6.deYesYes
WebsiteThe Url to the Website of the Bot.MISC_WEBhttps://ree6.deYesYes
WebinterfaceThe Url to the Webinterface.MISC_INTERFACEhttps://cp.ree6.deYesYes
Record UrlThe Url that uses can access to get their recording.MISC_RECORDhttps://cp.ree6.de/external/recordingYesYes
Twitch UrlThe Url used to connect a Twitch Account with the Ree6 System.MISC_TWITCHhttps://cp.ree6.de/external/twitchYesYes
AdvertismentThe Advertisement in Embed Footers and the rest.MISC_ADVpowered by Tube-hostingYesYes
NameThe Name of the Bot.MISC_NAMERee6YesYes
ShardsThe amount of shards that should be created.MISC_SHARD1YesYes
Install Script
#!/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!"