{"id":16068054,"url":"https://github.com/ged/gemserver","last_synced_at":"2025-04-05T10:14:13.623Z","repository":{"id":1334269,"uuid":"1280069","full_name":"ged/gemserver","owner":"ged","description":"The Github mirror of an experimental minimalist Rubygems index and gem server written in Sinatra.","archived":false,"fork":false,"pushed_at":"2011-03-19T03:03:07.000Z","size":404,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-10T20:56:59.829Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://bitbucket.org/ged/gemserver","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ged.png","metadata":{"files":{"readme":"README.md","changelog":"History.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-01-21T21:39:10.000Z","updated_at":"2021-11-29T00:09:11.000Z","dependencies_parsed_at":"2022-07-29T08:09:39.918Z","dependency_job_id":null,"html_url":"https://github.com/ged/gemserver","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fgemserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fgemserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fgemserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fgemserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ged","download_url":"https://codeload.github.com/ged/gemserver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318746,"owners_count":20919483,"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-10-09T06:08:17.480Z","updated_at":"2025-04-05T10:14:13.600Z","avatar_url":"https://github.com/ged.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gemserver\n\n* https://bitbucket.org/ged/gemserver\n\n## Description\n\nThis is an experimental minimalist Rubygems index and gem server for deploying\nprivate gems.\n\nAuthentication for auth-token generation is done by searching for a\nposixAccount with uid=\u003cusername\u003e in an LDAP directory, and if the user is\nfound, trying to bind against the directory as that user using the provided\npassword.\n\nIf you want to authenticate using some other mechanism, you'll need to replace\nthe authentication bits in lib/gemserver/authentication.rb with your own code.\n\nYou can customize the look and feel by altering the templates and static\ncontent under the gem's data directory.\n\nAuth tokens are stored in a SQLite database.\n\nSome notable features:\n\n* Serves gems and gem indexes, just like rubygems.org\n* Supports uploading via 'gem push'\n* Integrates with your LDAP directory for authentication\n* Spiffy web interface which supports drag-and-drop, multi-file uploads for \n  modern browsers, and degrades into a simpler upload form for older browsers.\n\nCaveats:\n\n* Not designed for or tested in high-traffic situations\n* Not super-configurable; assumes you have an environment similar to ours or \n  are willing to hack it a bit\n* Getting 'gem push' to push to a different gemserver with a different \n  authtoken is not trivial\n\n\n## Installation\n\n    gem install gemserver\n\n\n## Running It\n\nThe gem installs a 'gemserver' binary, which can be run out of the box with no\nconfiguration to test out the software, provided the machine it's running on\nhas LDAP authentication configured correctly. It runs on all interfaces on\nport 9292, stores its gems under a temporary directory, and keeps an in-memory\nauthtoken database.\n\nShould you wish to run it in a permanent fashion, you'll want to create a\n`gemserver.conf` file in the directory you wish to run it from that allows\ncustomization of what interface and port it listens to, where it keeps its\ngems and authentication tokens, etc. An example config is distributed with the\ngem (under data/gemserver/gemserver.conf.example).\n\nYou'll likely want to run it behind a reverse proxy that wraps it in SSL like\nwe do, as it currently just does Basic HTTP authentication.\n\n\n## Contributing\n\nYou can check out the current development source with Mercurial \n[from BitBucket][bitbucket], or if you prefer Git, via \n[its Github mirror][github].\n\nAfter checking out the source, run:\n\n\t$ rake newb\n\nThis task will install any missing dependencies, run the tests/specs, and\ngenerate the API documentation.\n\n\n## Future Plans\n\nMake it more configurable:\n\n* Pluggable authentication\n* Configurable authtoken storage\n\n\n## License\n\nCopyright (c) 2010, 2011, Michael Granger\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice,\n  this list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the author/s, nor the names of the project's\n  contributors may be used to endorse or promote products derived from this\n  software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n[bitbucket]: https://bitbucket.org/ged/gemserver\n[github]: https://github.com/ged/gemserver\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fged%2Fgemserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fged%2Fgemserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fged%2Fgemserver/lists"}