diff --git a/apps/app-runner/main.go b/apps/app-runner/main.go
index dce8ffe..21be651 100644
--- a/apps/app-runner/main.go
+++ b/apps/app-runner/main.go
@@ -21,7 +21,7 @@
 var sshKey = flag.String("ssh-key", "", "Private SSH key to access Git repository")
 var appDir = flag.String("app-dir", "", "Path to store application repository locally")
 var runCfg = flag.String("run-cfg", "", "Run configuration")
-var manager = flag.String("manager", "", "Address of the manager")
+var managerAddr = flag.String("manager-addr", "", "Address of the manager")
 
 type Command struct {
 	Bin  string   `json:"bin"`
@@ -98,6 +98,6 @@
 	if err := json.NewDecoder(r).Decode(&cmds); err != nil {
 		panic(err)
 	}
-	s := NewServer(*port, *appId, *repoAddr, signer, *appDir, cmds, self, *manager)
+	s := NewServer(*port, *appId, *repoAddr, signer, *appDir, cmds, self, *managerAddr)
 	s.Start()
 }
diff --git a/apps/app-runner/server.go b/apps/app-runner/server.go
index 7985ac6..f3ee563 100644
--- a/apps/app-runner/server.go
+++ b/apps/app-runner/server.go
@@ -24,7 +24,7 @@
 	appDir      string
 	runCommands []Command
 	self        string
-	manager     string
+	managerAddr string
 }
 
 func NewServer(port int, appId string, repoAddr string, signer ssh.Signer, appDir string, runCommands []Command, self string, manager string) *Server {
@@ -38,7 +38,7 @@
 		appDir:      appDir,
 		runCommands: runCommands,
 		self:        self,
-		manager:     manager,
+		managerAddr: manager,
 	}
 }
 
@@ -120,7 +120,6 @@
 }
 
 type pingReq struct {
-	AppId   string `json:"appId"`
 	Address string `json:"address"`
 }
 
@@ -131,9 +130,12 @@
 			s.pingManager()
 		}()
 	}()
-	buf, err := json.Marshal(pingReq{s.appId, s.self})
+	buf, err := json.Marshal(pingReq{
+		Address: fmt.Sprintf("%s:%d", s.self, s.port),
+	})
 	if err != nil {
 		return
 	}
-	http.Post(s.manager, "application/json", bytes.NewReader(buf))
+	registerWorkerAddr := fmt.Sprintf("%s/api/apps/%s/workers", s.managerAddr, s.appId)
+	http.Post(registerWorkerAddr, "application/json", bytes.NewReader(buf))
 }
