My App
Getting Started

Dashboard Setup

Configure the AthenaBot Web API, dashboard, and Discord OAuth.

Follow this guide from top to bottom.

The Dashboard depends on your Web API config, then your common.json, then Discord OAuth.

Stop the bot before continuing.

Changing dashboard or API values while AthenaBot is running can cause startup issues and stale cache values.

AthenaBot Web API Setup

The Web API is the bridge between AthenaBot and the Dashboard. If this is wrong, the dashboard will not load data.

Open /configuration/web_api.json(5) and complete these steps:

1. Set your API port

Pick a free port (example uses 3111):

port: "3111"

2. Set a secure authentication key

Replace the default value in authentication_key:

authentication_key: ["your-super-secure-key"]

Leaving the default API key is unsafe and can break plugin startup checks.

3. Set base IP / domain

Configure base_ip as one of the following:

  • "<host_ip>:<web_api_port>" (IP/port setup)
  • "<domain>" (domain setup)

4. Optional hardening options

  • secure_mode: set true to limit most API routes to whitelisted_ips.
  • whitelisted_ips: keep required defaults and add trusted sources.
  • rate_limit.enabled: keep enabled for protection.
  • rate_limit.proxied: set true if you are behind Nginx/Apache/Cloudflare.

Dashboard Configuration

Now open /common.json and edit the dashboard section.

1. Enable dashboard

"enabled": true

2. Set dashboard port

"port": 3222

Use a different port than Web API.

3. Configure both URLs

Dashboard URL:

"dashboard_base_url": "http://:"

or

"dashboard_base_url": "https://"

Web API URL:

"web_api_base_url": "http://:"

4. Whitelist your Discord account

Add your Discord user ID to:

"whitelisted_user_ids": ["YOUR_DISCORD_USER_ID"]

5. Review optional dashboard flags

  • disable_dashboard_configuration: set true to disable config editing from the panel. The bot will use the configuration files in /configuration instead.
  • sync_dashboard_configs_to_file: set true to sync DB changes back into /configuration files.

Any changes made in the dashboard are not automatically written to the bot configuration files in /configuration. The dashboard stores settings in the database, and while the dashboard is enabled, those database values override values from config files.

If you want dashboard settings to be written back into config files, enable sync_dashboard_configs_to_file in common.json. Enabling this can overwrite your existing configuration files. This synchronization is one-way only: dashboard -> file.

If you want to reset dashboard settings and restore values from configuration files, run this command while the bot is running:

script clear-dashboard

This system is still in BETA, so use it carefully.


Discord OAuth Setup

The dashboard login uses Discord OAuth.

1. Add redirect URL

Open your app in the Discord Developer Portal:

Add one of these:

  • http://<host_ip>:<dashboard_port>/api/auth/callback
  • https://<domain>/api/auth/callback

2. Add client secret to common.json

Reset/copy your Discord Client Secret and set:

"discord_client_oauth_secret": "YOUR_NEW_DISCORD_CLIENT_SECRET"

Final Checklist

  • Stop the bot before editing config.
  • Web API configured (port, authentication_key, base_ip).
  • Dashboard configured (enabled, port, base URLs, whitelist IDs).
  • OAuth redirect added in Discord Developer Portal.
  • OAuth secret added to common.json.
  • Restart AthenaBot and open your panel URL.

If login works and dashboard cards/pages load, your setup is complete.


Dashboard Errors

If you hit errors like fetch failed, Unexpected token '&lt;', API status errors, or redirect loops:

  • Confirm authentication_key is not default and is valid.
  • Confirm dashboard and API ports are different and reachable.
  • Confirm dashboard_base_url and web_api_base_url are correct.
  • Confirm OAuth redirect URL exactly matches your dashboard URL.
  • Confirm your Discord ID is included in whitelisted_user_ids.
  • If proxied, confirm rate_limit.proxied is configured correctly.

On this page