diff --git a/api/config/settings/common.py b/api/config/settings/common.py
index 6a4430d8ae5bd1eb4605693c203e337176008bb9..d952e0d2d46a3e3aa4e5def2a80a73c3b375ed0a 100644
--- a/api/config/settings/common.py
+++ b/api/config/settings/common.py
@@ -487,6 +487,11 @@ PROTECT_FILES_PATH = env("PROTECT_FILES_PATH", default="/_protected")
 # musicbrainz results. (value is in seconds)
 MUSICBRAINZ_CACHE_DURATION = env.int("MUSICBRAINZ_CACHE_DURATION", default=300)
 
+# Use this setting to change the musicbrainz hostname, for instance to
+# use a mirror. The hostname can also contain a port number (so, e.g.,
+# "localhost:5000" is a valid name to set).
+MUSICBRAINZ_HOSTNAME = env("MUSICBRAINZ_HOSTNAME", default="musicbrainz.org")
+
 # Custom Admin URL, use {% url 'admin:index' %}
 ADMIN_URL = env("DJANGO_ADMIN_URL", default="^api/admin/")
 CSRF_USE_SESSIONS = True
diff --git a/api/funkwhale_api/musicbrainz/client.py b/api/funkwhale_api/musicbrainz/client.py
index deae0672fdd994c3914149d18a561f96ad2a77ac..1355da9438ea6b1a67a4fa659dccd83ddb8e30ce 100644
--- a/api/funkwhale_api/musicbrainz/client.py
+++ b/api/funkwhale_api/musicbrainz/client.py
@@ -6,6 +6,7 @@ from funkwhale_api import __version__
 
 _api = musicbrainzngs
 _api.set_useragent("funkwhale", str(__version__), settings.FUNKWHALE_URL)
+_api.set_hostname(settings.MUSICBRAINZ_HOSTNAME)
 
 
 store = memoize.djangocache.Cache("default")
diff --git a/changes/changelog.d/471.enhancement b/changes/changelog.d/471.enhancement
new file mode 100644
index 0000000000000000000000000000000000000000..f297b4ce77d3f154a946d48ef497b89a7b0d0550
--- /dev/null
+++ b/changes/changelog.d/471.enhancement
@@ -0,0 +1 @@
+Add configuration option to set Musicbrainz hostname