{"id":31567319,"url":"https://github.com/sul-dlss/argo","last_synced_at":"2026-04-06T18:01:25.163Z","repository":{"id":3900976,"uuid":"4989164","full_name":"sul-dlss/argo","owner":"sul-dlss","description":"The administrative discovery interface for Stanford's Digital Object Registry","archived":false,"fork":false,"pushed_at":"2026-04-03T23:18:59.000Z","size":40635,"stargazers_count":27,"open_issues_count":97,"forks_count":5,"subscribers_count":16,"default_branch":"main","last_synced_at":"2026-04-04T01:18:28.353Z","etag":null,"topics":["application","blacklight-application","infrastructure","rails-ui","repository","ruby","solr"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sul-dlss.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2012-07-11T13:15:05.000Z","updated_at":"2026-04-03T23:19:04.000Z","dependencies_parsed_at":"2023-10-16T21:08:48.819Z","dependency_job_id":"42c085a4-797b-4058-a488-f95e9fffea7e","html_url":"https://github.com/sul-dlss/argo","commit_stats":null,"previous_names":[],"tags_count":373,"template":false,"template_full_name":null,"purl":"pkg:github/sul-dlss/argo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Fargo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Fargo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Fargo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Fargo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sul-dlss","download_url":"https://codeload.github.com/sul-dlss/argo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Fargo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31483380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"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":["application","blacklight-application","infrastructure","rails-ui","repository","ruby","solr"],"created_at":"2025-10-05T08:51:14.299Z","updated_at":"2026-04-06T18:01:25.157Z","avatar_url":"https://github.com/sul-dlss.png","language":"Ruby","readme":"[![CircleCI](https://circleci.com/gh/sul-dlss/argo.svg?style=svg)](https://circleci.com/gh/sul-dlss/argo)\n[![Test Coverage](https://codecov.io/github/sul-dlss/argo/graph/badge.svg?token=7pyTZlYDip)](https://codecov.io/github/sul-dlss/argo)\n[![GitHub version](https://badge.fury.io/gh/sul-dlss%2Fargo.svg)](https://badge.fury.io/gh/sul-dlss%2Fargo)\n\n# Argo\n\nArgo is the administrative interface to the Stanford Digital Repository.\n\n## Installation\n\n### System Requirements\n\n1. Install Docker\n2. Install Ruby\n\n### Check Out the Code\n\n```bash\ngit clone https://github.com/sul-dlss/argo.git\ncd argo\n```\n\n### Run bundler to install the Gem dependencies\n\n```bash\nbundle install\n```\n\n## Local Development TL;DR\n\nBrings up app at localhost:3000 with some test data:\n\n```\nyarn install\ndocker compose up -d\nbin/rails db:prepare\nbin/dev\nbin/rake argo:seed_data # run in separate terminal window\n```\n\n## Run the tests locally\n\nCI runs a series of steps;  this the sequence to do it locally, along with some helpful info.\n\n1. **Pull down the latest docker containers**\n\n    ```\n    docker compose pull\n    ```\n\n2. **Start up the docker services needed for testing**\n\n    Once everything has been successfully pulled, start up the docker services needed for testing (all but the web container)\n\n    ```\n    docker compose up -d\n    ```\n\n3. **Install Chrome**\n\n    You will need to have Google Chrome browser installed, as the tests use chrome for a headless browser.\n\n4. **Prepare rails for testing**\n\n    ```\n    bin/rails db:prepare test:prepare\n    ```\n\n5. **Run the linters and the tests**\n\n    ```\n    bin/rake\n    ```\n\nTo run just the linters, run `bin/rake lint`. To run the linters individually, run `bundle exec erb_lint --lint-all`, `bundle exec rubocop`, and `bundle exec rake jslint`\n\n\n## Recommended Local Development\n\nBe sure all of the docker containers for dependent services are running in the background (e.g. solr, DSA) and stop the web container:\n\n```\ndocker compose up -d\n```\n\nCreate/prepare the dev/test databases:\n\n```\nbin/rails db:prepare\n```\n\nStart the development server - this should give you the Argo app on port 3000 mocking an admin login:\n\n```\nbin/dev\n```\n\nMost of the time (unless you already have data), you will want seed data and a single item.  Note tha all servers must be running first, including web, and this will clear solr:\n\n```\nbin/rake argo:seed_data\n```\n\nFor creating additional test data, see the section below \"Creating fixture data\".\n\nWhen debugging locally, add a `debugger` statement in the code and connect to the overmind process.\n\n```\nbin/overmind connect web\n```\n\n### System tests\n\nTo run a headed browser, set the `NO_HEADLESS` env variable. For example:\n\n```\nNO_HEADLESS=1 bundle exec rspec spec/system/item_view_spec.rb\n```\n\n## Creating fixture data\n\nTo begin registering items in the Argo UI, there will need to be at least one agreement object and one APO object in the index. To create and index one of each of these objects, run the following command:\n\n```\nbin/rails db:seed\n```\n\nor if running on the docker container:\n\n```\ndocker compose exec web bin/rails db:seed\n```\n\nTo get these objects, in addition to a single item object (useful for development purposes), run this command (assumes local rails server):\n\n```\nbin/rake argo:seed_data\n```\n\nTo register an arbitrary number of test item objects, specify the number you want:\n\n```\nbin/rake argo:register_items[1]\n```\n\nNote that in all cases, you will need a web server of some kind running (either in web docker container or a local rails server).  Also note that creating the seed data will clear the existing Solr instance out (and you will have to confirm this).\n\n## Internals\n\nArgo uses Blacklight and Solr to expose the repository contents, and `dor-services-app` to enable editing and updating. Its key components include:\n\n- Rails\n- Blacklight\n- dor-services-client\n- RSolr\n- Sidekiq\n- Bootstrap\n\nand in development or testing mode:\n\n- RSpec\n- Capybara\n- Chrome\n\n## Solr configuration\nThe Solr configuration is https://github.com/sul-dlss/sul-solr-configs/tree/master/argo_prod\n\nTo update this configuration, see the [README](https://github.com/sul-dlss/sul-solr-configs#updating-configurations).\n\nWhen this configuration is updated, the configuration in `solr_conf/` should also be updated for Argo testing using a Solr container.\n\n## Background Job Workers (in deployed environments)\n\nArgo uses systemd to manage and monitor its Sidekiq-based background job workers in all deployed environments. See  [Sidekiq via systemd](https://github.com/sul-dlss/dlss-capistrano#sidekiq-via-systemd)\n\n## Reset Process (for QA/Stage)\n\n### Steps\n\n1. [Reset the database](https://github.com/sul-dlss/DeveloperPlaybook/blob/main/best-practices/db_reset.md)\n2. Clear the bulk directory: `rm -fr /workspace/bulk/*`\n\n## Further reading\n\n### Profiling\n\nFor information on how to profile the app in the event of performance issues, see [PROFILING.md](PROFILING.md).  This explains how to collect profiling info, how to analyze it, how to approach the issue generally, and alternatives/complements to Argo's main built-in profiling tool.\n\n## Deployment\n\nNOTE: The application is deployed continuously by our on-prem Jenkins service (`sul-ci-prod`) to the staging environment on every merge to `main`. See `Jenkinsfile` for how that is wired up.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsul-dlss%2Fargo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsul-dlss%2Fargo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsul-dlss%2Fargo/lists"}