nfsense/internal/config/default.go

56 lines
1.5 KiB
Go

package config
import (
"fmt"
"nfsense.net/nfsense/internal/definitions/config"
"nfsense.net/nfsense/internal/definitions/firewall"
"nfsense.net/nfsense/internal/definitions/network"
"nfsense.net/nfsense/internal/definitions/object"
"nfsense.net/nfsense/internal/definitions/service"
"nfsense.net/nfsense/internal/definitions/system"
"nfsense.net/nfsense/internal/definitions/vpn"
)
func (m *ConfigManager) LoadDefaultConfig() error {
conf := config.Config{
ConfigVersion: 1,
Firewall: firewall.Firewall{
ForwardRules: []firewall.ForwardRule{},
DestinationNATRules: []firewall.DestinationNATRule{},
SourceNATRules: []firewall.SourceNATRule{},
},
Object: object.Object{
Addresses: map[string]object.Address{},
Services: map[string]object.Service{},
},
Network: network.Network{
Interfaces: map[string]network.Interface{},
StaticRoutes: []network.StaticRoute{},
},
Service: service.Service{
DHCPv4Servers: []service.DHCPv4Server{},
DHCPv6Servers: []service.DHCPv6Server{},
DNSServers: []service.DNSServer{},
NTPServers: []service.NTPServer{},
},
VPN: vpn.VPN{
Wireguard: vpn.Wireguard{
Interfaces: map[string]vpn.WireguardInterface{},
Peers: map[string]vpn.WireguardPeer{},
},
},
System: system.System{
Users: map[string]system.User{},
},
}
err := config.ValidateConfig(&conf)
if err != nil {
return fmt.Errorf("validating Config: %w", err)
}
m.currentConfig = &conf
m.pendingConfig = &conf
return nil
}