- Use current state for configuration status check in root route
- Prevent double reload when saving config through API
- Track reload times globally to avoid file watcher conflicts
- This fixes the issue where setup page doesn't redirect after save
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix apiClients object access (use bracket notation, not .get())
- Initialize apiClients as plain objects, not Maps, for consistency
- This fixes the "apiClients.get is not a function" error when testing connections
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change configuration loader to warn instead of throwing error when config is missing
- Allow server to start in setup mode with empty endpoints
- Skip API client initialization when no endpoints are configured
- This enables the web-based setup flow to work properly
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create configuration setup page at /setup.html for entering Proxmox credentials
- Add configuration API endpoints for save, test, and reload operations
- Implement automatic .env file watching with hot reload on changes
- Add configuration warning banner when placeholder config detected
- Auto-redirect to setup page when configuration is missing
- Add WebSocket notifications for configuration reload events
- Update empty states with configuration required message
- No SSH or manual restarts needed - everything through web UI
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add endpoint configuration sharing between server and client
- Make Proxmox node group headers clickable using API-based mapping
- Make PBS instance names clickable in both desktop and mobile views
- Links open correct cluster endpoints based on node's actual endpointId
- Subtle hover styling without blue underlines for cleaner UI
- All links open in new tabs with security attributes
Resolves issue with users wanting direct access to host web interfaces.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add explicit SPA route handler in server/index.js
- Correct middleware order in server/index.js
- Build CSS locally and copy into Docker image
- Adjust Dockerfile to copy pre-built CSS