{"id":29790905,"url":"https://github.com/metabrainz/bookbrainz-site","last_synced_at":"2025-07-28T00:13:05.393Z","repository":{"id":25100763,"uuid":"28521896","full_name":"metabrainz/bookbrainz-site","owner":"metabrainz","description":"BookBrainz website, written in node.js.","archived":false,"fork":false,"pushed_at":"2025-07-22T15:40:21.000Z","size":50936,"stargazers_count":209,"open_issues_count":25,"forks_count":303,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-07-22T17:35:31.887Z","etag":null,"topics":["docker","elasticsearch","es2017","javascript","nodejs","postgresql","react","redis"],"latest_commit_sha":null,"homepage":"https://bookbrainz.org/","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/metabrainz.png","metadata":{"funding":{"custom":["https://metabrainz.org/donate"],"github":["metabrainz"]},"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2014-12-26T21:41:51.000Z","updated_at":"2025-07-22T15:38:36.000Z","dependencies_parsed_at":"2024-01-18T14:37:59.770Z","dependency_job_id":"76731d51-e344-42e7-9277-6f10a80b771c","html_url":"https://github.com/metabrainz/bookbrainz-site","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/metabrainz/bookbrainz-site","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metabrainz%2Fbookbrainz-site","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metabrainz%2Fbookbrainz-site/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metabrainz%2Fbookbrainz-site/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metabrainz%2Fbookbrainz-site/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/metabrainz","download_url":"https://codeload.github.com/metabrainz/bookbrainz-site/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metabrainz%2Fbookbrainz-site/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267442902,"owners_count":24087893,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"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":["docker","elasticsearch","es2017","javascript","nodejs","postgresql","react","redis"],"created_at":"2025-07-28T00:13:03.141Z","updated_at":"2025-07-28T00:13:05.349Z","avatar_url":"https://github.com/metabrainz.png","language":"JavaScript","funding_links":["https://metabrainz.org/donate","https://github.com/sponsors/metabrainz"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://bookbrainz.org\"\u003e\u003cimg src=\"https://github.com/metabrainz/metabrainz-logos/blob/master/logos/BookBrainz/PNG/BookBrainz_logo.png\" alt=\"BookBrainz\"\u003e\u003c/a\u003e\n\u003c/h1\u003e\n\u003ch4 align=\"center\"\u003eServer for the BookBrainz project\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/metabrainz/bookbrainz-site/actions/workflows/ci.yml/badge.svg?branch=master\"\n         alt=\"CI status\"\u003e\n    \u003cimg src=\"https://github.com/metabrainz/bookbrainz-site/actions/workflows/test-report.yml/badge.svg?branch=master\"\n         alt=\"Tests status\"\u003e\n    \u003cimg src=\"https://coveralls.io/repos/github/bookbrainz/bookbrainz-site/badge.svg?branch=master)](https://coveralls.io/github/bookbrainz/bookbrainz-site?branch=master\"\n         alt=\"Coverage status\"\u003e\n\t\u003ca href=\"https://codeclimate.com/github/bookbrainz/bookbrainz-site\"\u003e\n\t\t\u003cimg src=\"https://api.codeclimate.com/v1/badges/76f87309d52d75ff4a18/maintainability\"\n         alt=\"Maintainability\"\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://www.browserstack.com/\"\u003e\n\t\t\u003cimg src=\"https://bookbrainz.org/images/BrowserStack.svg\" height=\"20px\"\u003e\u003c/img\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://bookbrainz.org\"\u003eWebsite\u003c/a\u003e •\n  \u003ca href=\"https://bookbrainz-dev-docs.readthedocs.io/\"\u003eDocumentation\u003c/a\u003e •\n  \u003ca href=\"https://tickets.metabrainz.org/projects/BB/issues\"\u003eBug tracker\u003c/a\u003e\n\u003c/p\u003e\n\n\n\u003chr\u003e\nThis repository contains the code for the BookBrainz web site. The directories\nare arranged as follows:\n\n* `config` - the config to be used when running the site; copy the example files\n  and edit, dropping the `.example` suffix.\n* `docker` - deployment files and configurations\n* `scripts` - scripts used during the development and deployment of BookBrainz.\n* `sql` - PostgreSQL database schemas and migration files—formerly separated in https://github.com/bookbrainz/bookbrainz-sql\n* `src` - node.js source files defining the site logic and user interface.\n* `static` - static files which are served by node as part of the site.\n* `test` - unit tests and functional tests for the site.\n\nAdditionally, after building the client JavaScript (see below), the following\ndirectories will exist:\n\n* `lib` - compiled and minified server files\n* `static/stylesheets` - the CSS generated from compiling the project LESS files\n  (`src/client/stylesheets`).\n* `static/js` - minified JavaScript files which are referred to by the site\n  pages.\n  \n## Contact and updates\n\nAny questions? You can get in contact with the community on [our IRC channel](https://kiwiirc.com/nextclient/irc.libera.chat/?#bookbrainz) or [our forums](https://community.metabrainz.org/c/bookbrainz), or send us [an email](mailto:bookbrainz@metabrainz.org)\n\nBreaking changes to the database schema or our API will be announced on\n[our blog](https://blog.metabrainz.org/category/bookbrainz/), along with our other major updates,\nso consider following that.\n\n\n## Contributing\nWe welcome any and all contributions ! Whether you want to add or improve entries on [bookbrainz.org](https://bookbrainz.org), fix an issue on the website or provide new functionality, we'll be happy to have your help and count you part of our ranks !\nIf you are new to open source contribution workflows, have a look at [this beginner's guide](https://akrabat.com/the-beginners-guide-to-contributing-to-a-github-project/) and our [contribution guidelines](CONTRIBUTING.md).\nLooking for existing issues, or to report a new bug you found? Head to our ticket tracker at https://tickets.metabrainz.org/projects/BB !\nStill not sure what to start with? Have a look at [tickets tagged **good-first-bug**](https://tickets.metabrainz.org/issues/?jql=project%20%3D%20BB%20AND%20status%20in%20(Open%2C%20Reopened)%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20good-first-bug%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC)\n\n### Setting up a local BookBrainz server\n\nFor instruction on how to [set up and configure a local BookBrainz instance](https://bookbrainz-dev-docs.readthedocs.io/en/latest/docs/installation.html), as well as [troubleshooting common issues](https://bookbrainz-dev-docs.readthedocs.io/en/latest/docs/troubleshooting.html) and setting up testing, please visit our developer docs: https://bookbrainz-dev-docs.readthedocs.io\n\n## Documentation\n\nThe developer documentation can be found at https://bookbrainz-dev-docs.readthedocs.io\n\nWe also have a user guide for the website https://bookbrainz-user-guide.readthedocs.io\n\nThe inline documentation found in this repository is served alongside on Github Pages: https://metabrainz.github.io/bookbrainz-site\n\nOur contributing guidelines can be found [here](CONTRIBUTING.md).\n\n\u003cbr/\u003e\n\n## Beta and test subdomains\n\nWe have two separate subdomains for the purpose of testing and rolling out beta features.\nYou can sign in with the same account as the one you use on the main website.\n\n__[beta.bookbrainz.org](https://beta.bookbrainz.org)__ uses the main database but with a newer version of the code that hasn't been released yet. It is used to test new features.\n\n__[test.bookbrainz.org](https://test.bookbrainz.org)__: all changes made to this subdomain are not in sync with the main database and vice versa.\nThis domain is for you to tinker with all features of the website freely without having to verify the correctness of the data you enter. This comes in handy if that's all you need to do instead of having to set up BookBrainz locally.\nThis subdomain is used for testing only and the data is not maintained or updated. It is not guaranteed that any of the data will be authentic.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetabrainz%2Fbookbrainz-site","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetabrainz%2Fbookbrainz-site","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetabrainz%2Fbookbrainz-site/lists"}