{"id":21522723,"url":"https://github.com/poeschl/roborush","last_synced_at":"2026-02-15T15:41:44.787Z","repository":{"id":258666757,"uuid":"722426258","full_name":"Poeschl/RoboRush","owner":"Poeschl","description":"A game about multiple robots trying to get from A to B on an map with quadratic tiles.","archived":false,"fork":false,"pushed_at":"2025-11-20T17:43:20.000Z","size":3373,"stargazers_count":2,"open_issues_count":13,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-20T19:22:16.334Z","etag":null,"topics":["code-game","coding-challenge","gpn22","hacktoberfest","hacktoberfest2024","roborush"],"latest_commit_sha":null,"homepage":"https://roborush.poeschl.xyz","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Poeschl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":"https://www.buymeacoffee.com/poeschl"}},"created_at":"2023-11-23T05:53:21.000Z","updated_at":"2025-11-20T17:43:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"c790a4d1-ecda-4835-9ea2-418e56e8de23","html_url":"https://github.com/Poeschl/RoboRush","commit_stats":null,"previous_names":["poeschl/roborush"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Poeschl/RoboRush","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Poeschl%2FRoboRush","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Poeschl%2FRoboRush/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Poeschl%2FRoboRush/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Poeschl%2FRoboRush/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Poeschl","download_url":"https://codeload.github.com/Poeschl/RoboRush/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Poeschl%2FRoboRush/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29482670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T15:33:17.885Z","status":"ssl_error","status_checked_at":"2026-02-15T15:32:53.698Z","response_time":118,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-game","coding-challenge","gpn22","hacktoberfest","hacktoberfest2024","roborush"],"created_at":"2024-11-24T01:11:33.260Z","updated_at":"2026-02-15T15:41:44.782Z","avatar_url":"https://github.com/Poeschl.png","language":"Kotlin","funding_links":["https://www.buymeacoffee.com/poeschl"],"categories":[],"sub_categories":[],"readme":"# RoboRush\n\nA game about multiple robots trying to get from A to B on a map with quadratic tiles.\nThe first robot which reaches the target tile wins!\n\nGet in the game by controlling your robot via REST calls and try to find the fastest way.\nOr block the others.\n\n## Features\n\n* Robots\n  * A robot can travel in a 2D space (no diagonals)\n* Several maps with start and target zones\n  * Maps my contain gas stations\n  * Every step costs some fuel\n* Round-based gameplay\n  * Every robot schedules its action, then all actions are executed\n\nAnd more technical:\n\n* Watch all robots go via a web-interface.\n* Included \"How to play on\" for players\n* Full API docs for learning to control the robots and get map information\n* Additional web-sections for registering, first steps, initial debug of your robot actions\n* Included root user settings to change maps, import own ones and change game settings\n* Self-hosting setup with docker\n\n## Setup\n\nFor an easy setup, a docker-compose file is provided in the `deploy` folder.\nIt is just a basic setup with traefik as reverse proxy on `http`.\nDepending on the environment a certificate for TLS is recommended.\n\n### Environment variables frontend\n\n* `PLAUSIBLE_DOMAIN`: The tracked domain for Plausible.\n* `PLAUSIBLE_API_HOST` (optional): An alternative Plausible api host. If not set https://plausible.io is used.\n\n### Environment variables backend\n\n* `SPRING_DATASOURCE_*`: Those environment variables are used to connect to an external database.\n* `SPRING_PROFILES_ACTIVE`: Set this environment variable to `prod` to disable some dev features.\n  It will also hide the OpenApi Docs for all internal interfaces.\n* `INITIAL_ROOT_PASSWORD` (optional): The initial root user password.\n  If not set a random one is generated at first start and output in the backend log.\n* `AUTH_ISSUER` (optional): Set an explicit issuer string for the auth tokens.\n  This can be useful for parallel instances and should be set in production-like envs.\n* `AUTH_KEY`(optional): Set the input for the JWT signing key.\n  This should be a random string with the length of 64. If changed every user needs to re-login to make auth work correctly again.\n* `TIMEOUT_WAIT_FOR_PLAYERS`: (optional): The time in milliseconds the game waits for players before starting.\n* `TIMEOUT_WAIT_FOR_ACTION`: (optional): The time in milliseconds the game waits for players to schedule their action.\n* `TIMEOUT_GAME_END`: (optional): The time in milliseconds the game shows the game end screen before starting a new game.\n\n### Admin authentication\n\nAt the first start the user `root` is created with a random password which gets displayed **one-time at the first backend start** in the start logs.\nThe password can also be specified via an environment variable, but keep it mind it will only be used one-time at the first start.\n\nThe admin user can never participate in a game!\n\n### Plausible tracking\n\nIf configured the application can be monitored with [Plausible](https://plausible.io/). So far only page calls are tracked.\n\nTo enable this set the environment variable `PLAUSIBLE_DOMAIN`\nand if you are running on a self-hosted instance `PLAUSIBLE_API_HOST`.\nAn example is shown in the deployment docker-compose.\n\nPlease create the following goals to also get the events:\n\n* `User logged in`\n* `User registered`\n\n## Note\n\nThis software will get no versioning and lives on the bloody main branch.\n\n## Development\n\n### Documentation\n\nThe basics will be here in this README, but there are more diagrams and documents in the `docs` and `maps` folder.\n\n### Requirements\n\nHave a [Java 21 LTS](https://adoptium.net/de/temurin/releases/?package=jdk\u0026version=21), [node 20](https://nodejs.org/en/download/) and\n[python 3.10](https://www.python.org/downloads/) installation is required to make it all run.\nMake sure you have [podman](https://podman.io/docs/installation) and [podman-compose](https://github.com/containers/podman-compose)\n(or docker and docker-compose) installed on your system, since the dev environment runs on a container-based reverse proxy.\n\n\u003e [!INFO]\n\u003e Make sure to have also git lfs installed on your system! Some files are stored in the large file system.\n\nFor the database test testcontainers is used. So make sure you make the podman socket available.\n([See here for more](https://podman-desktop.io/docs/migrating-from-docker/using-the-docker_host-environment-variable))\nAs a second step the used builder `ryuk` needs to be disabled, since it doesn't play well with podman right now.\nFor this set the environment variable `TESTCONTAINERS_RYUK_DISABLED` to `true`.\n\n### Set up\n\nFor development there is a little script in the project root named `start_dev_env.(sh|bat)` (according to your OS).\nExecute this first, before you do anything else.\n\n#### Coding Styles\n\nTo comply to the coding style, there are some [pre-commit](https://pre-commit.com/) rules.\nThose should be automatically executed before every git commit.\nTo make this happen automatically, make sure to have `pre-commit` installed on your machine (`pip install pre-commit`)\nand set up your git hooks (`pre-commit install` | from project root).\n\n#### Run via Intellij\n\nNavigate to the `Application.kt` file and click on the green play button beside the main method. The backend is now running.\n\nFor the frontend open up the `package.json` file and click the green play button to the left of the `dev` script.\nMake sure you have all dependencies installed via the Intellij UI or install them with `npm install --dev` from terminal.\n\nNow the application can be reached by http://localhost:8888 and http://localhost:8888/api/swagger-ui.\n\n#### Run via terminal\n\nThen run `./gradlew backend:bootRun` (from project root) (or execute it through your IDE) to start your backend.\n\nFor the frontend install all packages with `npm install --dev` and run the VUE app with `npm run dev` (from the `frontend` folder).\n\nNow the application can be reached by http://localhost:8888 and http://localhost:8888/api/swagger-ui.\nAlso, a \"secure\" version is available via port `8889` as https://localhost:8888.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoeschl%2Froborush","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpoeschl%2Froborush","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoeschl%2Froborush/lists"}