installer: create headscale user resource
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 {