diff --git a/core/installer/welcome/create-admin-account.html b/core/installer/welcome/create-admin-account.html
index 5f6efd2..2b22074 100644
--- a/core/installer/welcome/create-admin-account.html
+++ b/core/installer/welcome/create-admin-account.html
@@ -36,7 +36,7 @@
 				aria-label="Secret Token"
 				required
 			  />
-			  <button type="submit" class="contrast">Create Account</button>
+			  <button type="submit">Create Account</button>
 			</form>
 		</main>
 	</body>
diff --git a/core/installer/welcome/env.go b/core/installer/welcome/env.go
index 4e74181..3d3e332 100644
--- a/core/installer/welcome/env.go
+++ b/core/installer/welcome/env.go
@@ -556,9 +556,9 @@
 			return err
 		}
 		if err := appManager.Install(*app, nsGen, emptySuffixGen, map[string]any{
-			"Username":       "private-network-proxy",
-			"IPSubnet":       "10.1.0.0/24",
-			"HostnameSuffix": "private-network-proxy",
+			"Hostname": "private-network-proxy",
+			"Username": "private-network-proxy",
+			"IPSubnet": "10.1.0.0/24",
 		}); err != nil {
 			return err
 		}
diff --git a/core/installer/welcome/welcome.go b/core/installer/welcome/welcome.go
index 2517a6f..e13ec3a 100644
--- a/core/installer/welcome/welcome.go
+++ b/core/installer/welcome/welcome.go
@@ -93,7 +93,11 @@
 }
 
 func (s *Server) createAdminAccount(w http.ResponseWriter, r *http.Request) {
-	var req createAccountReq
+	req, err := extractReq(r)
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+		return
+	}
 	// TODO(giolekva): accounts-ui create user req
 	{
 		config, err := s.repo.ReadConfig()
@@ -127,19 +131,20 @@
 			}
 		}
 		{
-			app, err := appsRepo.Find("tailscale-proxy")
+			app, err := appsRepo.Find("headscale-user")
 			if err != nil {
 				http.Error(w, err.Error(), http.StatusInternalServerError)
 				return
 			}
 			if err := appManager.Install(*app, nsGen, suffixGen, map[string]any{
 				"Username": req.Username,
-				"IPSubnet": "10.1.0.0/24", // TODO(giolekva): this should be taken from the config generated during new env creation
+				"PreAuthKey": map[string]any{
+					"Enabled": false,
+				},
 			}); err != nil {
 				http.Error(w, err.Error(), http.StatusInternalServerError)
 				return
 			}
-			// TODO(giolekva): headscale accept routes
 		}
 	}
 	if _, err := w.Write([]byte("OK")); err != nil {
