{"id":19964347,"url":"https://github.com/bu-ist/bux-grader-configuration","last_synced_at":"2026-06-08T04:32:46.005Z","repository":{"id":15374364,"uuid":"18105614","full_name":"bu-ist/bux-grader-configuration","owner":"bu-ist","description":"A set of Ansible playbooks for quick provisioning of external graders.","archived":false,"fork":false,"pushed_at":"2014-08-01T18:13:15.000Z","size":212,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-03-01T17:13:54.148Z","etag":null,"topics":["edx","sabermetrics"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/bu-ist.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-03-25T15:36:03.000Z","updated_at":"2017-11-13T21:11:22.000Z","dependencies_parsed_at":"2022-08-25T11:40:42.408Z","dependency_job_id":null,"html_url":"https://github.com/bu-ist/bux-grader-configuration","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bu-ist/bux-grader-configuration","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bu-ist%2Fbux-grader-configuration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bu-ist%2Fbux-grader-configuration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bu-ist%2Fbux-grader-configuration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bu-ist%2Fbux-grader-configuration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bu-ist","download_url":"https://codeload.github.com/bu-ist/bux-grader-configuration/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bu-ist%2Fbux-grader-configuration/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34048681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["edx","sabermetrics"],"created_at":"2024-11-13T02:23:02.407Z","updated_at":"2026-06-08T04:32:45.990Z","avatar_url":"https://github.com/bu-ist.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BUx Grader Configuration\n\nBootstrapping of BUx external grader environments for use with the [BUx Grader Framework](https://github.com/bu-ist/bux-grader-framework).\n\nProvisioning is accomplished using [Ansible](http://www.ansible.com/home).\n\nIn addition a Vagrantfile is provided for quick setup of local development VMs with [Vagrant](http://www.vagrantup.com/).\n\n## Prerequisites\n\nIn order for the grader to start it must be able to succesfully connect to a running XQueue instance. If your course will be hosted on edx.org, contact your program manager to set up your course queue and obtain credentials. See the [course author docs on external graders](http://edx.readthedocs.org/projects/edx-partner-course-staff/en/latest/exercises_tools/external_graders.html) for more details.\n\nFor development purposes you might consider standing up your own edX platform using the [edX configuration repository](https://github.com/edx/configuration). See the [Wiki page for installation options](https://github.com/edx/configuration/wiki#installation-options).\n\n## Getting Started\n\nClone this repository to your build machine and install the requirements.\nUse of `virtualenv` is highly recommended.\n\n```bash\n$ git clone git@github.com:bu-ist/bux-grader-configuration\n$ cd bux-grader-configuration\n$ pip install -r requirements.txt\n```\n\n## Configuration\n\nThe playbook uses roles which depend on the existence of a few variables.\n\n```yml\ngrader_repos: https://github.com/your-grader-repository\ngrader_version: develop\ngrader_settings_module: settings\n```\n\nThe ``grader`` role will look for a top-level ``requirements.txt`` file in your course repository, which it will use to populate a ``virtualenv`` if found.\n\nThe ``grader_settings_module`` variable should refer to a settings module that is importable by Python from your repository root.\n\nFor example, if your settings module is located in ``settings/production.py``, the ``grader_settings_module`` should be set to ``settings.production``.\n\n## Setting up a development VM\n\n### Prerequisites\n1. VirtualBox (https://www.virtualbox.org/)\n2. Vagrant (http://www.vagrantup.com)\n3. vagrant-vbguest plugin (https://github.com/dotless-de/vagrant-vbguest) (Optional)\n4. vagrant-hostupdater plugin (https://github.com/cogitatio/vagrant-hostsupdater) (Optional)\n\n### Setup\n1. Add your grader-specific configuration vars to `playbooks/group_vars/vagrant`\n2. Run `vagrant up` to install and boot the VM and start provisioning with Ansible\n\nThe first run will take a while -- consider grabbing a coffee or calling your grandmother.\n\nOnce it's completed, the grader should be up and polling xqueue inside the VM.\n\n### Shared Folders\n\nThe VM will mount two shared folders for your development convenience:\n\n* grader - /edx/app/grader/grader\n* venv - /edx/app/grader/venv\n\n## Provisioning a Remote Server with Ansible\n\n1. Add an inventory file to `playbooks/inventory` describing the remote system to be provisioned\n2. Add your grader-specific configuration (see `playbooks/group_vars/all` for examples)\n3. Provision with `ansible-playbook -i inventory/file grader.yml`\n\n## Managing the Grader\n\n```bash\n# Check grader status\n$ /edx/bin/supervisorctl status\n\n# Start / stop grader\n$ /edx/bin/supervisorctl start|stop bux-grader\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbu-ist%2Fbux-grader-configuration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbu-ist%2Fbux-grader-configuration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbu-ist%2Fbux-grader-configuration/lists"}