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

Report an issue
updated
variables
9
images
1
author
parker@parkervcp.com
sha256
34ba7d106ba2

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.

Startup command

{{STARTUP_CMD}}

The parts in blue are filled in by the panel when the server starts, from the variables below.

Docker image

  • Bastion ghcr.io/ptero-eggs/yolks:bot_bastion

1 contributor

Variables

9 settings

  • Bot Token

    The Bot Token you get from https://discordapp.com/developers/applications/

    env
    BOT_TOKEN
    default
    GETABOTTOKEN
    rules
    required|string|max:80
    • viewable
    • editable
  • Bot Client ID

    The Bot ID you get from https://discordapp.com/developers/applications/

    env
    BOT_ID
    default
    none
    rules
    required|string|max:32
    • viewable
    • editable
  • Mongo URL

    use `mongodb://127.0.0.1:27017/bastion` for using the build in mongodb server

    env
    MONGO_URI
    default
    mongodb://127.0.0.1:27017/bastion
    rules
    required|string|max:128
    • viewable
    • editable
  • Music Activity

    When enabled, Bastion updates the activity to the currently playing track

    env
    BASTION_MUSIC_ACTIVITY
    default
    true
    rules
    required|string|in:true,false
    • viewable
    • editable
  • Relay Direct Messages

    When enabled, Bastion will relay any direct messages it receives to the owner of the bot application / team.

    env
    BASTION_RELAY_DMS
    default
    false
    rules
    required|string|in:true,false
    • viewable
    • editable
  • Safe Mode

    When enabled, this disables usage of unsafe commands like `exec` and `eval`.

    env
    UNSAFE_MODE
    default
    false
    rules
    required|string|in:true,false
    • viewable
    • editable
  • Bastion API Port

    Port used for Bastion API Server

    env
    BASTION_API_PORT
    default
    8377
    rules
    required|string|max:10
    • viewable
  • Bastion API Auth

    Auth for accessing the Bastion API Server.

    env
    BASTION_API_AUTH
    default
    none
    rules
    nullable|string|max:128
    • viewable
    • editable
  • Startup cmd

    set to `npm start` if you just want to start the bot. set to `npm run commands` to activate the slash commands

    env
    STARTUP_CMD
    default
    npm start
    rules
    required|string|in:npm start,npm run commands
    • viewable
    • editable
Installation script 56 lines container node:20-bookworm entrypoint bash 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 "-----------------------------------------"