Bastion
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
Ports
Add an allocation on the node for each port.
- Bastion API Port 8377
Install
- Installer image
- node:20-bookworm
- Install script
- 56 lines
Image
- Bastion ghcr.io/ptero-eggs/yolks:bot_bastion
Startup
The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.
9 variables
Startup command
npm startThe Bot Token you get from https://discordapp.com/developers/applications/
BOT_TOKENUsers can edit
required|string|max:80
The Bot ID you get from https://discordapp.com/developers/applications/
BOT_IDUsers can edit
required|string|max:32A value is required.
use `mongodb://127.0.0.1:27017/bastion` for using the build in mongodb server
MONGO_URIUsers can edit
required|string|max:128
When enabled, Bastion updates the activity to the currently playing track
BASTION_MUSIC_ACTIVITYUsers can edit
required|string|in:true,false
When enabled, Bastion will relay any direct messages it receives to the owner of the bot application / team.
BASTION_RELAY_DMSUsers can edit
required|string|in:true,false
When enabled, this disables usage of unsafe commands like `exec` and `eval`.
UNSAFE_MODEUsers can edit
required|string|in:true,false
Port used for Bastion API Server
BASTION_API_PORTUsers can see
required|string|max:10
Auth for accessing the Bastion API Server.
BASTION_API_AUTHUsers can edit
nullable|string|max:128
set to `npm start` if you just want to start the bot. set to `npm run commands` to activate the slash commands
STARTUP_CMDUsers can edit
required|string|in:npm start,npm run commands
Wings
- Stop command
- ^^C
- Running when the console shows
- Ready
Readme
Bastion
From their Github
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.
Running the bot
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
Server Ports
| Port | default |
|---|---|
| Bastion API Port | 8377 |
Mongodb
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
Startup cmd
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.
Problem with this egg?
Open an issue on GitHub. Include your Panel and Wings versions.
Install script 56 lines bash in node:20-bookworm Show Hide
#!/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 "-----------------------------------------"