fix: improve setup error handling and health endpoint

- Add /api/v1/health endpoint for web app compatibility
- Add detailed error logging to setup handler
- Show actual error messages when config save fails
- Helps debug permission and filesystem issues
This commit is contained in:
Fimeg
2025-10-29 15:31:46 -04:00
parent 8abbacbec4
commit 0b07ca4c5e
2 changed files with 8 additions and 3 deletions

View File

@@ -23,10 +23,13 @@ func startWelcomeModeServer() {
// Add CORS middleware
router.Use(middleware.CORSMiddleware())
// Health check
// Health check (both endpoints for compatibility)
router.GET("/health", func(c *gin.Context) {
c.JSON(200, gin.H{"status": "waiting for configuration"})
})
router.GET("/api/v1/health", func(c *gin.Context) {
c.JSON(200, gin.H{"status": "waiting for configuration"})
})
// Welcome page with setup instructions
router.GET("/", setupHandler.ShowSetupPage)

View File

@@ -291,13 +291,15 @@ LATEST_AGENT_VERSION=0.1.16`,
// Write configuration to persistent location
configDir := "/app/config"
if err := os.MkdirAll(configDir, 0755); err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create config directory"})
fmt.Printf("Failed to create config directory: %v\n", err)
c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Failed to create config directory: %v", err)})
return
}
envPath := filepath.Join(configDir, ".env")
if err := os.WriteFile(envPath, []byte(envContent), 0600); err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save configuration"})
fmt.Printf("Failed to save configuration: %v\n", err)
c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Failed to save configuration: %v", err)})
return
}