mirror of
https://github.com/speatzle/nfsense.git
synced 2025-05-10 18:38:22 +00:00
56 lines
1.5 KiB
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
|
|
}
|