feat: automatic proxy re-sync on settings change
When domain, SSL certificate, or proxy provider changes in settings: - Delete old proxy routes from the previous provider - Switch to None: clear all route IDs on instances - Switch to NPM/Traefik: re-create routes with new settings - Domain change: re-configure all routes with new FQDN - SSL cert change: re-apply to all existing routes - Provider created dynamically at runtime via createProxyProvider() - Deployer and API server updated via SetProxyProvider callback
This commit is contained in:
@@ -46,6 +46,7 @@ type Server struct {
|
||||
dbPath string
|
||||
shutdownFunc func() // called after restore to trigger graceful shutdown
|
||||
onBackupSettingsChanged func(enabled bool, intervalHours int) // called when backup settings change
|
||||
onProxyProviderChanged func(provider proxy.Provider) // called when proxy provider changes
|
||||
}
|
||||
|
||||
// NewServer creates a new API Server with all required dependencies.
|
||||
@@ -108,6 +109,16 @@ func (s *Server) SetBackupSettingsChangedCallback(fn func(enabled bool, interval
|
||||
s.onBackupSettingsChanged = fn
|
||||
}
|
||||
|
||||
// SetProxyProviderChangedCallback sets the callback for when the proxy provider changes.
|
||||
func (s *Server) SetProxyProviderChangedCallback(fn func(provider proxy.Provider)) {
|
||||
s.onProxyProviderChanged = fn
|
||||
}
|
||||
|
||||
// SetProxyProvider updates the proxy provider at runtime.
|
||||
func (s *Server) SetProxyProvider(provider proxy.Provider) {
|
||||
s.proxyProvider = provider
|
||||
}
|
||||
|
||||
// SetDNSProvider sets the current DNS provider on the server.
|
||||
func (s *Server) SetDNSProvider(provider dns.Provider) {
|
||||
s.dnsProviderMu.Lock()
|
||||
|
||||
Reference in New Issue
Block a user