{"id":19251237,"url":"https://github.com/rexops/rex-jobcontrol","last_synced_at":"2025-04-21T12:34:03.942Z","repository":{"id":20216303,"uuid":"23487937","full_name":"RexOps/rex-jobcontrol","owner":"RexOps","description":"Simple Webinterface to control Rex","archived":false,"fork":false,"pushed_at":"2019-07-27T19:54:13.000Z","size":849,"stargazers_count":10,"open_issues_count":11,"forks_count":6,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-05-09T19:36:20.748Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","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/RexOps.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}},"created_at":"2014-08-30T08:34:37.000Z","updated_at":"2023-08-23T08:35:25.000Z","dependencies_parsed_at":"2022-08-28T10:22:57.408Z","dependency_job_id":null,"html_url":"https://github.com/RexOps/rex-jobcontrol","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RexOps%2Frex-jobcontrol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RexOps%2Frex-jobcontrol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RexOps%2Frex-jobcontrol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RexOps%2Frex-jobcontrol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RexOps","download_url":"https://codeload.github.com/RexOps/rex-jobcontrol/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223865410,"owners_count":17216515,"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-09T18:21:14.556Z","updated_at":"2024-11-09T18:21:15.340Z","avatar_url":"https://github.com/RexOps.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rex::JobControl\n\nRex::JobControl is a simple Webinterface to Rex.\n\nCurrently the Webinterface is in early development stage. So if you see bugs, have ideas for improvement or want to help developing please contact us via the issue tracker or via irc (irc.freenode.net #rex).\n\n## Some Screenshots\n\n* Login:\n\n![Login](https://raw.githubusercontent.com/RexOps/rex-jobcontrol/master/screenshots/login.png)\n\n\n* Project:\n\n![Project view](https://raw.githubusercontent.com/RexOps/rex-jobcontrol/master/screenshots/projects.png)\n\n\n* Job:\n\n![Job view](https://raw.githubusercontent.com/RexOps/rex-jobcontrol/master/screenshots/job.png)\n\n\n* Execute:\n\n![Execute a job](https://raw.githubusercontent.com/RexOps/rex-jobcontrol/master/screenshots/execute.png)\n\n\n## Installation\n\nCurrently there are no packages, but the installation is quite simple.\n\n### Requirements\n\n* Perl (\u003e= 5.10.1)\n* Mojolicious\n* Mojolicious::Plugin::Authentication\n* Minion\n* DateTime\n* YAML\n* Digest::Bcrypt\n\n### Install the source\n\n```\ngit clone git@github.com:RexOps/rex-jobcontrol.git\ncd rex-jobcontrol\ncpanm --installdeps .\n```\n\n## Configuration\n\nThe configuration file is searched in these places:\n\n* /etc/rex/jobcontrol.conf\n* /usr/local/etc/rex/jobcontrol.conf\n* ./jobcontrol.conf\n\n```perl\n{\n  project_path =\u003e \"./projects/\",\n  upload_tmp_path =\u003e \"./upload/\",\n\n  rex =\u003e \"/usr/bin/rex\",\n  rexify =\u003e \"/usr/bin/rexify\",\n\n  backend =\u003e { Pg =\u003e 'postgresql://user:password@host:port/database' },\n  # other options: mysql, SQLite, MongoDB, Mango\n  # See https://metacpan.org/search?q=minion+backend+[your backend]\n\n  session =\u003e {\n    key =\u003e 'Rex::JobControl',\n  },\n\n  auth =\u003e {\n    salt =\u003e '1cN46DkL2A(dk(!\u0026', # 16 bytes long\n    cost =\u003e 1, # between 1 and 31\n    passwd =\u003e './passwd',\n  },\n}\n```\n\n## Manage users\n\nCurrently there is no webinterface to manage the users, but you can use a cli command to do this.\n\nAdd user:\n```\nbin/rex_job_control jobcontrol adduser -u $user -p $password\n```\n\nRemove user:\n```\nbin/rex_job_control jobcontrol deluser -u $user\n```\n\nList user:\n```\nbin/rex_job_control jobcontrol listuser\n```\n\n## Start the services\n\nRex::JobControl consists of 2 services. The Webinterface and the Worker.\n\nTo start the worker you have to run the following command. You can start as many worker as you need/want.\n\n```\nbin/rex_job_control minion worker\n```\n\nTo start the Webinterface you have to run this command. This will start a webserver at port 8080. \n```\nhypnotoad bin/rex_job_control \n```\n\n\n\n## REST API\n\nEvery object can be accessed via a REST api.\n\n### Nodes\n\nGet information of a node:\n\n```\ncurl -D- -XGET \\\n  http://admin:admin@localhost:3000/api/1.0/project/{project_id}/node/{node_id}\n```\n\nCreate a new node:\n\n```javascript\n{\n  \"name\"  : \"foo01\",\n  \"type\"  : \"docker\",\n  \"parent\": \"db188e3449615a2c64685abe0802f55f_a673946c007d6a9927f70bdf5d491861\",\n  \"data\": {\n    \"image\": \"centos:centos6\"\n  }\n}\n```\n\n```\ncurl -D- -XPOST -d@node_create.json \\\n  http://admin:admin@localhost:3000/api/1.0/project/{project_id}/node\n```\n\nDelete a node:\n\n```\ncurl -D- -XDELETE \\\n  http://admin:admin@localhost:3000/api/1.0/project/{project_id}/node/{node_id}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frexops%2Frex-jobcontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frexops%2Frex-jobcontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frexops%2Frex-jobcontrol/lists"}