fixed some stuff

This commit is contained in:
ACoolName 2025-03-19 20:54:23 +02:00
parent 32d64f3637
commit 5f01b6b27c
5 changed files with 29 additions and 9 deletions

View File

@ -18,6 +18,10 @@ authentication:
client_secret: "" client_secret: ""
user_pass: user_pass:
type: "mongo" type: "mongo"
initial_user:
username: ""
password: ""
email: ""
mongo: mongo:
url: "mongodb://mongo:27107" url: "mongodb://mongo:27107"
username: "" username: ""
@ -45,6 +49,10 @@ instancemanager:
tag: "latest" tag: "latest"
command: "" command: ""
network: "exposed" network: "exposed"
reverse_proxy:
middlewares:
- games@docker
entrypoint: "web"
users: users:
default_max_owned_servers: 10 default_max_owned_servers: 10

View File

@ -6,6 +6,7 @@ import (
"fmt" "fmt"
"maps" "maps"
"net" "net"
"strings"
instancemanager "git.acooldomain.co/server-manager/backend/instancemanager" instancemanager "git.acooldomain.co/server-manager/backend/instancemanager"
"git.acooldomain.co/server-manager/backend/models" "git.acooldomain.co/server-manager/backend/models"
@ -496,11 +497,13 @@ func (self *InstanceManager) StartFileBrowser(ctx context.Context, serverId stri
browserLabels := make(map[string]string) browserLabels := make(map[string]string)
browserLabels["traefik.enable"] = "true" browserLabels["traefik.enable"] = "true"
browserLabels[fmt.Sprintf("traefik.http.routers.%s.rule", labelId)] = fmt.Sprintf("Host(`%s.browsers.%s`)", labelId, self.config.BrowsersDomain) browserLabels[fmt.Sprintf("traefik.http.routers.%s.rule", labelId)] = fmt.Sprintf("Host(`%s.browsers.%s`)", labelId, self.config.BrowsersDomain)
browserLabels[fmt.Sprintf("traefik.http.routers.%s.entrypoints", labelId)] = "websecure" browserLabels[fmt.Sprintf("traefik.http.routers.%s.entrypoints", labelId)] = self.config.FileBrowser.ReverseProxy.Entrypoint
browserLabels[fmt.Sprintf("traefik.http.routers.%s.middlewares", labelId)] = "games@docker" browserLabels[fmt.Sprintf("traefik.http.routers.%s.middlewares", labelId)] = strings.Join(self.config.FileBrowser.ReverseProxy.Middlewares, ",")
browserLabels[fmt.Sprintf("traefik.http.routers.%s.tls.domains[0].main", labelId)] = fmt.Sprintf("%s.%s", "browsers", self.config.BrowsersDomain) if self.config.FileBrowser.ReverseProxy.Tls {
browserLabels[fmt.Sprintf("traefik.http.routers.%s.tls.domains[0].sans", labelId)] = fmt.Sprintf("*.%s.%s", "browsers", self.config.BrowsersDomain) browserLabels[fmt.Sprintf("traefik.http.routers.%s.tls.domains[0].main", labelId)] = self.config.BrowsersDomain
browserLabels[fmt.Sprintf("traefik.http.routers.%s.tls.certresolver", labelId)] = "myresolver" browserLabels[fmt.Sprintf("traefik.http.routers.%s.tls.domains[0].sans", labelId)] = fmt.Sprintf("*.%s", self.config.BrowsersDomain)
browserLabels[fmt.Sprintf("traefik.http.routers.%s.tls.certresolver", labelId)] = self.config.FileBrowser.ReverseProxy.TlsResolver
}
containerConfig, err := convertLabelsToMap(ContainerLabels{VolumeId: serverId, Type: FileBrowser}) containerConfig, err := convertLabelsToMap(ContainerLabels{VolumeId: serverId, Type: FileBrowser})
if err != nil { if err != nil {

View File

@ -50,10 +50,18 @@ type AuthenticationConfig struct {
UserPass UserPassAuthConfig `yaml:"user_pass"` UserPass UserPassAuthConfig `yaml:"user_pass"`
} }
type DockerReverseProxyConfig struct {
Middlewares []string `yaml:"middlewares"`
Entrypoint string `yaml:"entrypoint"`
Tls bool `yaml:"tls"`
TlsResolver string `yaml:"tls_resolver"`
}
type FileBrowserConfig struct { type FileBrowserConfig struct {
Image Image `yaml:"image"` Image Image `yaml:"image"`
Command string `yaml:"command"` Command string `yaml:"command"`
Network string `yaml:"network"` Network string `yaml:"network"`
ReverseProxy DockerReverseProxyConfig `yaml:"reverse_proxy"`
} }
type DockerInstanceManagerConfig struct { type DockerInstanceManagerConfig struct {

View File

@ -51,6 +51,6 @@ func LoadBrowsersGroup(group *gin.RouterGroup, config models.GlobalConfig) {
InstanceManager: instanceManager, InstanceManager: instanceManager,
} }
group.GET("", auth.AuthorizedTo(0), auth.AuthorizationEnforcer(), connection.GetBrowsers) group.GET("", connection.GetBrowsers)
group.POST("/:server_id/stop", auth.AuthorizedTo(models.Browse), connection.ServerAuthorized(models.Browse), auth.AuthorizationEnforcer(), connection.StopBrowser) group.POST("/:server_id/stop", auth.AuthorizedTo(models.Browse), connection.ServerAuthorized(models.Browse), auth.AuthorizationEnforcer(), connection.StopBrowser)
} }

View File

@ -455,6 +455,7 @@ func (con ServersApi) BrowseServer(ctx *gin.Context) {
if err != nil { if err != nil {
ctx.AbortWithError(500, err) ctx.AbortWithError(500, err)
return
} }
ctx.JSON(200, browserInfo.Url) ctx.JSON(200, browserInfo.Url)