{"id":19749899,"url":"https://github.com/b1naryth1ef/sneaker","last_synced_at":"2025-04-30T09:31:44.968Z","repository":{"id":40434551,"uuid":"400753728","full_name":"b1naryth1ef/sneaker","owner":"b1naryth1ef","description":"📡 web-based AEW\u0026C interface for DCS \u0026 Tacview","archived":false,"fork":false,"pushed_at":"2024-05-03T14:56:19.000Z","size":467,"stargazers_count":30,"open_issues_count":7,"forks_count":17,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-06-19T04:24:39.987Z","etag":null,"topics":["awacs","dcs","gci","simulation","tacview"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/b1naryth1ef.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}},"created_at":"2021-08-28T09:29:59.000Z","updated_at":"2024-06-15T21:41:41.000Z","dependencies_parsed_at":"2024-06-19T04:12:20.787Z","dependency_job_id":"34ffd972-4dc4-4364-9668-4bb9b237561c","html_url":"https://github.com/b1naryth1ef/sneaker","commit_stats":{"total_commits":57,"total_committers":3,"mean_commits":19.0,"dds":0.08771929824561409,"last_synced_commit":"8e4ad35f2aac71b66c3ee1b9d8105d80ec53585f"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1naryth1ef%2Fsneaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1naryth1ef%2Fsneaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1naryth1ef%2Fsneaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1naryth1ef%2Fsneaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/b1naryth1ef","download_url":"https://codeload.github.com/b1naryth1ef/sneaker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224205723,"owners_count":17273335,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["awacs","dcs","gci","simulation","tacview"],"created_at":"2024-11-12T02:29:18.450Z","updated_at":"2024-11-12T02:29:19.023Z","avatar_url":"https://github.com/b1naryth1ef.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sneaker\n\nSneaker is a browser-based radar and GCI simulation designed for use with [Tacview]() and [DCS: World](https://www.digitalcombatsimulator.com/en/). Users are presented with a simulated radar scope that provides air, sea and optionally land targets with speed/altitude/type information. Additionally Sneaker provides some GCI-specific functionality:\n\n- Configure per-aircraft or profile based threat and warning radius's that provide visual and auditory cues for trespasses.\n- Searching, tagging, and watching flights allows you to reduce workload and allow a controller to work across many flights and packages.\n- Mission clock and hack timers for command and coordination.\n\nA live example of Sneaker can be viewed [here](https://hoggit.brrt.me/).\n\n![UI preview](https://i.imgur.com/wkrZ4JU.png)\n\n## Installation\n\n1. Download the latest released version [from here](https://github.com/b1naryth1ef/sneaker/releases).\n2. Create a configuration file based off the [example](/example.config.json), replacing the required information (and optionally adding multiple servers to the array)\n3. Run the executable with the configuration path: `sneaker-server.exe --config config.json`\n\n### Discord Integration\n\nSneaker features a built-in Discord integration which provides basic server information and GCI duty tracking via Discord slash-commands.\n\n1. Create a new [Discord Application](https://discord.com/developers/applications) and configure the `Interactions Endpoint URL` to point at your Sneaker installations `/api/discord/interactions` endpoint.\n2. Add a Bot to the application (this is used to DM users about GCI duty timeouts)\n3. Add the bot to your server by opening a link generated [here](https://discord.com/developers/applications/935306685692674078/oauth2/url-generator). You only need the `applications.commands` scope.\n4. Add the following to your `config.json`:\n```json\n\"discord\": {\n  \"application_id\": \"\u003cdiscord application id, bunch of numbers\u003e\",\n  \"application_key\": \"\u003cdiscord public key, bunch of letters/numbers\u003e\",\n  \"token\": \"\u003cdiscord bot token\u003e\",\n  \"state_path\": \"\u003coptional path to a location to save GCI duty state between restarts\u003e\",\n  \"timeout\": \"\u003cnumber of minutes before gci is automatically logged off duty, default = 60\u003e\",\n  \"reminder\": \"\u003cnumber of minutes before timeout to warn gci via discord, default = 5\u003e\"\n}\n```\n\n## Documentation\n\n- [API](/docs/API.md) provides information on the internal Sneaker API.\n\n## Web UI\n\nThe Sneaker web UI presents an emulated radar scope over top a [Open Street Map](https://openstreetmap.org) rendered via [maptalks](https://maptalks.org). The web UI is updated at a configurable simulated refresh rate (by default 5 seconds).\n\n### Bullseye\n\nBullseye information for the current cursor position is displayed in the bottom right corner of the screen, additionally the bullseye icon is rendered in its position on the map.\n\n### BRAA\n\nA BRAA line can be drawn by right clicking anywhere on the map and dragging. Additionally if you press the \"s\" (snap) key while starting the BRAA line on-top of an existing track the starting point will be locked to the tracks position.\n\n### Mission Timer \u0026 Hack Timers\n\nThe mission timer is available in the bottom left corner. Clicking on the timer will create a new hack timer which will display above. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb1naryth1ef%2Fsneaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fb1naryth1ef%2Fsneaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb1naryth1ef%2Fsneaker/lists"}