Refactored config system again
All checks were successful
Build (artifact) / build (push) Successful in 27s

This commit is contained in:
2026-06-30 16:48:05 -04:00
parent c01195643a
commit 0a78b70821
18 changed files with 478 additions and 175 deletions

View File

@@ -34,7 +34,7 @@ func renewCertCmd(domain string, noPush bool) error {
if err := app.LoadConfig(); err != nil {
return err
}
if err := app.LoadDomainConfigs(); err != nil {
if err := app.LoadServerDomainConfigs(); err != nil {
return err
}
mgr, err := server.NewACMEManager(app.Config())
@@ -51,22 +51,22 @@ func renewCertCmd(domain string, noPush bool) error {
func renewCerts(domain string, noPush bool, mgr *server.ACMEManager) error {
config := app.Config()
domainConfig, exists := app.DomainStore().Get(domain)
domainConfig, exists := app.ServerDomainStore().Get(domain)
if !exists {
return fmt.Errorf("domain %s does not exist", domain)
}
_, err := mgr.RenewForDomain(domain)
_, err := mgr.RenewForDomain(domainConfig)
if err != nil {
// if no existing cert, obtain instead
_, err = mgr.ObtainForDomain(domain, config, domainConfig)
_, err = mgr.ObtainForDomain(config, domainConfig)
if err != nil {
return fmt.Errorf("error obtaining domain certificates for domain %s: %v", domain, err)
}
}
domainConfig.Internal.LastIssued = time.Now().UTC().Unix()
err = app.WriteDomainConfig(domainConfig)
err = app.WriteServerDomainConfig(domainConfig)
if err != nil {
return fmt.Errorf("error saving domain config %s: %v", domain, err)
}
@@ -96,7 +96,7 @@ func renewCerts(domain string, noPush bool, mgr *server.ACMEManager) error {
return fmt.Errorf("error creating Gitea repo for domain %s", domain)
}
domainConfig.Internal.RepoExists = true
err = app.WriteDomainConfig(domainConfig)
err = app.WriteServerDomainConfig(domainConfig)
if err != nil {
return fmt.Errorf("error saving domain config %s: %v", domain, err)
}
@@ -113,7 +113,7 @@ func renewCerts(domain string, noPush bool, mgr *server.ACMEManager) error {
}
}
dataRoot := common.EffectiveDataRoot(config, domainConfig)
dataRoot := common.EffectiveDataRoot(config, domainConfig.Certificates.DataRoot)
err = server.AddAndPushCerts(gitWorkspace, dataRoot, domainConfig.Repo.RepoSuffix, config)
if err != nil {
return fmt.Errorf("error pushing certificates for domain %s: %v", domain, err)

View File

@@ -38,7 +38,7 @@ func (d *Daemon) loadACMEManager() error {
func (d *Daemon) Init() {
fmt.Println("Starting CertManager in server mode...")
err := appShared.LoadDomainConfigs()
err := appShared.LoadServerDomainConfigs()
if err != nil {
log.Fatalf("Error loading domain configs: %v", err)
}
@@ -59,7 +59,7 @@ func (d *Daemon) Tick() {
now := time.Now().UTC()
config := appShared.Config()
localDomainConfigs := appShared.DomainStore().Snapshot()
localDomainConfigs := appShared.ServerDomainStore().Snapshot()
for domainStr, domainConfig := range localDomainConfigs {
if !domainConfig.Domain.Enabled {
@@ -71,11 +71,11 @@ func (d *Daemon) Tick() {
renewalDue := lastIssued.AddDate(0, 0, renewPeriod)
if now.After(renewalDue) {
//TODO extra check if certificate expiry (create cache?)
_, err := d.ACMEManager.RenewForDomain(domainStr)
_, err := d.ACMEManager.RenewForDomain(domainConfig)
if err != nil {
if errors.Is(err, os.ErrNotExist) {
// if no existing cert, obtain instead
_, err = d.ACMEManager.ObtainForDomain(domainStr, appShared.Config(), domainConfig)
_, err = d.ACMEManager.ObtainForDomain(appShared.Config(), domainConfig)
if err != nil {
fmt.Printf("Error obtaining domain certificates for domain %s: %v\n", domainStr, err)
continue
@@ -86,7 +86,7 @@ func (d *Daemon) Tick() {
}
domainConfig.Internal.LastIssued = time.Now().UTC().Unix()
err = appShared.WriteDomainConfig(domainConfig)
err = appShared.WriteServerDomainConfig(domainConfig)
if err != nil {
fmt.Printf("Error saving domain config %s: %v\n", domainStr, err)
continue
@@ -120,7 +120,7 @@ func (d *Daemon) Tick() {
continue
}
domainConfig.Internal.RepoExists = true
err = appShared.WriteDomainConfig(domainConfig)
err = appShared.WriteServerDomainConfig(domainConfig)
if err != nil {
fmt.Printf("Error saving domain config %s: %v\n", domainStr, err)
continue
@@ -140,7 +140,7 @@ func (d *Daemon) Tick() {
}
}
dataRoot := common.EffectiveDataRoot(config, domainConfig)
dataRoot := common.EffectiveDataRoot(config, domainConfig.Certificates.DataRoot)
err = server.AddAndPushCerts(gitWorkspace, dataRoot, domainConfig.Repo.RepoSuffix, config)
if err != nil {
fmt.Printf("Error pushing certificates for domain %s: %v\n", domainStr, err)
@@ -149,14 +149,14 @@ func (d *Daemon) Tick() {
fmt.Printf("Successfully pushed certificates for domain %s\n", domainStr)
}
}
if err := appShared.SaveDomainConfigs(); err != nil {
if err := appShared.SaveServerDomainConfigs(); err != nil {
fmt.Printf("Error saving domain configs: %v\n", err)
}
}
func (d *Daemon) Reload() {
fmt.Println("Reloading configs...")
err := appShared.LoadDomainConfigs()
err := appShared.LoadServerDomainConfigs()
if err != nil {
fmt.Printf("Error loading domain configs: %v\n", err)

View File

@@ -20,6 +20,7 @@ func main() {
rootCmd.AddCommand(app.VersionCmd)
rootCmd.AddCommand(app.NewKeyCmd)
rootCmd.AddCommand(app.UpdateCmd)
rootCmd.AddCommand(app.DevCmd)
rootCmd.AddCommand(app.NewDomainCmd)