diff --git a/doc/book/src/cookbook/real_world.md b/doc/book/src/cookbook/real_world.md
index 70262cc3..7864274c 100644
--- a/doc/book/src/cookbook/real_world.md
+++ b/doc/book/src/cookbook/real_world.md
@@ -83,6 +83,7 @@ bootstrap_peers = []
 [s3_api]
 s3_region = "garage"
 api_bind_addr = "[::]:3900"
+root_domain = ".s3.garage"
 
 [s3_web]
 bind_addr = "[::]:3902"
diff --git a/doc/book/src/quick_start/index.md b/doc/book/src/quick_start/index.md
index 9ff8be7f..8de3fd8b 100644
--- a/doc/book/src/quick_start/index.md
+++ b/doc/book/src/quick_start/index.md
@@ -48,6 +48,7 @@ bootstrap_peers = []
 [s3_api]
 s3_region = "garage"
 api_bind_addr = "[::]:3900"
+root_domain = ".s3.garage"
 
 [s3_web]
 bind_addr = "[::]:3902"
diff --git a/doc/book/src/reference_manual/configuration.md b/doc/book/src/reference_manual/configuration.md
index e165eb87..7eb64c14 100644
--- a/doc/book/src/reference_manual/configuration.md
+++ b/doc/book/src/reference_manual/configuration.md
@@ -30,6 +30,7 @@ sled_flush_every_ms = 2000
 [s3_api]
 api_bind_addr = "[::]:3900"
 s3_region = "garage"
+root_domain = ".3.garage"
 
 [s3_web]
 bind_addr = "[::]:3902"
@@ -176,6 +177,13 @@ Garage will accept S3 API calls that are targetted to the S3 region defined here
 API calls targetted to other regions will fail with a AuthorizationHeaderMalformed error
 message that redirects the client to the correct region.
 
+#### `root_domain`
+
+The optionnal suffix to access bucket using vhost-style instead of path-style API calls.
+
+For instance, if `root_domain` is `s3.garage.eu`, a bucket called `deuxfleurs.fr`
+can be interacted with with hostname `deuxfleurs.fr.s3.garage.eu`. Note however you 
+can't interact with it using hostname `deuxfleurs.fr` directly.
 
 ## The `[s3_web]` section