move all envs to types.

This commit is contained in:
Miroslav Šedivý
2023-01-13 18:47:21 +01:00
parent 1d77b1ef87
commit 4a53222031
2 changed files with 33 additions and 22 deletions
+6 -21
View File
@@ -250,26 +250,11 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro
// Set environment variables
//
env := []string{
fmt.Sprintf("NEKO_BIND=:%d", frontendPort),
"NEKO_ICELITE=true",
}
if manager.config.Mux {
env = append(env,
fmt.Sprintf("NEKO_UDPMUX=%d", epr.Min),
fmt.Sprintf("NEKO_TCPMUX=%d", epr.Min),
)
} else {
env = append(env,
fmt.Sprintf("NEKO_EPR=%d-%d", epr.Min, epr.Max),
)
}
// optional nat mapping
if len(manager.config.NAT1To1IPs) > 0 {
env = append(env, fmt.Sprintf("NEKO_NAT1TO1=%s", strings.Join(manager.config.NAT1To1IPs, ",")))
}
env := settings.ToEnv(manager.config, types.PortSettings{
FrontendPort: frontendPort,
EprMin: epr.Min,
EprMax: epr.Max,
})
//
// Set browser policies
@@ -429,7 +414,7 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro
// List of exposed ports
ExposedPorts: exposedPorts,
// List of environment variable to set in the container
Env: append(env, settings.ToEnv()...),
Env: env,
// Name of the image as it was passed by the operator (e.g. could be symbolic)
Image: settings.NekoImage,
// List of labels set to this container
+27 -1
View File
@@ -6,6 +6,7 @@ import (
"strings"
"time"
"github.com/m1k1o/neko-rooms/internal/config"
"github.com/m1k1o/neko-rooms/internal/utils"
)
@@ -97,14 +98,39 @@ type RoomSettings struct {
BrowserPolicy *BrowserPolicy `json:"browser_policy,omitempty"`
}
func (settings *RoomSettings) ToEnv() []string {
type PortSettings struct {
FrontendPort uint16
EprMin, EprMax uint16
}
func (settings *RoomSettings) ToEnv(config *config.Room, ports PortSettings) []string {
env := []string{
fmt.Sprintf("NEKO_BIND=:%d", ports.FrontendPort),
"NEKO_ICELITE=true",
// from settings
fmt.Sprintf("NEKO_PASSWORD=%s", settings.UserPass),
fmt.Sprintf("NEKO_PASSWORD_ADMIN=%s", settings.AdminPass),
fmt.Sprintf("NEKO_SCREEN=%s", settings.Screen),
fmt.Sprintf("NEKO_MAX_FPS=%d", settings.VideoMaxFPS),
}
if config.Mux {
env = append(env,
fmt.Sprintf("NEKO_UDPMUX=%d", ports.EprMin),
fmt.Sprintf("NEKO_TCPMUX=%d", ports.EprMin),
)
} else {
env = append(env,
fmt.Sprintf("NEKO_EPR=%d-%d", ports.EprMin, ports.EprMax),
)
}
// optional nat mapping
if len(config.NAT1To1IPs) > 0 {
env = append(env, fmt.Sprintf("NEKO_NAT1TO1=%s", strings.Join(config.NAT1To1IPs, ",")))
}
if settings.ControlProtection {
env = append(env, "NEKO_CONTROL_PROTECTION=true")
}