Bastion is a multi-purpose Discord Bot that can help you automate most tasks in your server, from administration and moderation to keeping the members active through various incentives, games and other fun activities
Bastion is a multi-purpose Discord Bot that can help you automate most tasks in your server, from administration and moderation to keeping the members active through various incentives, games and other fun activities.
You need to enable both Privileged Gateway Intents
for the bot to run.
Invite link: https://discord.com/oauth2/authorize?client_id=INSERT_APP_ID_HERE&scope=bot&permissions=8
Port | default |
---|---|
Bastion API Port | 8377 |
Mongodb is automaticly running in the background. Leave Mongo URL to the default to use it. If you want to use a external mongodb server a connection string should look like: mongodb+srv://<username>:<password>@<ip>/?retryWrites=true&w=majority
By default this should be npm start
but if you want to register your slash commands set it to npm run commands
it will activate the slash commands on discord's side. Then the server will crash, change it back to npm run
to start the bot back up and have slash commands enabled.
Name | Tag |
---|---|
Bastion | ghcr.io/ptero-eggs/yolks:bot_bastion |
Name | Description | Environment Variable | Default Value | User Viewable | User Editable |
---|---|---|---|---|---|
Bot Token | The Bot Token you get from https://discordapp.com/developers/applications/ | BOT_TOKEN | GETABOTTOKEN | Yes | Yes |
Bot Client ID | The Bot ID you get from https://discordapp.com/developers/applications/ | BOT_ID | Yes | Yes | |
Mongo URL | use `mongodb://127.0.0.1:27017/bastion` for using the build in mongodb server | MONGO_URI | mongodb://127.0.0.1:27017/bastion | Yes | Yes |
Music Activity | When enabled, Bastion updates the activity to the currently playing track | BASTION_MUSIC_ACTIVITY | true | Yes | Yes |
Relay Direct Messages | When enabled, Bastion will relay any direct messages it receives to the owner of the bot application / team. | BASTION_RELAY_DMS | false | Yes | Yes |
Safe Mode | When enabled, this disables usage of unsafe commands like `exec` and `eval`. | UNSAFE_MODE | false | Yes | Yes |
Bastion API Port | Port used for Bastion API Server | BASTION_API_PORT | 8377 | Yes | No |
Bastion API Auth | Auth for accessing the Bastion API Server. | BASTION_API_AUTH | Yes | Yes | |
Startup cmd | set to `npm start` if you just want to start the bot. set to `npm run commands` to activate the slash commands | STARTUP_CMD | npm start | Yes | Yes |
#!/bin/bash
# Bastion Bot Installation Script
#
# Server Files: /mnt/server
## Move to install folder
apt update
apt install -y build-essential libtool python3 git tar
mkdir -p /mnt/server/
cd /mnt/server/
if [ -d "/mnt/server/mongodb" ]
then
cd /mnt/server/
echo "backing up mongodb"
REINSTALL=true
tar -czf mongodb_backup.tar.gz mongodb/
mv mongodb_backup.tar.gz /tmp
fi
cd /mnt/server
rm -rf * .git/ .github/ .env.example .eslintrc.yml .gitattributes .gitignore .npm/
## Clone repo
echo "cloning Bastion bot"
git clone -q --depth 1 https://github.com/TheBastionBot/Bastion.git ./
echo "updating npm"
npm install -g npm@latest
echo "npm install --no-package-lock"
npm install --no-package-lock
echo "npm run build"
npm run build
## Move config files.
mv settings.example.yaml settings.yaml
rm -rf bastion.cmd .env.example bastion.sh scrips/
mkdir -p mongodb/
if [ "$REINSTALL" == "true" ]
then
cd /mnt/server
echo "reinstall"
mv /tmp/mongodb_backup.tar.gz /mnt/server
tar xf mongodb_backup.tar.gz
rm mongodb_backup.tar.gz
else
echo "fresh install"
fi
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"