| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package main
- import (
- "flag"
- "log"
- "dhcp-dns-manager/internal/config"
- "dhcp-dns-manager/internal/db"
- "dhcp-dns-manager/internal/dhcp"
- "dhcp-dns-manager/internal/dns"
- "dhcp-dns-manager/internal/web"
- )
- func main() {
- configPath := flag.String("config", "configs/config.json", "Path to configuration file")
- flag.Parse()
- // Load configuration
- cfg, err := config.LoadConfig(*configPath)
- if err != nil {
- log.Fatalf("Failed to load config: %v", err)
- }
- // Initialize database
- database, err := db.InitDB(cfg.Database.Path)
- if err != nil {
- log.Fatalf("Failed to initialize database: %v", err)
- }
- // Initialize DHCP server
- dhcpServer := dhcp.NewServer(&cfg.DHCP, database)
- if err := dhcpServer.Start(); err != nil {
- log.Printf("Warning: DHCP server failed to start: %v", err)
- } else {
- log.Println("DHCP server started")
- }
- // Initialize DNS server
- dnsServer := dns.NewServer(&cfg.DNS, database)
- if err := dnsServer.Start(); err != nil {
- log.Printf("Warning: DNS server failed to start: %v", err)
- } else {
- log.Println("DNS server started")
- }
- // Initialize Config Manager
- configManager, err := web.NewConfigManager(*configPath)
- if err != nil {
- log.Fatalf("Failed to initialize config manager: %v", err)
- }
- // Initialize Web server
- webServer := web.NewServer(&cfg.Web, database, dhcpServer, dnsServer, configManager)
- log.Printf("Starting web interface on %s:%d", cfg.Web.Host, cfg.Web.Port)
- if err := webServer.Start(); err != nil {
- log.Fatalf("Web server failed to start: %v", err)
- }
- }
|