README.md
# Codebattle
[![Actions Status](https://github.com/hexlet-codebattle/codebattle/workflows/Build%20master/badge.svg)](https://github.com/hexlet-codebattle/codebattle/actions)
[![codecov](https://codecov.io/gh/hexlet-codebattle/codebattle/branch/master/graph/badge.svg)](https://codecov.io/gh/hexlet-codebattle/codebattle)
[![Maintainability](https://api.codeclimate.com/v1/badges/a99a88d28ad37a79dbf6/maintainability)](https://codeclimate.com/github/hexlet-codebattle/codebattle/maintainability)
[![codebeat badge](https://codebeat.co/badges/7557979e-74a7-45a6-b9ab-dcd44bab7e5b)](https://codebeat.co/projects/github-com-hexlet-codebattle-codebattle-master)
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fhexlet-codebattle%2Fcodebattle&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com)
Codebattle - is an open source game being developed by the Hexlet community.
The current version of the application is available at [codebattle.hexlet.io](https://codebattle.hexlet.io).
We also have [chrome extension](https://chrome.google.com/webstore/detail/codebattle-web-extension/embfhnfkfobkdohleknckodkmhgmpdli). Which allow to subscribe on last game updates.
This project exists thanks to all the people who contribute. [Contribute guideline.](CONTRIBUTING.md)
<a href="https://github.com/hexlet-codebattle/codebattle/graphs/contributors"><img src="https://opencollective.com/codebattle/contributors.svg?width=890"></a>
![Alt](https://repobeats.axiom.co/api/embed/cb0f9e443414905bb8a0e437460095b05bc11caf.svg "Repobeats analytics image")
### Requirements
- Mac / Linux
- docker
### Install
```bash
$ git clone git@github.com:hexlet-codebattle/codebattle.git
$ cd codebattle
$ make setup
```
### Start Server
```bash
$ make compose
```
- Open <http://localhost:4000>
### Run Tests
```bash
$ make compose-test
```
### Lint
```bash
$ make compose-lint
# To run specific
$ make compose-mix-format
$ make compose-mix-credo
$ make compose-lint-js-fix
```
### Useful
```bash
$ mix upload_langs
$ mix dockers.push # all
$ mix dockers.push elixir
$ mix dockers.build # all
$ mix dockers.build elixir
$ mix dockers.pull # all
$ mix dockers.pull elixir
$ mix asserts.upload # Pulls from battle_asserts all issues and upserts into DB
#If you use docker in dev env, run commands in make compose-bash
```
### Profile js bundle
To build stat.json and see details in browser run:
```
yarn profile:build
yarn profile:visualize
```
### Support
- [https://t.me/hexletcommunity](https://t.me/hexletcommunity/5) channel: codebattle
### Troubleshooting
- Install and run docker
Make sure you have installed `docker` for your OS.
https://docs.docker.com/install/
Make sure your docker daemon is running. You can run it manually by typing:
```
sudo dockerd
```
or you can add it to startup by typing:
```
sudo systemctl enable docker
```
Close and open your terminal if docker daemon didn't start immediately.
- Manage Docker as a non-root user
https://docs.docker.com/install/linux/linux-postinstall/
Create the docker group.
```
sudo groupadd docker
```
Add your user to the docker group.
```
sudo usermod -aG docker $USER
```
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=hexlet-codebattle/codebattle&type=Date)](https://star-history.com/#hexlet-codebattle/codebattle&Date)
---
[![Hexlet Ltd. logo](https://raw.githubusercontent.com/Hexlet/assets/master/images/hexlet_logo128.png)](https://hexlet.io?utm_source=github&utm_medium=link&utm_campaign=codebattle)
This repository is created and maintained by the team and the community of Hexlet, an educational project. [Read more about Hexlet](https://hexlet.io?utm_source=github&utm_medium=link&utm_campaign=codebattle).
See most active contributors on [hexlet-friends](https://friends.hexlet.io/).