Skip to content

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

egg-bastion.json

updated

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 start
  • The 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.

Changes

  1. Import chatbots

    · Daniel Barton · f917e8a

All changes on GitHub

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
#!/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 "-----------------------------------------"