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: settrueto limit most API routes towhitelisted_ips.whitelisted_ips: keep required defaults and add trusted sources.rate_limit.enabled: keep enabled for protection.rate_limit.proxied: settrueif you are behind Nginx/Apache/Cloudflare.
Dashboard Configuration
Now open /common.json and edit the dashboard section.
1. Enable dashboard
"enabled": true2. Set dashboard port
"port": 3222Use 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: settrueto disable config editing from the panel. The bot will use the configuration files in/configurationinstead.sync_dashboard_configs_to_file: settrueto sync DB changes back into/configurationfiles.
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:
- https://discord.com/developers/applications
- Go to
OAuth2->Redirects
Add one of these:
http://<host_ip>:<dashboard_port>/api/auth/callbackhttps://<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 '<', API status errors, or redirect loops:
- Confirm
authentication_keyis not default and is valid. - Confirm dashboard and API ports are different and reachable.
- Confirm
dashboard_base_urlandweb_api_base_urlare 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.proxiedis configured correctly.