diff --git a/core/installer/server/appmanager/server.go b/core/installer/server/appmanager/server.go
index e0aeab2..ffa710c 100644
--- a/core/installer/server/appmanager/server.go
+++ b/core/installer/server/appmanager/server.go
@@ -170,8 +170,9 @@
 }
 
 type dodoAppInstallResp struct {
-	Id        string `json:"id"`
-	DeployKey string `json:"deployKey"`
+	Id        string             `json:"id"`
+	DeployKey string             `json:"deployKey"`
+	Access    []installer.Access `json:"access"`
 }
 
 type dodoAppRendered struct {
@@ -224,6 +225,7 @@
 		if err := json.NewEncoder(w).Encode(dodoAppInstallResp{
 			Id:        instanceId,
 			DeployKey: cfg.Input.Key.Public,
+			Access:    rr.Access,
 		}); err != nil {
 			http.Error(w, err.Error(), http.StatusInternalServerError)
 		}
@@ -285,6 +287,17 @@
 	s.tasks[instanceId] = &taskForward{t, fmt.Sprintf("/instance/%s", instanceId), 0}
 	t.OnDone(s.cleanTask(instanceId, 0))
 	go t.Start()
+	var rend dodoAppRendered
+	if err := json.NewDecoder(bytes.NewReader(rr.RenderedRaw)).Decode(&rend); err != nil {
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+	}
+	if err := json.NewEncoder(w).Encode(dodoAppInstallResp{
+		Id:        instanceId,
+		DeployKey: rend.Input.Key.Public,
+		Access:    rr.Access,
+	}); err != nil {
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+	}
 }
 
 func (s *Server) handleNetworks(w http.ResponseWriter, r *http.Request) {
