Repository navigation
Express.js Website
Node UTStats Lite Website 2.0
The entire website has been remade after ditching Next.js & React following all the issues with the React2Shell vulnerability as well as community feedback to using a lightweight express.js setup, with embededjs and vanila javascript. There are also other benefits to not using Next.js some examples being: simplifying installs, simplifying upgrades, not having to stop the website, rebuild the website, and then restart the website to allow the website to see new map screenshots you have uploaded via admin tools.
Installing
- You can not upgrade from a previous version of node-utstats-lite, however map screenshots are still the same so you can just copy them to your new install's /public/images/maps folder.
- Create a new folder on your server, and then place the contents from the archive into that folder.
- Open a terminal in the installed folder and run the command npm install to install dependencies.
- Open config.mjs in a text editor and set your MYSQL settings(you can not use the previous sites database, you either need to drop the old database, or simply choose another database name like node_utstats_lite_2 if you want to have a backup of your previous data), you can also now change the website's port if you wish to.
- Open a terminal in the installed folder and run the commaned node install.mjs to create the database tables and settings needed for the site.
Running The Website
- In a terminal run the command node app.mjs
Note
- Not all the admin tools have been completed yet, all the previous site's tools will return.
- A few page elements are missing like the HeatMap activity component.
- The match JSON api is not done yet.
Change Log
- The website no longer uses the next.js framework, or react, the whole website was recreated using express.js, and ejs.
- Player totals are now saved for each gametype, map, and gametype + map combinations.
- Player CTF best values are now saved for each gametype, map, and gametype + map combinations.(flag grabs,kills,covers,... and more).
- Player CTF League now has a table for all time results, meaning any gametype any map combination in addition to the existing gametype, map, map & gametype combinations.
- Player CTF League now has a table for map all time, meaning target map with and gametype is counted towards the table.
- Added combined tab to CTF League page.
- Added Match frags graphs, you can now see how many kills, deaths, team kills, team deaths at various timestamps, default value is every 15 seconds.
- Added mapScreenshotQuality variable in config.js, you can now override map screenshots quality to your liking for better looking images or smaller files sizes
- Admins no longer have to stop the website process, rebuild the website, and then restart the website to see uploaded map screenshots.
- Admin welcome message can now have html as content.
- Added failed login attempts limit, ip will now be banned temporarily if they reach maxLoginAttemps for maxLoginBanPeriod, admins can change these values in config.mjs
- Fixed an issue where headshots are not correct if a player reconnects at any point in a match before or during a match.