diff --git a/api/client.go b/api/client.go
index <HASH>..<HASH> 100644
--- a/api/client.go
+++ b/api/client.go
@@ -55,6 +55,7 @@ func NewClient(cfg *config.Config) *Client {
 		DefaultRequestDoer: registry.DefaultRequestDoer{
 			Client: &http.Client{
 				Transport: newTransport(cfg),
+				Timeout:   30 * time.Second,
 			},
 			Host: "http://localhost",
 		},
diff --git a/registry/client.go b/registry/client.go
index <HASH>..<HASH> 100644
--- a/registry/client.go
+++ b/registry/client.go
@@ -46,8 +46,11 @@ func NewClient(prefix string, apiVersion string, version string,
 
 	rt := &registryRoundTripper{
 		DefaultRequestDoer: DefaultRequestDoer{
-			Client: &http.Client{Transport: t},
-			Host:   prefix,
+			Client: &http.Client{
+				Transport: t,
+				Timeout:   30 * time.Second,
+			},
+			Host: prefix,
 		},
 
 		apiVersion: apiVersion,
HTTPClient: set up Timeout.

This will set up a time limit for requests made by the HTTP Client. This
way, if a connection hangs, we timeout and can retry instead of blocking
forever.