Documentation
¶
Overview ¶
Package daemoncmd contains the entrypoint for webmesh nodes running as an application daemon.
Index ¶
- Variables
- func DefaultDaemonSocket() string
- func Run(ctx context.Context, conf Config) error
- type AppDaemon
- func (app *AppDaemon) Close() error
- func (app *AppDaemon) Connect(ctx context.Context, req *v1.ConnectRequest) (*v1.ConnectResponse, error)
- func (app *AppDaemon) Disconnect(ctx context.Context, req *v1.DisconnectRequest) (*v1.DisconnectResponse, error)
- func (app *AppDaemon) Metrics(ctx context.Context, req *v1.MetricsRequest) (*v1.MetricsResponse, error)
- func (app *AppDaemon) Query(ctx context.Context, req *v1.AppQueryRequest) (*v1.QueryResponse, error)
- func (app *AppDaemon) Status(ctx context.Context, req *v1.StatusRequest) (*v1.StatusResponse, error)
- type Config
- type Persistence
- type WebUI
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrNotConnected is returned when the node is not connected to the mesh. ErrNotConnected = status.Errorf(codes.FailedPrecondition, "not connected to the specified network") // ErrAlreadyConnected is returned when the node is already connected to the mesh. ErrAlreadyConnected = status.Errorf(codes.FailedPrecondition, "already connected to the specified network") )
Functions ¶
func DefaultDaemonSocket ¶
func DefaultDaemonSocket() string
DefaultDaemonSocket returns the default daemon socket path.
Types ¶
type AppDaemon ¶
type AppDaemon struct {
v1.UnimplementedAppDaemonServer
// contains filtered or unexported fields
}
AppDaemon is the app daemon RPC server.
func (*AppDaemon) Connect ¶
func (app *AppDaemon) Connect(ctx context.Context, req *v1.ConnectRequest) (*v1.ConnectResponse, error)
func (*AppDaemon) Disconnect ¶
func (app *AppDaemon) Disconnect(ctx context.Context, req *v1.DisconnectRequest) (*v1.DisconnectResponse, error)
func (*AppDaemon) Metrics ¶
func (app *AppDaemon) Metrics(ctx context.Context, req *v1.MetricsRequest) (*v1.MetricsResponse, error)
func (*AppDaemon) Query ¶
func (app *AppDaemon) Query(ctx context.Context, req *v1.AppQueryRequest) (*v1.QueryResponse, error)
func (*AppDaemon) Status ¶
func (app *AppDaemon) Status(ctx context.Context, req *v1.StatusRequest) (*v1.StatusResponse, error)
type Config ¶
type Config struct {
// Enabled is true if the daemon is enabled.
Enabled bool `koanf:"enabled"`
// NodeID is the ID to use for mesh connections from this server.
// If not provided, one will be generated from the key.
NodeID string `koanf:"node-id"`
// KeyFile is the path to the WireGuard private key for the node.
// If set and it does not exist it will be created, otherwise one
// will be generated.
KeyFile string `koanf:"key-file,omitempty"`
// Bind is the bind address for the daemon.
Bind string `koanf:"bind"`
// InsecureSocket uses an insecure socket when binding to a unix socket.
InsecureSocket bool `koanf:"insecure-socket"`
// GRPCWeb enables gRPC-Web support.
GRPCWeb bool `koanf:"grpc-web"`
// UI are options for exposing a gRPC UI.
UI WebUI `koanf:"ui"`
// Persistence are options for persisting mesh data.
Persistence Persistence `koanf:"persistence"`
// LogLevel is the log level for the daemon.
LogLevel string `koanf:"log-level"`
// LogFormat is the log format for the daemon.
LogFormat string `koanf:"log-format"`
}
Config is the configuration for the applicaton daeemon.
func NewDefaultConfig ¶
func NewDefaultConfig() *Config
NewDefaultConfig returns the default configuration.
func (*Config) LoadKey ¶
func (conf *Config) LoadKey() (crypto.PrivateKey, error)
LoadKey loads the wireguard key from the configuration.
type Persistence ¶ added in v0.15.4
type Persistence struct {
// Path is the root path to store mesh connection data.
// Each connection will receive its own subdirectory.
Path string `koanf:"path"`
}
Persistence is configuration for persistence of mesh connection storage.
Click to show internal directories.
Click to hide internal directories.