{"id":18820708,"url":"https://github.com/valentinfunk/arena","last_synced_at":"2025-10-11T21:39:07.569Z","repository":{"id":76049920,"uuid":"116207933","full_name":"ValentinFunk/arena","owner":"ValentinFunk","description":null,"archived":false,"fork":false,"pushed_at":"2018-03-23T12:24:57.000Z","size":402,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-30T03:27:33.052Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ValentinFunk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2018-01-04T03:04:55.000Z","updated_at":"2018-03-23T12:24:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"2e028aa7-f032-4858-a9eb-fefecd579b69","html_url":"https://github.com/ValentinFunk/arena","commit_stats":null,"previous_names":["valentinfunk/arena"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValentinFunk%2Farena","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValentinFunk%2Farena/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValentinFunk%2Farena/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValentinFunk%2Farena/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ValentinFunk","download_url":"https://codeload.github.com/ValentinFunk/arena/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239758832,"owners_count":19692034,"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":[],"created_at":"2024-11-08T00:29:34.267Z","updated_at":"2025-10-11T21:39:02.535Z","avatar_url":"https://github.com/ValentinFunk.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arena\n\nAn intuitive Web GUI for [Bee Queue](https://github.com/bee-queue/bee-queue) and [Bull](https://github.com/optimalbits/bull). Built on Express so you can run Arena standalone, or mounted in another app as middleware.\n\nFor a quick introduction to the motivations for creating Arena, read *[Interactively monitoring Bull, a Redis-backed job queue for Node](https://www.mixmax.com/blog/introducing-bull-arena)*.\n\n### Screenshots\n\n[![](screenshots/screen1_sm.png)](screenshots/screen1.png) [![](screenshots/screen2_sm.png)](screenshots/screen2.png) [![](screenshots/screen3_sm.png)](screenshots/screen3.png)\n\n### Features\n\n* Check the health of a queue and its jobs at a glance\n* Paginate and filter jobs by their state\n* View details and stacktraces of jobs with permalinks\n* Restart and retry jobs with one click\n\n### Usage\n\n#### Prerequisites\n\nConfigure your queues in the \"queues\" key of [`index.json`](src/server/config/index.json). Queues take the following format:\n\n```json\n{\n  \"name\": \"my_queue\",\n  \"port\": 6381,\n  \"host\": \"127.0.0.1\",\n  \"hostId\": \"AWS Server 2\"\n}\n```\n\nThe `name`, `port`, `host`, and `hostId` fields are required. `hostId` can be given any name, so it is recommended to give it a helpful name for reference. \nOptionally, you can also pass in `db` and `password` to configure redis credentials, or `prefix` to specify the customized prefix of the queue.\n\nYou can also provide a `url` field instead of `host`, `port` `db` and `password`.\n\nTo specify a custom file location, see \"Running Arena as a node module\".\n\n*Note that if you happen to use Amazon Web Services' Elasticache as your Redis host, check out http://mixmax.com/blog/bull-queue-aws-autodiscovery*\n\n#### Running the server\n\nRun `npm install` to fetch Arena's dependencies. Then run `npm start` to start the server.\n\nNote that because Arena is dependent on `async`/`await`, Arena only currently supports Node `\u003e7`.\n\n#### Running Arena as a node module\n\nAlternatively, you can use Arena as a node module. This has potential benefits:\n\n* Arena can be configured to use any method of server/queue configuration desired\n  * for example, fetching available redis queues from an AWS instance on server start\n  * or even just plain old reading from environment variables\n* Arena can be mounted in other express apps as middleware\n\nUsage:\n\nIn project folder:\n\n```shell\nyarn add bull-arena\n```\n\nIn router.js:\n\n```js\nconst Arena = require('bull-arena');\n\nconst express = require('express');\nconst router = express.Router();\n\nconst arena = Arena({queues});\nrouter.use('/', arena);\n```\n\n`Arena` takes two arguments. The first, `config`, is a plain object containing the [queue configuration](#prerequisites). The second, `listenOpts`, is an object that can contain the following optional parameters:\n\n* `port` - specify custom port to listen on (default: 4567)\n* `basePath` - specify custom path to mount server on (default: '/')\n* `disableListen` - don't let the server listen (useful when mounting Arena as a sub-app of another Express app) (default: false)\n\n### Bee Queue support\n\nArena is dual-compatible with Bull 3.x and Bee-Queue 1.x. To add a Bee queue to the Arena dashboard, include the `type: bee` attribute with an individual queue's configation object.\n\n### Docker image\n\nYou can now `docker pull` Arena from [Docker Hub](https://hub.docker.com/r/mixmaxhq/arena/).\n\nTo build the image simply run:\n\n```shell\ndocker build -t \u003cname-image\u003e .\n```\n\nTo run a container, execute the following command. Note that we need to settle the location of `index.json` in this container via volume mounting:\n\n```shell\ndocker run -p 4567:4567 -v \u003c/local/route/to/index.json\u003e:/opt/arena/src/server/config/index.json \u003cname-image\u003e\n```\n\n### Development\n\nArena is written using Express, with simple jQuery and Handlebars on the front end.\n\nIf updating dependencies, please use Yarn and update the `yarn.lock` file before submitting a pull request.\n\n### License\n\nThe [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalentinfunk%2Farena","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvalentinfunk%2Farena","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalentinfunk%2Farena/lists"}