diff --git a/internal/upstream/routes.go b/internal/upstream/routes.go
index f002a8991cc45f7db9facbe7f7e0bc9af9e878d0..196b9a64139c1bbb975a8ba80c635b1f9217d996 100644
--- a/internal/upstream/routes.go
+++ b/internal/upstream/routes.go
@@ -162,6 +162,7 @@ func (u *upstream) configureRoutes() {
 
 	static := &staticpages.Static{DocumentRoot: u.DocumentRoot}
 	proxy := buildProxy(u.Backend, u.Version, u.RoundTripper)
+	simpleProxy := proxypkg.NewProxy(u.Backend, u.Version, u.RoundTripper)
 
 	signingTripper := secret.NewRoundTripper(u.RoundTripper, u.Version)
 	signingProxy := buildProxy(u.Backend, u.Version, signingTripper)
@@ -191,6 +192,9 @@ func (u *upstream) configureRoutes() {
 		route("POST", apiPattern+`v4/jobs/[0-9]+/artifacts\z`, contentEncodingHandler(artifacts.UploadArtifacts(api, signingProxy))),
 		route("POST", ciAPIPattern+`v1/builds/[0-9]+/artifacts\z`, contentEncodingHandler(artifacts.UploadArtifacts(api, signingProxy))),
 
+		// ActionCable websocket
+		wsRoute(`^/-/cable\z`, simpleProxy),
+
 		// Terminal websocket
 		wsRoute(projectPattern+`-/environments/[0-9]+/terminal.ws\z`, channel.Handler(api)),
 		wsRoute(projectPattern+`-/jobs/[0-9]+/terminal.ws\z`, channel.Handler(api)),