mirror of
https://github.com/acme-dns/acme-dns.git
synced 2026-02-21 09:15:30 -07:00
* Refactor core * Re-added tests * Small fixes * Add tests for acmetxt cidrslice and util funcs * Remove the last dangling reference to old logging package * Refactoring (#327) * chore: enable more linters and fix linter issues * ci: enable linter checks on all branches and disable recurring checks recurring linter checks don't make that much sense. The code & linter checks should not change on their own over night ;) * chore: update packages * Revert "chore: update packages" This reverts commit 30250bf28c4b39e9e5b3af012a4e28ab036bf9af. * chore: manually upgrade some packages * Updated dependencies, wrote changelog entry and fixed namespace for release * Refactoring - improving coverage (#371) * Increase code coverage in acmedns * More testing of ReadConfig() and its fallback mechanism * Found that if someone put a '"' double quote into the filename that we configure zap to log to, it would cause the the JSON created to be invalid. I have replaced the JSON string with proper config * Better handling of config options for api.TLS - we now error on an invalid value instead of silently failing. added a basic test for api.setupTLS() (to increase test coverage) * testing nameserver isOwnChallenge and isAuthoritative methods * add a unit test for nameserver answerOwnChallenge * fix linting errors * bump go and golangci-lint versions in github actions * Update golangci-lint.yml Bumping github-actions workflow versions to accommodate some changes in upstream golanci-lint * Bump Golang version to 1.23 (currently the oldest supported version) Bump golanglint-ci to 2.0.2 and migrate the config file. This should resolve the math/rand/v2 issue * bump golanglint-ci action version * Fixing up new golanglint-ci warnings and errors --------- Co-authored-by: Joona Hoikkala <5235109+joohoi@users.noreply.github.com> * Minor refactoring, error returns and e2e testing suite * Add a few tests * Fix linter and umask setting * Update github actions * Refine concurrency configuration for GitHub actions * HTTP timeouts to API, and self-validation mutex to nameserver ops --------- Co-authored-by: Florian Ritterhoff <32478819+fritterhoff@users.noreply.github.com> Co-authored-by: Jason Playne <jason@jasonplayne.com>
56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/joohoi/acme-dns/pkg/acmedns"
|
|
"github.com/joohoi/acme-dns/pkg/api"
|
|
"github.com/joohoi/acme-dns/pkg/database"
|
|
"github.com/joohoi/acme-dns/pkg/nameserver"
|
|
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func main() {
|
|
setUmask()
|
|
configPtr := flag.String("c", "/etc/acme-dns/config.cfg", "config file location")
|
|
flag.Parse()
|
|
// Read global config
|
|
var err error
|
|
var logger *zap.Logger
|
|
config, usedConfigFile, err := acmedns.ReadConfig(*configPtr, "./config.cfg")
|
|
if err != nil {
|
|
fmt.Printf("Error: %s\n", err)
|
|
os.Exit(1)
|
|
}
|
|
logger, err = acmedns.SetupLogging(config)
|
|
if err != nil {
|
|
fmt.Printf("Could not set up logging: %s\n", err)
|
|
os.Exit(1)
|
|
}
|
|
// Make sure to flush the zap logger buffer before exiting
|
|
defer logger.Sync() //nolint:all
|
|
sugar := logger.Sugar()
|
|
|
|
sugar.Infow("Using config file",
|
|
"file", usedConfigFile)
|
|
sugar.Info("Starting up")
|
|
db, err := database.Init(&config, sugar)
|
|
// Error channel for servers
|
|
errChan := make(chan error, 1)
|
|
api := api.Init(&config, db, sugar, errChan)
|
|
dnsservers := nameserver.InitAndStart(&config, db, sugar, errChan)
|
|
go api.Start(dnsservers)
|
|
if err != nil {
|
|
sugar.Error(err)
|
|
}
|
|
for {
|
|
err = <-errChan
|
|
if err != nil {
|
|
sugar.Fatal(err)
|
|
}
|
|
}
|
|
}
|