{"id":21480295,"url":"https://github.com/dlang/dub-registry","last_synced_at":"2026-01-27T23:48:43.594Z","repository":{"id":5290219,"uuid":"6470690","full_name":"dlang/dub-registry","owner":"dlang","description":"Online registry for dub packages","archived":false,"fork":false,"pushed_at":"2024-11-24T12:18:58.000Z","size":1600,"stargazers_count":82,"open_issues_count":104,"forks_count":64,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-01-23T18:45:30.783Z","etag":null,"topics":["d","dlang","dub","dub-registry","online-registry","registry","vibed"],"latest_commit_sha":null,"homepage":null,"language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dlang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","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},"funding":{"open_collective":"dlang","custom":"https://dlang.org/foundation/donate.html"}},"created_at":"2012-10-31T08:14:47.000Z","updated_at":"2024-11-24T12:19:02.000Z","dependencies_parsed_at":"2023-09-24T17:43:56.917Z","dependency_job_id":"0d5ac7b3-4783-4277-b7b8-9e99f7757da9","html_url":"https://github.com/dlang/dub-registry","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang%2Fdub-registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang%2Fdub-registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang%2Fdub-registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang%2Fdub-registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dlang","download_url":"https://codeload.github.com/dlang/dub-registry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244006277,"owners_count":20382443,"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":["d","dlang","dub","dub-registry","online-registry","registry","vibed"],"created_at":"2024-11-23T12:14:15.704Z","updated_at":"2026-01-27T23:48:43.587Z","avatar_url":"https://github.com/dlang.png","language":"D","funding_links":["https://opencollective.com/dlang","https://dlang.org/foundation/donate.html"],"categories":[],"sub_categories":[],"readme":"DUB registry\n============\n\n![vibe.d logo](public/images/logo-small.png) Online registry for [dub](https://github.com/dlang/dub/) packages, see \u003chttp://code.dlang.org/\u003e.\n\n[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://www.heroku.com/deploy?template=https://github.com/dlang/dub-registry)\n\nHow to build \u0026 run locally\n--------------------------\n\nRequirements:\n\n- OpenSSL\n- MongoDB\n\n```console\ndub\n```\n\nRunning as a mirror\n-------------------\n\n```console\ndub -- --mirror=https://code.dlang.org\n```\n\nGitHub/GitLab/Gitea (Codeberg) API\n-----------------\n\nBy default the GitHub/GitLab update cron job will use anonymous authentication on your local machine. As GitHub's API without authentication is quite rate-limited, you probably want to use authenticated API requests.\nYou can do so by creating a `settings.json` in the root folder of the dub-registry and adding credentials for the needed APIs:\n\n```json\n{\n\t\"github-auth\": \"\u003cgithub-personal-access-token from https://github.com/settings/tokens\u003e\",\n\t\"gitlab-url\": \"https://gitlab.com/\",\n\t\"gitlab-auth\": \"\u003cgitlab-api-token from https://gitlab.com/-/profile/personal_access_tokens\u003e\",\n\t\"bitbucket-user\": \"\u003cyour-fancy-user-name\u003e\",\n\t\"bitbucket-password\": \"\u003cyour-fancy-password\u003e\",\n\t\"gitea-url\": \"https://codeberg.org/\",\n\t\"gitea-auth\": \"\u003cgitea/forgejo API token (Codeberg: Settings -\u003e Applications -\u003e New Token)\u003e\"\n}\n```\n\nIt's recommended to create a separate account for the DUB registry GitHub authentication. Equally, if no GitLab packages are used in your local repository, no GitLab authentication is needed.\n\nIt's absolutely recommended to create a personal access token without any extra permissions for your GitHub account instead of entering your password plain text into the settings file. You can generate an access token at https://github.com/settings/tokens (Settings -\u003e Developer Settings -\u003e Personal access tokens)\n\n### SECURITY NOTICE\n\nDevelopment versions prior to 2.3.0 were leaking the GitLab private token in error messages shown to the user. Please make sure to use the latest version along with a freshly generated token.\n\n### Codeberg support (via Gitea/Forgejo)\n\nCodeberg runs Forgejo, a fork of Gitea. dub-registry supports generic Gitea/Forgejo instances. To enable Codeberg support:\n\n- Set `gitea-url` to `https://codeberg.org/` in your `settings.json` (or use env var `GITEA_URL`).\n- (Optional) Set `gitea-auth` to a personal access token for higher API rate limits and to access private repositories (env var `GITEA_AUTH`).\n\nNote: currently only a single Gitea/Forgejo instance can be configured at a time.\n\nRunning without the cron job\n----------------------------\n\nFor local development it's often useful to disable the cron job, you can do so with the `--no-monitoring` flag:\n\n```console\ndub -- --no-monitoring\n```\n\nImporting a one-time snapshot from the registry\n-----------------------------------------------\n\nYou can download a dump of all packages and import it into your local registry for development:\n\n```console\ncurl https://code.dlang.org/api/packages/dump \u003e mirror.json\ndub -- --mirror=mirror.json\n```\n\nStarting the registry with `mirror.json` will import all packages within the JSON file.\nOnce all packages have been imported, you can start the registry as you normally would:\n\n```console\ndub\n```\n\nAnd you should notice that it now contains all packages which are listed on code.dlang.org\n\nNote that `--mirror=mirror.json` and `--mirror=https://code.dlang.org` are very similar and the `mirror.json` is only preferred for local development because it allows to easily nuke the entire mongo database and re-initialize it without needing any connection to the internet.\n\nBuild/Running dub-registry with Docker\n---------------------------------------\n\n- Build:\n\n```console\nexport DUB_REGISTRY_HOME=$PWD\ndocker compose build\n```\n\n- Run:\n\n```console\nexport DUB_REGISTRY_HOME=$PWD\ndocker compose up -d\n```\n\n- Stop:\n\n```console\ndocker compose down\n```\n\nThis will run both `mongodb` and `dub-registry` while persisting the database in the `$DUB_REGISTRY_HOME` location. The registry is accessible at http://127.0.0.1:9095\n\nThe registry can be configured by adding the `settings.json` file in `$DUB_REGISTRY_HOME` folder.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlang%2Fdub-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdlang%2Fdub-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlang%2Fdub-registry/lists"}