diff --git a/internal/config/room.go b/internal/config/room.go index f07b415..ed12fb8 100644 --- a/internal/config/room.go +++ b/internal/config/room.go @@ -17,6 +17,7 @@ type Room struct { NAT1To1IPs []string NekoImages []string + PathPrefix string StorageEnabled bool StorageInternal string @@ -24,9 +25,8 @@ type Room struct { MountsWhitelist []string - InstanceName string - InstanceUrl string - InstancePathPrefix string + InstanceName string + InstanceUrl string TraefikDomain string TraefikEntrypoint string @@ -62,6 +62,11 @@ func (Room) Init(cmd *cobra.Command) error { return err } + cmd.PersistentFlags().String("path_prefix", "", "path prefix that is added to every room path") + if err := viper.BindPFlag("path_prefix", cmd.PersistentFlags().Lookup("path_prefix")); err != nil { + return err + } + // Data cmd.PersistentFlags().Bool("storage.enabled", true, "whether storage is enabled, where peristent containers data will be stored") @@ -96,11 +101,6 @@ func (Room) Init(cmd *cobra.Command) error { return err } - cmd.PersistentFlags().String("instance.path_prefix", "", "path prefix that is added to a room path") - if err := viper.BindPFlag("instance.path_prefix", cmd.PersistentFlags().Lookup("instance.path_prefix")); err != nil { - return err - } - // Traefik cmd.PersistentFlags().String("traefik.domain", "", "traefik: domain on which will be container hosted (if empty or '*', match all; for neko-rooms as subdomain use '*.domain.tld')") @@ -158,6 +158,7 @@ func (s *Room) Set() { s.NAT1To1IPs = viper.GetStringSlice("nat1to1") s.NekoImages = viper.GetStringSlice("neko_images") + s.PathPrefix = viper.GetString("path_prefix") s.StorageEnabled = viper.GetBool("storage.enabled") s.StorageInternal = viper.GetString("storage.internal") @@ -190,7 +191,6 @@ func (s *Room) Set() { } s.InstanceUrl = viper.GetString("instance.url") - s.InstancePathPrefix = viper.GetString("instance.path_prefix") s.TraefikDomain = viper.GetString("traefik.domain") s.TraefikEntrypoint = viper.GetString("traefik.entrypoint") diff --git a/internal/room/manager.go b/internal/room/manager.go index 2eb4735..9fdf73d 100644 --- a/internal/room/manager.go +++ b/internal/room/manager.go @@ -149,7 +149,7 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro // containerName := manager.config.InstanceName + "-" + roomName - pathPrefix := path.Join("/", manager.config.InstancePathPrefix, roomName) + pathPrefix := path.Join("/", manager.config.PathPrefix, roomName) // create traefik rule traefikRule := "PathPrefix(`" + pathPrefix + "`)" diff --git a/neko.go b/neko.go index 51f1e75..cb18a0a 100644 --- a/neko.go +++ b/neko.go @@ -128,7 +128,7 @@ func (main *MainCtx) Start() { main.httpManager = http.New( main.apiManager, - main.Configs.Room.InstancePathPrefix, + main.Configs.Room.PathPrefix, main.Configs.Server, ) main.httpManager.Start()