Database explorer for World of Warcraft servers.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
packages
.editorconfig
.envrc-sample
.gitignore
AUTHORS
LICENSE
README.md
lerna.json
package.json

README.md

Spelunker

Version Join chat Known Vulnerabilities Maintainability

Database explorer for World of Warcraft servers.

Licensed under the MIT license.

Spelunker

Features

Spelunker exposes data from auth, characters and world databases as well as World of Warcraft's own game files through an API. Its web client can be used to conveniently browse the dataset, similar to Wowhead.

Both parts are developed in unison in this repository using Lerna, a tool for managing JavaScript projects with multiple packages.

Disclaimer: To deliver game resources – such as icons – to the web client, Spelunker ships with a pipeline serving up resources to the browser over HTTP. Depending on your network configuration these may be available to others. Respect laws and do not distribute game data you do not own.

Be mindful of any privacy sensitive data – such as account and character names – you may expose through Spelunker.

Supported servers and game versions

Other servers may be supported in the future. Pull requests welcome!

Usage

Not yet available via npm, but hopefully soon™!

For now, follow the development instructions below on how to get started.

Development

Spelunker is developed with Webpack and Babel, targeting modern JavaScript runtimes.

  1. Clone the repository:

    git clone git://github.com/wowserhq/spelunker.git
  2. Download and install Node 8.x – including npm – for your platform.

    Versions 7.x and lower lack required features.

    Versions 9.x and higher fail installing the Blizzardry dependency. This will be addressed in the future.

  3. Install dependencies:

    npm install
  4. Install StormLib and BLPConverter, which are used to handle Blizzard's game files.

  5. Copy .envrc-sample to .envrc and adjust accordingly.

    In particular, verify DATA_DIR and DATABASE_* variables.

    To configure CORS, specify the allowed origin(s) in CORS_ALLOWED_ORIGINS as a comma-separated list.

  6. Source the .envrc file:

    source .envrc

    Alternatively, use direnv and allow the changes:

    direnv allow

API

Navigate into the API package:

cd packages/spelunker-api

Run the API server:

npm start

To monitor source files and rebuild:

npm run watch

The API will be served on http://localhost:3001.

Web client

Navigate into the web client package:

cd packages/spelunker-web

webpack's development server monitors source files and rebuilds:

npm start

The web client will be served on http://localhost:3000.

Contribution

When contributing, please:

  • Fork the repository
  • Open a pull request (preferably on a separate branch)