| Service | Host | Port | Protocol | Description |
|---|---|---|---|---|
| Discord Bot | - | - | Gateway | Connects to Discord via WebSocket |
| Dashboard (FastAPI) | 0.0.0.0 |
18080 | HTTP | Web dashboard & REST API |
| Lavalink | 0.0.0.0 |
12333 | HTTP/WS | Audio streaming server |
- Landing Page:
http://localhost:18080/ - Dashboard:
http://localhost:18080/dashboard - API Health:
http://localhost:18080/api/health - Bot Status:
http://localhost:18080/api/status - Lavalink Status:
http://localhost:18080/api/lavalink - Lavalink Health:
http://localhost:18080/api/health/lavalink
- Info:
http://localhost:12333/v4/info(requiresAuthorization: <your-lavalink-password>) - Version:
http://localhost:12333/version - Stats:
http://localhost:12333/v4/stats(requires auth)
# Dashboard
DASHBOARD_ENABLED=true
DASHBOARD_HOST=0.0.0.0
DASHBOARD_PORT=18080
DASHBOARD_SECRET_KEY=your-secret-key-here
DASHBOARD_CORS_ORIGINS=http://localhost:18080,http://127.0.0.1:18080
# Lavalink
LAVALINK_HOST=127.0.0.1
LAVALINK_PORT=12333
LAVALINK_PASSWORD=<your-lavalink-password>
LAVALINK_SECURE=false
# Discord
DISCORD_BOT_TOKEN=your-bot-token
GUILD_ID=1074037877899542538
MUSIC_CHANNEL_ID=1097945134630445227
MUSIC_VOICE_CHANNEL_ID=1097945134630445227
OWNER_ID=954887574248374322-
Start Lavalink first (port 12333)
cd lavalink && java -jar Lavalink.jar
Or use:
start_lavalink.bat -
Start Discord Bot (includes Dashboard on port 18080)
python -m bot.main
Or use:
start_bot.bat -
Or start everything at once:
start_all.bat
stop_all.bat| File | Purpose |
|---|---|
.env |
Main configuration (tokens, IDs, ports) |
lavalink/application.yml |
Lavalink server configuration |
bot/config.py |
Python config model (loads from .env) |
- Dashboard binds to
0.0.0.0:18080- accessible from LAN - Lavalink binds to
0.0.0.0:12333- accessible from LAN - For production behind reverse proxy, set
DASHBOARD_HOST=127.0.0.1
GET /api/health- Returns{ "ok": true, "ready": true }GET /api/health/lavalink- Returns Lavalink connection status- Lavalink:
GET /v4/infowithAuthorizationheader
| Issue | Solution |
|---|---|
| Dashboard 500 error | Check DASHBOARD_SECRET_KEY is not default value |
| Lavalink connection failed | Verify Lavalink is running on port 12333 |
| Bot not responding | Check DISCORD_BOT_TOKEN in .env |
| Port already in use | Kill existing processes: taskkill /F /IM python.exe /IM java.exe |