Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
howardchung committed Jun 16, 2016
1 parent 1749119 commit ddada3c
Showing 1 changed file with 18 additions and 16 deletions.
34 changes: 18 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,12 @@ Tech Stack
* Storage: PostgreSQL/Redis/Cassandra
* Parser: Java (powered by [clarity](https://github.com/skadistats/clarity))

Quickstart
Quickstart (Docker)
----
* Using Docker will let you run the code in a container with all dependencies properly installed.
* Install Docker: `curl -sSL https://get.docker.com/ | sh`
* Clone the repo: `git clone https://github.com/yasp-dota/yasp`
* Go into the directory: `cd yasp`
* 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.
* `STEAM_USER, STEAM_PASS` The retriever requires a Steam account in order to fetch replay salts. We recommend creating a new account for this purpose (you won't be able to log into the account while the retriever is using it). If you don't care about getting replay salts/downloading replays then you can skip this step.
* Build the Docker container: `sudo docker build -t yasp/yasp .`
* Start a new container running the image, and map your local directory into the container: `sudo docker run -v $(pwd):/usr/src/yasp -di --name yasp --net=host yasp/yasp:latest`
* Start the external dependencies in separate containers.
* `sudo docker run -d --name postgres --net=host postgres:9.5`
Expand All @@ -37,20 +34,17 @@ Quickstart
* Initialize Postgres: `sudo docker exec -i postgres psql -U postgres < sql/init.sql`
* Create tables: `sudo docker exec -i postgres psql -U postgres yasp < sql/create_tables.sql`
* Set up Cassandra (optional): `sudo docker exec -i cassandra cqlsh < sql/cassandra.cql`
* 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.
* `STEAM_USER, STEAM_PASS` The retriever requires a Steam account in order to fetch replay salts. We recommend creating a new account for this purpose (you won't be able to log into the account while the retriever is using it). If you don't care about getting replay salts/downloading replays then you can skip this step.
* Get a terminal into the running container: `sudo docker exec -it yasp bash`
* Build inside the container: `npm run build`
* Start the services you want to run:
* `pm2 start profiles/basic.json` This starts all the basic services to be able to open the site in a browser and request parses by ID (which is a useful end-to-end test). Use `profiles/everything.json` to start everything.
* `pm2 start svc/web.js --watch` This starts a specific service and watches it for changes.
* `pm2 logs web` You can use this command to inspect the output of a service.
* `pm2 delete all` Stop and remove all the services.
* Alternatively, if you have Docker Compose [installed](https://docs.docker.com/compose/install/) you can just run `docker-compose up`.
* 3 containers will be built and launched - one with postgres database, one with redis and one with web service.
* Database is inited and tables are created automatically.
* By default, minimal configuration necessairy to open the site in a browser and request parses by ID is started. This can be overridden via `docker-compose.override.yml`.
* `sudo docker exec -it yasp_web_1 bash` will give you a terminal into the running web container.
* `pm2 start profiles/basic.json` This starts all the basic services to be able to read the API and request parses (which is a useful end-to-end test). Use `profiles/everything.json` to start everything.
* Useful PM2 commands:
* `pm2 start svc/web.js --watch` This starts a specific service and watches it for changes.
* `pm2 logs web` You can use this command to inspect the output of a service.
* `pm2 delete all` Stop and remove all the services.
* Useful commands
* `npm run watch`: If you want to make changes to client side JS, you will want to run the watch script in order to automatically rebuild after making changes.
* `npm test` runs the full test suite. Use `mocha` for more fine-grained control over the tests you want to run.
* `node tasks/updateconstants` pulls latest constants data and saves to `json` directory.
* Get some starter data
Expand All @@ -61,6 +55,14 @@ Quickstart
* Submit a pull request. Wait for it to be reviewed and merged.
* Congratulations! You're a contributor.

Docker Compose
----
* Alternatively, if you have Docker Compose [installed](https://docs.docker.com/compose/install/) you can just run `docker-compose up`.
* 3 containers will be built and launched - one with postgres database, one with redis and one with web service.
* Database is inited and tables are created automatically.
* By default, minimal configuration necessairy to open the site in a browser and request parses by ID is started. This can be overridden via `docker-compose.override.yml`.
* `sudo docker exec -it yasp_web_1 bash` will give you a terminal into the running web container.

Getting Help
----
* Feel free to open a new issue to ask questions/get help!
Expand Down

0 comments on commit ddada3c

Please sign in to comment.