Open source Dota 2 data platform
Clone or download
fcostantini and howardchung Add connection_log to players (#1783) (#1819)
* Add connection_log to players (#1783)

* Change event type to string, add migrations

* Remove unused message, small text fix

* Add myself to contributors file
Latest commit 2056f1c Dec 16, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dev update eslint rules (#1770) Oct 21, 2018
docker Update main-launch.sh Sep 22, 2018
elasticsearch fix tests Jul 16, 2018
processors Add connection_log to players (#1783) (#1819) Dec 17, 2018
routes Add connection_log to players (#1783) (#1819) Dec 17, 2018
scripts feedv2 implementation (#1793) Nov 17, 2018
sql Add connection_log to players (#1783) (#1819) Dec 17, 2018
store Feature/webhooks (#1802) Dec 10, 2018
svc Feature/webhooks (#1802) Dec 10, 2018
test feedv2 implementation (#1793) Nov 17, 2018
util Update filter.js Nov 21, 2018
.env_example changed env vars to enable, actually fixes #722 Nov 10, 2015
.eslintrc.json use destructuring Apr 13, 2018
.gitattributes Add .gitattributes to force LF on Windows Jul 28, 2017
.gitignore Add Contributor state to API (#1731) Sep 19, 2018
.travis.yml update docker Jul 16, 2017
CONTRIBUTORS.js Add connection_log to players (#1783) (#1819) Dec 17, 2018
Dockerfile Update Dockerfile Nov 2, 2017
LICENSE Update LICENSE Jan 20, 2018
README.md Update README.md Nov 15, 2018
WEBHOOKS.md Feature/webhooks (#1802) Dec 10, 2018
config.js Feature/webhooks (#1802) Dec 10, 2018
docker-compose.yml update to redis 5 Nov 9, 2018
index.js Update index.js Jul 4, 2018
manifest.json Feature/webhooks (#1802) Dec 10, 2018
package-lock.json Bump dotaconstants from 6.11.0 to 6.12.0 (#1832) Dec 11, 2018
package.json Bump dotaconstants from 6.11.0 to 6.12.0 (#1832) Dec 11, 2018

README.md

opendota-core

Help Contribute to Open Source

Overview

  • This project provides the OpenDota API for consumption.
  • This API powers the OpenDota UI, which is also an open source project.
  • Raw data comes from the WebAPI provided by Valve and fully automated parsing of match replays (.dem files).
  • A public deployment of this code is maintained by The OpenDota Project.

Tech Stack

  • Microservices: Node.js
  • Databases: PostgreSQL/Redis/Cassandra
  • Parser: Java (powered by clarity)

Quickstart (Docker)

  • Install Docker: curl -sSL https://get.docker.com/ | sh. If you are on Windows, make sure you shared the working drive with Docker.
  • Install Docker Compose: curl -L "https://github.com/docker/compose/releases/download/1.17.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose. If you are on Windows, docker-compose comes with the msi package.
  • Create .env file with required config values in KEY=VALUE format (see config.js for a full listing of options) cp .env_example .env
    • STEAM_API_KEY You need this in order to access the Steam Web API, which is used to fetch basic match data, player profile data, and cosmetic item data. You can use your main account to obtain the API key; it does not have to match the account used for the STEAM_USER and STEAM_PASS options. You can request an API key here: https://steamcommunity.com/dev/apikey
    • STEAM_USER, STEAM_PASS A Steam account is required to fetch replay salts. It is recommended to use a new account for this purpose (you won't be able to use the account on two different hosts at the same time, and the account must not have Steam Guard enabled). This is not required if you don't need to download/parse replays.
  • Start containers and initialize databases: docker-compose up
  • Make some changes and commit them.
  • Submit a pull request. Wait for it to be reviewed and merged.
  • OPTIONAL Add your DOTA friend code (SteamId3) to the CONTRIBUTORS.js file.
  • Congratulations! You're a contributor.

Notes

  • The API runs on port 5000 by default.
  • File changes made in the host directory get mirrored into the container.
  • Get a terminal into the running container: docker exec -it odota-core bash
  • The process manager pm2 is used to manage the individual services. Each is run as a separate Node.js process.
    • pm2 list See the currently running services.
    • pm2 start manifest.json Start all the services according to the manifest file
    • pm2 start manifest.json --only web Starts a specific service
    • pm2 stop web Stop a specific service
    • pm2 stop all Stop all the services
    • pm2 logs web Inspect the output of a service
  • docker system prune Cleans your system of any stopped containers, images, and volumes
  • docker-compose build Rebuilds your containers (e.g. for database schema updates)
  • docker pull odota/parser You may need to do this if the parser has updated. Remove and recreate the parser container to run the latest code.
  • Tests are written using the mocha framework.
    • npm test runs the full test suite.
    • Use mocha CLI for more fine-grained control over the tests you want to run.
  • Starter data
    • You can request some parses by ID to get some parsed data.
    • You can also run scanner to get some matches from the API.

Resources

History