@@ -392,15 +392,38 @@ func (s *Service) setupRouteAndDNSForDomain(route Route, app *App, svr *server.S
392392 log .Printf ("DNS A record already exists for %s, IP matches (IP: %s, proxied: %v)" , route .Domain , existing .Content , existing .Proxied )
393393 }
394394 } else {
395- record , err := s .cf .CreateRecord (route .Domain , svr .Host , true )
395+ record , err := s .cf .CreateRecord (route .Domain , svr .Host , false )
396396 if err != nil {
397397 log .Printf ("Warning: Cloudflare DNS failed for %s: %v" , route .Domain , err )
398398 if logs != nil {
399399 * logs = append (* logs , fmt .Sprintf ("dns/%s: %v" , route .Domain , err ))
400400 }
401401 } else {
402- log .Printf ("DNS A record created: %s -> %s" , record .Name , record .Content )
402+ log .Printf ("DNS A record created: %s -> %s (proxied=false) " , record .Name , record .Content )
403403 s .repo .SaveDNSRecord (app .ID , svr .ID , record .ZoneID , record .ID , record .Name , "A" , record .Content , record .Proxied )
404+
405+ caddyClient := caddy .NewClient (client )
406+ if caddyClient .WaitForCertificate (route .Domain , 60 * time .Second ) {
407+ updated , err := s .cf .UpdateRecord (record .ID , route .Domain , svr .Host , true )
408+ if err != nil {
409+ log .Printf ("Warning: failed to enable Cloudflare proxy for %s: %v" , route .Domain , err )
410+ if logs != nil {
411+ * logs = append (* logs , fmt .Sprintf ("dns/%s: enable proxy failed: %v" , route .Domain , err ))
412+ }
413+ } else {
414+ log .Printf ("Cloudflare proxy enabled for %s" , route .Domain )
415+ s .repo .UpdateDNSRecordProxied (record .ID , true )
416+ if logs != nil {
417+ * logs = append (* logs , fmt .Sprintf ("dns/%s: proxy enabled (cert ok)" , route .Domain ))
418+ }
419+ _ = updated
420+ }
421+ } else {
422+ log .Printf ("Timeout waiting for Caddy cert for %s, leaving proxied=false" , route .Domain )
423+ if logs != nil {
424+ * logs = append (* logs , fmt .Sprintf ("dns/%s: timeout, proxy disabled" , route .Domain ))
425+ }
426+ }
404427 }
405428 }
406429 }
0 commit comments