Custom Domain Names for Repositories βeta

By default, your Gemfury reposistories are available via the [repo].fury.io endpoints where the Repo-URL hostname is based on the package type and package manager that you are using. For example, a RubyGems repository is available via:

https://gem.fury.io/USERNAME/

By enabling a custom domain for a Gemfury account, you will also be able to access this account’s repositories via a domain of your choosing:

https://www.yourcustomdomain.com/REPO-ID/

Please note that Gemfury works with domains that you already own and manage. We do not provide domain registration/DNS services, nor do we provide continuous monitoring to verify your domain configuration.

Enable a custom domain for your account

You can add a custom domain to your account via the following steps:

  1. Register and configure your domain via your registrar
  2. Go to your dashboard and choose the correct account
  3. Select the Settings tab and then Domains
  4. Enter your domain and click Add

Configuring DNS for your custom domain

After adding your domain to your account, you’ll need to work with your DNS provider to point your domain to Gemfury. This is done by creating a CNAME record for your domain as follows:

Record Name Target
CNAME repo repo.yourcustomdomain.com.furyns.com.
CNAME other other.yourcustomdomain.com.furyns.com.

To set up an apex domain without a subdomain, such as yourcustomdomain.com, you must configure a similar ALIAS or ANAME record with your DNS provider. Not all DNS providers support this feature.

Testing your custom domain

To recognize and serve your repository index, your DNS record must point to Gemfury’s custom domains endpoint. To confirm that your CNAME is active, use the dig command:

$ dig repo.example.com +nostats +nocomments +nocmd
repo.example.com.	3554	IN	CNAME	repo.example.com.furyns.com.

Using your repository via custom domains

Once you’ve configured your domain, all Gemfury repositories are available as top-level paths of your custom domain. In your configuration, you would replace your repository URLs are follows:

Repo Standard Repo-URL With custom domain
RubyGems h​ttps://gem.fury.io/USERNAME/ h​ttps://repo.example.com/gem/
Javascript npm h​ttps://npm.fury.io/USERNAME/ h​ttps://repo.example.com/npm/
PHP Composer h​ttps://php.fury.io/USERNAME/ h​ttps://repo.example.com/php/
Python PyPI h​ttps://pypi.fury.io/USERNAME/ h​ttps://repo.example.com/pypi/
APT/DEB h​ttps://apt.fury.io/USERNAME/ h​ttps://repo.example.com/apt/
YUM/RPM h​ttps://yum.fury.io/USERNAME/ h​ttps://repo.example.com/yum/
NuGet h​ttps://nuget.fury.io/USERNAME/ h​ttps://repo.example.com/nuget/

These custom-domain URLs can be directed to either private and public repositories by including or excluding a secret token via Basic Auth (ie. Authorization header). Gemfury does not support using path tokens to authenticate into your custom domain.