Skip to content

IgorKowalczyk/majo.exe

rebuild
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
api
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

You're currently on the rebuild branch. The code you find here may not work or contain a lot of bugs. Do not use it in production!

⚠️ Go to stable branch ⚠️



Header

Discord Discord.js CodeQL Checks GitHub License Version

✨ Features

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

πŸ”— Invite

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

πŸ–₯️ 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]
    • 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]
    • 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 βœ… βœ… βœ…
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
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 , 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: _index1337


πŸ” 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: _index1337


πŸ“ˆ 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: _index1337

πŸ“ 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!

Sponsor Description
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.

⁉️ 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