The DCS Statistics Dashboard is an opinionated approach to displaying the statistics gathered by the DCS Server Bot by Special-K in a web based analytics dashboard.
As of version 2.0 - the dashboard is utlizing Laravel for the backend and Filament PHP for the frontend. The responsive design is powered by Tailwind CSS v4
Laravel is accessible, powerful, and provides tools required for large, robust applications.
Warning
These installation steps presume that you have already configured your DCS Server Bot RestAPI & Webservice. For more information on that please head on over to the relevent documentation:
You will need both your RestAPI address / port & your API Key.
Although the API Key is not strictly required - it is highly encouraged for security.
To install on a pre-built webserver follow these steps:
Given that this project utlizes Laravel underneath, the following are minimum server requirements for the webserver:
- PHP >= 8.2
- Ctype PHP Extension
- cURL PHP Extension
- DOM PHP Extension
- Fileinfo PHP Extension
- Filter PHP Extension
- Hash PHP Extension
- Mbstring PHP Extension
- OpenSSL PHP Extension
- PCRE PHP Extension
- PDO PHP Extension
- Session PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- Redis PHP Extension
On top of this - you will also want to have a Redis Server setup for caching purposes. You can do without, but Redis is preferred and the most stable approach for caching.
Once you have your server(s) setup, continue to step II.
Using Git to clone the repo is the suggested method - this will make updates down the road significantly easier.
git clone https://github.com/Penfold-88/DCS-Statistics-DashboardEvery Laravel project needs an .env file - this is where a lot of the base configuration is stored and so long as you have setup your webserver correctly, it is entirely inaccessable to the world which makes it the perfect place to store things like API keys.
cp .env.example .envGenerate an App Key with artisan - this is used as a salt for all encryption and is unique to each install.
php artisan key:generateOpen up the .ENV and modify the following:
APP_URL= //Set this to the fqdn for your stats website. EG: https://your-stats.domain
# DCS Server Bot Websockets API URL
DCS_BOT_API_URL= // This is both the IP address (or fqdn) and port. EG: http://localhost:9876
# DCS Server Bot API Key
DCS_BOT_API_KEY= // This is the key you set in your Rest API configuration files on the DCS Server Bot.This project ships with a default database setup. Let's copy it to the right spot:
cp database.sqlite.default database/database.sqliteOnce you have copied it over - continue on.
Install the composer assets & generate the CSS & JS build files.
composer install
npm install
npm run buildThe small SQLite database has been resetup with most of the application defaults you need. The part that still remains is getting the default admin user created. Do so with the db seeder:
php artisan db:seed --forceOnce that is complete - you are good to go! I highly suggest you change the default admin credentials:
Username: admin@changeme.com
Password: passwordYou can do so by logging into the stats-config panel and going to the profile:
https://your-project.domain/stats-config/profile
In order for the application to find the images you upload in the branding, you need to link the storage. Do so with artisan:
php artisan storage:linkLaravel is setup to pre-render views, etc... This greatly decreases load times. Do so with artisan:
php artisan optimizeThis project comes with a configuration panel where you can adjust different options pertaining to the branding of the website. Including:
- Brand Name
- Brand Logo ** If a logo is set, the Brand Name no longer shows on the top bar
- Header Image
- Color Schemes [primary, success, info, warning, danger, gray] based on Tailwind CSS color pallets.
The package comes included with some default settings for these - but if you wish to adjust them you can do so by signing into the stats-config panel using the username & password you made in the last step of the setup. https://your-project.domain/stats-config/brand-settings
Many of the features within this project can be turned off with ease. Within the stats-config panel located at https://your-project.domain/stats-config/feature-settings, you can enable / disable the following:
- Pages
- Leaderboard
- Player Stats
- Squadrons ** Requires that you have the Squadrons feature enabled in the DCS Server Bot
- Servers
- Leaderboard Columns
- Deaths
- KDR
- Credits ** Requires that you have the Credits feature enabled in the DCS Server Bot
- Playtime
- Player Stats Widgets
- All
- Dashboard Widgets
- All
- Server Selector
We welcome contributions from the DCS community! Anyone with a knowledge of Laravel and Filament PHP is welcome to submit a PR to help contribute to this project. Given the codebase - if you wish to contribute to the overall project - please submit a PR to this repo.
If you are looking to create a new widget or feature for the statistics, please head over to the Filament PHP DCS Server Stats Plugin repo to submit a PR.
- ✅ Follow existing code patterns
- ✅ Test responsive design
- ✅ Ensure security best practices
- ✅ Update documentation
- ✅ Include screenshots for UI changes
This project is licensed under the MIT License - see LICENSE file.
- DCSServerBot by Special K - The foundation of this system
- Global Task Force Overlord - Version 2.0 codebase upgrades
- Sky Pirates Squadron - Original development and testing
- DCS Community - Continuous feedback and improvements
- Eagle Dynamics - For creating DCS World
⭐ Star this repository if it helps your community!
🐛 Report issues to help improve the platform
💬 Share with other DCS server administrators
🎮 Join the community and showcase your dashboard
- 💬 Discord Support - Get help and chat with the community
- 📖 Documentation
- 🐛 Issue Tracker
- 🌐 Live Demo
Transform your DCS server into a professional gaming platform today! 🎖️
