server

package
v0.67.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 2, 2026 License: BSD-3-Clause, AGPL-3.0 Imports: 72 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ManagementLegacyPort is the port that was used before by the Management gRPC server.
	// It is used for backward compatibility now.
	ManagementLegacyPort = 33073
	// DefaultSelfHostedDomain is the default domain used for self-hosted fresh installs.
	DefaultSelfHostedDomain = "netbird.selfhosted"
)

Variables

This section is empty.

Functions

func Create

func Create[T any](s Server, createFunc func() T) T

Create a dependency and add it to the BaseServer's container. A string key identifier will be based on its type definition.

func CreateNamed

func CreateNamed[T any](s Server, name string, createFunc func() T) T

CreateNamed is the same as Create but will suffix the dependency string key identifier with a custom name. Useful if you want to have multiple named instances of the same object type.

func Inject

func Inject[T any](c Server, thing T)

Inject lets you override a specific service from outside the BaseServer itself. This is useful for tests

func InjectNamed

func InjectNamed[T any](c Server, name string, thing T)

InjectNamed is like Inject() but with a custom name.

Types

type BaseServer

type BaseServer struct {
	// Config holds the server configuration
	Config *nbconfig.Config
	// contains filtered or unexported fields
}

BaseServer holds the HTTP server instance. Add any additional fields you need, such as database connections, Config, etc.

func NewServer

func NewServer(cfg *Config) *BaseServer

NewServer initializes and configures a new Server instance

func (*BaseServer) APIHandler

func (s *BaseServer) APIHandler() http.Handler

func (*BaseServer) AccessLogsManager added in v0.65.0

func (s *BaseServer) AccessLogsManager() accesslogs.Manager

func (*BaseServer) AccountManager

func (s *BaseServer) AccountManager() account.Manager

func (*BaseServer) AccountRequestBuffer added in v0.59.13

func (s *BaseServer) AccountRequestBuffer() *server.AccountRequestBuffer

func (*BaseServer) AfterInit

func (s *BaseServer) AfterInit(fn func(s *BaseServer))

func (*BaseServer) AuthManager

func (s *BaseServer) AuthManager() auth.Manager

func (*BaseServer) DNSDomain added in v0.60.5

func (s *BaseServer) DNSDomain() string

func (*BaseServer) EphemeralManager

func (s *BaseServer) EphemeralManager() ephemeral.Manager

func (*BaseServer) Errors

func (s *BaseServer) Errors() <-chan error

Done returns a channel that is closed when the server stops

func (*BaseServer) EventStore

func (s *BaseServer) EventStore() activity.Store

func (*BaseServer) GRPCServer

func (s *BaseServer) GRPCServer() *grpc.Server

func (*BaseServer) GeoLocationManager

func (s *BaseServer) GeoLocationManager() geolocation.Geolocation

func (*BaseServer) GetContainer

func (s *BaseServer) GetContainer(key string) (any, bool)

GetContainer retrieves a dependency from the BaseServer's container by its key

func (*BaseServer) GroupsManager

func (s *BaseServer) GroupsManager() groups.Manager

func (*BaseServer) IdpManager

func (s *BaseServer) IdpManager() idp.Manager

func (*BaseServer) IntegratedValidator

func (s *BaseServer) IntegratedValidator() integrated_validator.IntegratedValidator

func (*BaseServer) JobManager added in v0.64.0

func (s *BaseServer) JobManager() *job.Manager

func (*BaseServer) Metrics

func (s *BaseServer) Metrics() telemetry.AppMetrics

func (*BaseServer) NetworkMapController added in v0.59.13

func (s *BaseServer) NetworkMapController() network_map.Controller

func (*BaseServer) NetworksManager

func (s *BaseServer) NetworksManager() networks.Manager

func (*BaseServer) OAuthConfigProvider added in v0.62.0

func (s *BaseServer) OAuthConfigProvider() idp.OAuthConfigProvider

OAuthConfigProvider is only relevant when we have an embedded IdP service. Otherwise must be nil

func (*BaseServer) PKCEVerifierStore added in v0.66.3

func (s *BaseServer) PKCEVerifierStore() *nbgrpc.PKCEVerifierStore

func (*BaseServer) PeersManager

func (s *BaseServer) PeersManager() peers.Manager

func (*BaseServer) PeersUpdateManager

func (s *BaseServer) PeersUpdateManager() network_map.PeersUpdateManager

func (*BaseServer) PermissionsManager

func (s *BaseServer) PermissionsManager() permissions.Manager

func (*BaseServer) ProxyController

func (s *BaseServer) ProxyController() port_forwarding.Controller

func (*BaseServer) ProxyManager added in v0.66.2

func (s *BaseServer) ProxyManager() proxy.Manager

func (*BaseServer) ProxyTokenStore added in v0.65.0

func (s *BaseServer) ProxyTokenStore() *nbgrpc.OneTimeTokenStore

func (*BaseServer) RecordsManager added in v0.63.0

func (s *BaseServer) RecordsManager() records.Manager

func (*BaseServer) ResourcesManager

func (s *BaseServer) ResourcesManager() resources.Manager

func (*BaseServer) ReverseProxyDomainManager added in v0.65.0

func (s *BaseServer) ReverseProxyDomainManager() *manager.Manager

func (*BaseServer) ReverseProxyGRPCServer added in v0.65.0

func (s *BaseServer) ReverseProxyGRPCServer() *nbgrpc.ProxyServiceServer

func (*BaseServer) RoutesManager

func (s *BaseServer) RoutesManager() routers.Manager

func (*BaseServer) SecretsManager

func (s *BaseServer) SecretsManager() grpc.SecretsManager

func (*BaseServer) ServiceManager added in v0.66.2

func (s *BaseServer) ServiceManager() service.Manager

func (*BaseServer) ServiceProxyController added in v0.66.2

func (s *BaseServer) ServiceProxyController() proxy.Controller

func (*BaseServer) SetContainer

func (s *BaseServer) SetContainer(key string, container any)

SetContainer stores a dependency in the BaseServer's container with the specified key

func (*BaseServer) SetHandlerFunc added in v0.65.0

func (s *BaseServer) SetHandlerFunc(handler http.Handler)

SetHandlerFunc allows overriding the default HTTP handler function. This is useful for multiplexing additional services on the same port.

func (*BaseServer) SettingsManager

func (s *BaseServer) SettingsManager() settings.Manager

func (*BaseServer) Start

func (s *BaseServer) Start(ctx context.Context) error

Start begins listening for HTTP requests on the configured address

func (*BaseServer) Stop

func (s *BaseServer) Stop() error

Stop attempts a graceful shutdown, waiting up to 5 seconds for active connections to finish

func (*BaseServer) Store

func (s *BaseServer) Store() store.Store

func (*BaseServer) UsersManager

func (s *BaseServer) UsersManager() users.Manager

func (*BaseServer) ZonesManager added in v0.63.0

func (s *BaseServer) ZonesManager() zones.Manager

type Config added in v0.65.2

type Config struct {
	NbConfig                    *nbconfig.Config
	DNSDomain                   string
	MgmtSingleAccModeDomain     string
	MgmtPort                    int
	MgmtMetricsPort             int
	DisableLegacyManagementPort bool
	DisableMetrics              bool
	DisableGeoliteUpdate        bool
	UserDeleteFromIDPEnabled    bool
	AutoResolveDomains          bool
}

Config holds the configuration parameters for creating a new server

type Server

type Server interface {
	Start(ctx context.Context) error
	Stop() error
	Errors() <-chan error
	GetContainer(key string) (any, bool)
	SetContainer(key string, container any)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL