Skip to content

πŸš€ Discord bot for almost everything - Memes, Image editing, Giveaway, Moderation, Anime and even more! With over 150 slash commands!

License

Notifications You must be signed in to change notification settings

IgorKowalczyk/majo.exe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Majo.exe Logo

Majo.exe

Majo.exe have almost everything - Fun, Memes, Images, Giveaway Moderation, Anime, NSFW and even more! Majo.exe serve over 150 commands!

Discord Discord.js CodeQL Checks GitHub License Version


Stand With Ukraine

πŸ”— Invite

Go to this link and add the bot (this requires MANAGE_GUILD permission) to your server.

✨ Features

  • βš™οΈ Fully customizable
  • πŸŒ† Build-in Dashboard
  • πŸ“ Easy Config
  • πŸ’― 150+ Commands
  • πŸ“š Easy Hosting

πŸ–₯️ Hosting

We host this bot. Majo.exe will be online 24/7. Invite Majo here!
However, if you want to host Majo.exe yourself - take a look here

Replit Terohost
Run on Repl.it Run on Terohost

πŸ€– Self-Hosting (Bot)

  1. Clone this repository git clone https://github.com/IgorKowalczyk/majo.exe.git
  2. Run npm i to install all dependencies,
  3. Grab a Discord Bot token and client secret on Discord's developer portal Tutorial
  4. Fill /config/config.js, /config/emojis_config.js with your values
  5. Create new file named .env Remember - the file is super secret, better to not share it.
  6. In .env file set this values:
    • TOKEN - Discord bot token [Tutorial]
    • PREFIX - Discord bot main prefix
    • ID - Your Discord Bot ID
    • SUPPORT_SERVER_ID - Your Support Server ID
    • AMEAPI - your Amethyste API token [Tutorial]
    • MYSQL_DATABASE - Your MYSQL database name
    • MYSQL_HOST - Your MYSQL Host Endpoint
    • MYSQL_PASSWORD - Your MYSQL user password
    • MYSQL_USER - Your MYSQL User name who can acces the database
    • ERRORS_WEBHOOK - Your errors webhook URL (Discord)
  7. Run npm run majo:bot

Note: See the example .env file below!


πŸ’Ύ Self-Hosting (Dashboard)

Note: API Process is children of Dashboard!

  1. Clone this repository git clone https://github.com/IgorKowalczyk/majo.exe.git
  2. Run npm i to install all dependencies,
  3. Grab a Discord Bot token and client secret on Discord's developer portal Tutorial
  4. Create new file named .env Remember - the file is super secret, better to not share it.
  5. In .env file set this values:
    • TOKEN - Discord bot token [Tutorial]
    • PREFIX - Discord bot main prefix
    • DOMAIN - Your website domain (eg https://example.com)
    • AMEAPI - Your Amethyste api token [Tutorial]
    • ID - Your Discord Bot ID
    • MYSQL_DATABASE - Your MYSQL database name
    • MYSQL_HOST - Your MYSQL Host Endpoint
    • MYSQL_PASSWORD - Your MYSQL user password
    • MYSQL_USER - Your MYSQL User name who can acces the database
    • CONTACT_WEBHOOK - Your Contact Webhook URL (Discord)
    • PORT - Your website port
    • RECAPTCHA_SITE_KEY - Google recaptcha v2 site key
    • RECAPTCHA_SECRET_KEY - Google recaptcha v2 secret key
    • SECRET - Discord bot secret [Tutorial]
  6. Fill dashboard config in /config/main_config.js
  7. Add these redirect URI's (https://discord.com/developers/applications/<YOUR-BOT-ID>/oauth2)
    •  https://your-domain.com
       https://your-domain.com/callback
       https://your-domain.com/dashboard
       https://your-domain.com/login
      
  8. Run npm run majo:dashboard in your terminal
  9. If everyting is ok go to your dashboard in browser (eg. to localhost:8000)

Note: See the example .env file below!

If you are hosting dashboard on Replit please run this command to install Node.js 16x:

  • npm init -y && npm i --save-dev node@16 && npm config set prefix=$(pwd)/node_modules/node && export PATH=$(pwd)/node_modules/node/bin:$PATH

🧱 Self-Hosting (API)

  1. Clone this repository git clone https://github.com/IgorKowalczyk/majo.exe.git
  2. Run npm i to install all dependencies,
  3. Grab a Discord Bot token and client secret on Discord's developer portal Tutorial
  4. Create new file named .env Remember - the file is super secret, better to not share it.
  5. In .env file set this values:
    • TOKEN - Discord bot token [Tutorial]
    • DOMAIN - Your website domain (eg https://example.com)
    • PORT - Your website port
  6. Run npm run majo:api in your terminal
  7. If everyting is ok go to your dashboard in browser (eg. to localhost:8001/api)

Additional info

Note: You can run API & Dashboard at the same time by running npm run majo:web

Note: You can run Dashboard, API & Dashboard at the same time by running npm run start

🧱 API Endpoints

πŸ”— API Link: https://majoexe.xyz/api/

API Endpoint (/api) Values Response (json) Conditions Error Codes
/ None Endpoints list None None
/v1/info/bot None JSON Object None None
/v1/fun/cat_fact None JSON Object None None
/v1/fun/eightball None JSON Object None None
/v1/fun/fortunes None JSON Object None None

Note: Any other endpoint will return error code 0 and error message

πŸ’Ύ .env File (Main Config)

.env config table

.env varriable Description Type Required (Bot) Required (Dashboard) Required (API)
TOKEN Discord bot token String βœ… βœ… βœ…
PREFIX The default bot prefix (eg. !majo) [Deprecated!] String βœ… βœ… ❌
ID Your Discord Bot ID Number βœ… βœ… ❌
SUPPORT_SERVER_ID Your support server ID Number βœ… ❌ ❌
AMEAPI Your Amethyste api token String βœ… βœ… ❌
MYSQL_DATABASE Your MYSQL database name String βœ… βœ… ❌
MYSQL_HOST Your MYSQL Host String βœ… βœ… ❌
MYSQL_USER Your MYSQL user String βœ… βœ… ❌
MYSQL_PASSWORD Your MYSQL password String βœ… βœ… ❌
MYSQL_PORT Your MYSQL Port (default is 3306) Number ❌ ❌ ❌
DOMAIN Your website domain (eg https://example.com) URL ❌ βœ… βœ…
PORT Your webiste port eg. 8080 Number ❌ βœ… βœ…
SECRET The bot client secret String ❌ βœ… ❌
ANALYTICS Google analytics tracking ID, used in Web-Dashboard String ❌ ❌ ❌
RECAPTCHA_SITE_KEY Google recaptcha v2 site key String ❌ βœ… ❌
RECAPTCHA_SECRET_KEY Google recaptcha v2 secret key String ❌ βœ… ❌
CONTACT_WEBHOOK Your contact form webhook URL URL ❌ βœ… ❌
STATUS_WEBHOOK Your status webhook URL URL ❌ ❌ ❌
ERRORS_WEBHOOK Your errors webhook URL URL βœ… βœ… βœ…
NODE_ENV Environment variable (production/development) String βœ… βœ… βœ…

Example .env file

.env.example

# Environment Config

# Required for everything (Bot, Dashboard & API)
TOKEN=YOUR_TOKEN_GOES_HERE
ERRORS_WEBHOOK=YOUR_ERRORS_WEBHOOK_URL
MYSQL_DATABASE=YOUR_MYSQL_DATABASE_NAME
MYSQL_HOST=YOUR_MYSQL_HOST
MYSQL_PASSWORD=YOUR_MYSQL_USER_PASSWORD
MYSQL_USER=YOUR_MYSQL_DATABASE_USER

# Required for bot
PREFIX=!majo
ID=YOUR_BOT_ID
SUPPORT_SERVER_ID=YOUR_SUPPORT_SERVER_ID
AMEAPI=YOUR_AMETHYSTE_API_TOKEN

# Required for Dashboard
CONTACT_WEBHOOK=YOUR_CONTACT_FORM_WEBHOOK
ERRORS_WEBHOOK=YOUR_ERRORS_WEBHOOK_URL
RECAPTCHA_SITE_KEY=YOUR_RECAPTCHA_SITE_KEY
RECAPTCHA_SECRET_KEY=YOUR_RECAPTCHA_SECRET_KEY
SECRET=YOUR_BOT_CLIENT_SECRET

# Required for web workers (Dashboard or API)
PORT=YOUR_WEBSITE_PORT

# Not required (optional)
ANALYTICS=YOUR_GOOGLE_TRACKING_ID
STATUS_WEBHOOK=YOUR_STATUS_WEBHOOK_URL

# Note: !majo is the default prefix, you can change it later.

πŸ—œοΈ Requirements

  • MySQL 5.7 or higher
  • Node.js 16x or higher
  • (Any) Linux x64*
  • 256MB of RAM
  • 512MB/1GB of hard drive space

*Debian based distro recommended

πŸ”“ Tokens tutorials

πŸ”‘ Discord Credentials

πŸ” Discord Token

  1. Go to Discord Developer Portal
  2. At the top right of the screen, click "New application" and assign it a name. Next in the left part of the screen on the navigation bar, find "Bot" then click it and find button named "Add Bot"
  3. After confirming the bot creation, click the "Copy token" button
  4. Paste your token in .env file - TOKEN=BOT_TOKEN

πŸ”“ Discord Bot Secret

  1. Go to Discord Developer Portal
  2. In the left part of the screen on the bar, find "OAuth2" then click it
  3. Find section named "Client Secret", under the bot secret click "Copy" button
  4. Paste client secret to .env - SECRET=CLIENT_SECRET

Written by: MashedPotato


πŸ” Amethyste API

  1. Go to Amethyste Register Page to create an new account
  2. Fill in all the required infomation
  3. Check your email to active your account
  4. After login, you'll be redicted to home page, scroll down and click Generate

Token will appear on top of that button, you can regenerate it in any time

  1. Paste your token in .env file - AMEAPI=TOKEN

Written by: MashedPotato


πŸ“ˆ Analytics ID

Soon!


πŸ” Re-Captcha Key

  1. Go to Google reCAPTCHA About Page
  2. Choose v3 Admin Console.
  3. If you have never generated a reCAPTCHA key before, you will be redirected to the key generation page.

If you have generated a reCAPTCHA key before, you will be redirected to the reCAPTCHA dashboard. Here will display the statistics of your past key. And to generate a key, tap the + button on the top right.

  1. Fill in the information in the form:
  • Label: Enter the label to identify the site.
  • reCAPTCHA type: Choose the type of reCAPTCHA for this site key
  • reCAPTCHA v3 : allows you to verify if an interaction is legitimate without any user interaction [Not recommended!]
  • reCAPTCHA v2 [Recommended!] :
    • I’m not a robot" Checkbox [Recommended!]
    • Invisible reCAPTCHA badge
    • reCAPTCHA Android
  • Domains: Enter your domain where the keys will be used.
  • Owners: By default, it will receive the email address you log in with. If you want to register for more accounts, enter the email addresses you want to specify
  • Terms of Service: Check the box to accept the reCAPTCHA Terms of Service
  • Send alerts to owners: Check the box to get alerts if Google detects issues with your site
  1. When complete, click the SUBMIT button.

Written by: MashedPotato

πŸ“ Contributors

πŸ’ Sponsors

These wonderful people and services have helped develop Majo.exe, without them this project would not exist. Thanks goes to these wonderful people!

Logo Sponsor Description Sponsored
Terohost Logo Terohost TeroHost is a Discord Bot hosting provider that helps take care of all your needs regarding your Discord Bot to ensure your bot perfect uptime, ping and speed. .xyz Domain & MySQL Database

⁉️ Issues

If you have any issues with the page please create new issue here

πŸ“₯ Pull Requests

When submitting a pull request:

  • Clone the repo.
  • Create a branch off of master and give it a meaningful name (e.g. my-awesome-new-feature).
  • Open a pull request on GitHub and describe the feature or fix.

πŸ“‹ License

This project is licensed under the MIT. See the LICENSE file for details

The cake is a lie 🍰

Github profile views

About

πŸš€ Discord bot for almost everything - Memes, Image editing, Giveaway, Moderation, Anime and even more! With over 150 slash commands!

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project