Giter VIP home page Giter VIP logo

csgo-rcon-nodejs's Introduction

Counter-Strike Global Offensive Web Panel

A web panel to control a CS:GO server

Build Status release dependencies license

Backend Structure

  • NodeJS
  • Simple Node Logger
  • srcds-rcon
  • Json DB
  • Express
  • Express-WS

Frontend Structure

  • Webpack
  • Preact
  • Preact Router
  • Bootstrap
  • Sass
  • Sockette

Basic Usage

  • Download the latest version from the releases page on GitHub
  • Save the binary in it's own folder
  • Run the binary (this will create some additional files/folders)
  • Adjust the config.json
  • Restart the binary

Then open up a webbrowser and go to the site

Development Usage

  • Install NodeJS 8.0 or higher
  • Copy the _scripts/config/config.dev.json to here app/src/config/config.json
  • Run npm install in the root project folder
  • Run npm run webpack in the root project folder
  • Run npm run dev in the root project folder

Then open up a webbrowser and go to the site

Logging

All logs will be written to the csgo-rcon.log file in the node folder.

To increase the logging change the logger level in the config.json file from info to debug.

Database

To make this as simple as it is I use a local Json database.

Checkout csgo-rcon.json since this is the db file.

Plugin

To enable livescoring and auto match configuration please install the SourceMod Plugin:

https://github.com/glenndehaan/csgo-rcon-plugin

Language Support

  • English
  • French
  • German
  • Dutch

config.json Explanation

{
  "application": {
    "companyName": "A Company", <<- This name will be prefixed in the servername
    "baseUrl": "http://CURRENTIP:3542" <<- Change 'CURRENTIP' to the IP of the CSGO-Remote server. Your CS:GO servers must be able to connect to the CSGO-Remote app
  },
  "servers": [ <<- Put all your CS:GO server in this block
    { <<- A server block
      "ip": "192.168.1.xx", <<- CS:GO server IP/Hostname
      "port": 27015, <<- CS:GO server Port
      "password": "anrconpassword", <<- CS:GO server password
      "default_map": "de_dust2", <<- CS:GO server default loading map
      "server_restore_config": "server" <<- Leave this default
    }
  ],
  "broadcaster": { <<- The broadcaster sends messages to the CS:GO server chat
    "enabled": true, <<- Enables the broadcaster
    "speed": 120, <<- After how long do we need to send the next message in seconds
    "messages": [ <<- This block contains all the messages
      "This is message 1", <<- This is one message
      "This is message 2",
      "This is message 3"
    ]
  },
  "authentication": { <<- This block is for the /settings pages
    "username": "root", <<- Username for the /settings pages
    "password": "password123!" <<- Password for the /settings pages
  }
}

v2 TODO's

  • GitHub Request: #2
  • Wingman: Connect server needs to change map to wingman map
  • Dangerzone: Connect server needs to change map to dangerzone map
  • Dangerzone: Knife round needs to be disabled
  • Dangerzone: Start match needs to stop warmup
  • Dangerzone/Wingman: Restore game_type/game_mode to competitive
  • Healthcheck needs to be faster
  • Translations add socket error messages
  • Add frontend translations
  • Add Bo1, Bo2, Bo3, Bo4, Bo5 support
  • Add wingman and dangerzone support (maps, configs)
  • Add support for uploading scores back to challonge
  • Replace basic auth with frontend login
  • Add livescoring to Home/Servers view
  • Add Readme config.json explanation
  • Implement LoadBalancing (Redis)?
  • Implement MongoDB?
  • Implement lang files tests
  • Implement basic tests
  • Implement NodeJS server logs web interface
  • Implement NodeJS server controls (Not possible)
  • Better GitHub release integration
  • Rcon Healthcheck (Auto reinit Rcon connection)
  • Rcon Command error/timeout (https://github.com/randunel/node-srcds-rcon#specify-command-timeout)

v1 TODO's

  • Lock matches on same server when one match is running.
  • Fix production PKG build.
  • Add say to admin interface.
  • Add broadcaster to config file.
  • Fix restore server config file. (Restore config is now optional)
  • Catch srcds error's. (Send cmd if rcon fails)
  • Create one cmd for rcon. (Use in startMatch, reset) Let others use that.
  • Rcon reconnect? (Not possible with current package!)
  • Rcon server/match status? (V2)
  • Challonge (API/Webhook) match import?
  • Rewrite (server modules) to ES6 classes?
  • Bootstrap Notification bar. (Showing that we are sending something)
  • Add match groups
  • Edit match
  • Add native system notifications
  • Add SVG's to replace bulky buttons
  • Protect /settings page with basic auth (Username/Password in config file)
  • Challonge import server option: Next available server
  • Challonge import complete notification update
  • Settings icon active state stuck
  • Restart game implement are you sure dialog
  • Rewrite queue module
  • Filter matches on homepage (Not started, Running, Completed)
  • /settings add archive complete matches function
  • Disable match/server controls if match isn't started
  • Server overview page to so available server where no matches are running
  • Add breadcrumbs
  • Add /settings force archive match
  • /about page with software info
  • Version update available based on GIT (GitHub)
  • Show development/production version
  • Autosetup server (V3)
  • Match control password protect at match create
  • Plugin: Lock match data after match_end
  • Plugin: Split connect server/start match
  • Plugin: Add start warmup button
  • Plugin: Autoflow Connect Server->Warmup->Start Knife->Knife (End)->Warmup->Start match->Match end->Auto restore server
  • CSV Import matches

License

MIT

csgo-rcon-nodejs's People

Contributors

chrisekn avatar drarig29 avatar glenndehaan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

csgo-rcon-nodejs's Issues

Something suspicious...

db.push(`/match[${dataString.data.id}]/status`, 2);

Hi, I'm trying to understand all your code to adapt it for a LAN of which I'm one of the admins...
Here are your status codes for a match:

  • 0 - Just created (not started)
  • 1 - Server connected
  • 2 - Knife round running
  • 3 - Match running (main)
  • 20 - Warmup running
  • 50 - Paused
  • 99 - Ended
  • 100 - Archived

I was wondering... Why do you set one match's status to 2 (which is for the knife round) when you get a game_resume instruction?

Thank you for your time :)

loadCSGOConfig

I'm receiving:

TypeError: configProvider.loadCSGOConfig is not a function

Have you idea?

configProvider requests a config file from modules folder, but don't exists.
Can you help me?

question: connect to local server

So I'm practicing locally, and I'd like to use this to show on my another monitor (just for example)
How do I find my rcon address/password for when I'm playing by myself? (not connected to a server)

Sample of csgo-rcon.json file

Hi! Could you add a sample of a not empty csgo-rcon.json database?
Because when I use your release, the file only contains {"match":[],"group":[]}
So I can't create a match in the web panel since there is no match group available and I can't submit the form.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.