primeiro commit

This commit is contained in:
2026-06-18 22:32:42 -03:00
commit 968f4ef5d9
25 changed files with 3222 additions and 0 deletions

54
cmd/pdns-admin/main.go Normal file
View File

@@ -0,0 +1,54 @@
package main
import (
"log"
"net/http"
"os"
"pdns_admin/internal/auth"
"pdns_admin/internal/config"
"pdns_admin/internal/pdns"
"pdns_admin/internal/server"
)
func main() {
logger := log.New(os.Stdout, "pdns-admin ", log.LstdFlags|log.LUTC)
cfg, err := config.Load()
if err != nil {
logger.Fatalf("configuration error: %v", err)
}
pdnsClient := pdns.NewClient(cfg.PDNSAPIURL, cfg.PDNSAPIKey, cfg.PDNSServerID, http.DefaultClient)
var authenticator server.Authenticator
if !cfg.Auth.Disabled {
authenticator, err = auth.NewLDAPAuthenticator(auth.LDAPConfig{
URL: cfg.Auth.LDAP.URL,
StartTLS: cfg.Auth.LDAP.StartTLS,
InsecureSkipVerify: cfg.Auth.LDAP.InsecureSkipVerify,
BindDN: cfg.Auth.LDAP.BindDN,
BindPassword: cfg.Auth.LDAP.BindPassword,
UserBaseDN: cfg.Auth.LDAP.UserBaseDN,
UsernameAttribute: cfg.Auth.LDAP.UsernameAttribute,
UserFilter: cfg.Auth.LDAP.UserFilter,
GroupBaseDN: cfg.Auth.LDAP.GroupBaseDN,
GroupFilter: cfg.Auth.LDAP.GroupFilter,
})
if err != nil {
logger.Fatalf("authentication initialization error: %v", err)
}
}
app, err := server.New(server.Config{
Addr: cfg.Addr,
Authenticator: authenticator,
}, pdnsClient, logger)
if err != nil {
logger.Fatalf("server initialization error: %v", err)
}
logger.Printf("listening on %s", cfg.Addr)
if err := app.ListenAndServe(); err != nil && err != http.ErrServerClosed {
logger.Fatalf("server stopped: %v", err)
}
}