[release] v0.9.0-unstable4
This commit is contained in:
parent
2185d2be7c
commit
f2c495baa5
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "cosmos-server",
|
||||
"version": "0.9.0-unstable3",
|
||||
"version": "0.9.0-unstable4",
|
||||
"description": "",
|
||||
"main": "test-server.js",
|
||||
"bugs": {
|
||||
|
@ -67,7 +67,7 @@
|
|||
"build": "sh build.sh",
|
||||
"dev": "npm run build && npm run start",
|
||||
"dockerdevbuild": "sh build.sh && docker build -f dockerfile.local --tag cosmos-dev .",
|
||||
"dockerdevrun": "docker stop cosmos-dev; docker rm cosmos-dev; docker run -d -p 80:80 -p 443:443 -e DOCKER_HOST=tcp://host.docker.internal:2375 -e COSMOS_MONGODB=$MONGODB -e COSMOS_LOG_LEVEL=DEBUG -v /:/mnt/host --restart=unless-stopped -h cosmos-dev --name cosmos-dev cosmos-dev",
|
||||
"dockerdevrun": "docker stop cosmos-dev; docker rm cosmos-dev; docker run -d -p 7200:443 -p 80:80 -p 443:443 -e DOCKER_HOST=tcp://host.docker.internal:2375 -e COSMOS_MONGODB=$MONGODB -e COSMOS_LOG_LEVEL=DEBUG -v /:/mnt/host --restart=unless-stopped -h cosmos-dev --name cosmos-dev cosmos-dev",
|
||||
"dockerdev": "npm run dockerdevbuild && npm run dockerdevrun",
|
||||
"dockerdevclient": "npm run client-build && npm run dockerdevbuild && npm run dockerdevrun",
|
||||
"demo": "vite build --base=/cosmos-ui/ --mode demo",
|
||||
|
|
|
@ -214,6 +214,7 @@ func CreateService(serviceRequest DockerServiceCreateRequest, OnLog func(string)
|
|||
utils.Log("Starting creation of new service...")
|
||||
OnLog("Starting creation of new service...\n")
|
||||
|
||||
needsHTTPRestart := false
|
||||
config := utils.ReadConfigFromFile()
|
||||
configRoutes := config.HTTPConfig.ProxyConfig.Routes
|
||||
|
||||
|
@ -326,6 +327,7 @@ func CreateService(serviceRequest DockerServiceCreateRequest, OnLog func(string)
|
|||
OnLog(fmt.Sprintf("Image %s pulled\n", container.Image))
|
||||
}
|
||||
|
||||
|
||||
// Create containers
|
||||
for serviceName, container := range serviceRequest.Services {
|
||||
utils.Log(fmt.Sprintf("Checking service %s...", serviceName))
|
||||
|
@ -583,6 +585,7 @@ func CreateService(serviceRequest DockerServiceCreateRequest, OnLog func(string)
|
|||
}
|
||||
}
|
||||
if !exists {
|
||||
needsHTTPRestart = true
|
||||
configRoutes = append([]utils.ProxyRouteConfig{(utils.ProxyRouteConfig)(route)}, configRoutes...)
|
||||
} else {
|
||||
utils.Error("CreateService: Rolling back changes because of -- Route already exist", nil)
|
||||
|
@ -707,7 +710,10 @@ func CreateService(serviceRequest DockerServiceCreateRequest, OnLog func(string)
|
|||
// Save the route configs
|
||||
config.HTTPConfig.ProxyConfig.Routes = configRoutes
|
||||
utils.SaveConfigTofile(config)
|
||||
utils.RestartHTTPServer()
|
||||
|
||||
if needsHTTPRestart {
|
||||
utils.RestartHTTPServer()
|
||||
}
|
||||
|
||||
// After all operations
|
||||
utils.Log("CreateService: Operation succeeded. SERVICE STARTED")
|
||||
|
|
|
@ -69,17 +69,18 @@ func CheckPorts() error {
|
|||
|
||||
// Get the ports
|
||||
ports := map[string]struct{}{}
|
||||
finalPorts := []string{}
|
||||
|
||||
for containerPort, hostConfig := range inspect.NetworkSettings.Ports {
|
||||
utils.Debug("Container port: " + containerPort.Port())
|
||||
|
||||
for _, hostPort := range hostConfig {
|
||||
utils.Debug("Host port: " + hostPort.HostPort)
|
||||
ports[hostPort.HostPort] = struct{}{}
|
||||
finalPorts = append(finalPorts, hostPort.HostPort + ":" + containerPort.Port())
|
||||
}
|
||||
}
|
||||
|
||||
finalPorts := []string{}
|
||||
|
||||
hasChanged := false
|
||||
|
||||
utils.Debug("Expected ports: " + strings.Join(expectedPorts, ", "))
|
||||
|
@ -94,21 +95,18 @@ func CheckPorts() error {
|
|||
finalPorts = append(finalPorts, port + ":" + expectedPort)
|
||||
hasChanged = true
|
||||
}
|
||||
} else {
|
||||
finalPorts = append(finalPorts, port + ":" + expectedPort)
|
||||
}
|
||||
}
|
||||
|
||||
if hasChanged {
|
||||
finalPorts = append(finalPorts, config.HTTPConfig.HTTPPort + ":" + config.HTTPConfig.HTTPPort)
|
||||
finalPorts = append(finalPorts, config.HTTPConfig.HTTPSPort + ":" + config.HTTPConfig.HTTPSPort)
|
||||
|
||||
utils.Log("Port mapping changed. Needs update.")
|
||||
utils.Log("New ports: " + strings.Join(finalPorts, ", "))
|
||||
|
||||
UpdatePorts(finalPorts)
|
||||
return nil
|
||||
}
|
||||
|
||||
utils.Log("Port mapping not changed.")
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -121,11 +119,12 @@ func UpdatePorts(finalPorts []string) error {
|
|||
return errors.New("SelUpdatePorts - not using Docker")
|
||||
}
|
||||
|
||||
containerName := os.Getenv("HOSTNAME")
|
||||
utils.Log("SelUpdatePorts - Container name: " + containerName)
|
||||
|
||||
// make sure to remove resiude of old self updater
|
||||
RemoveSelfUpdater()
|
||||
|
||||
containerName := os.Getenv("HOSTNAME")
|
||||
|
||||
version := "latest"
|
||||
|
||||
// if arm
|
||||
|
@ -159,6 +158,8 @@ func UpdatePorts(finalPorts []string) error {
|
|||
},
|
||||
};
|
||||
|
||||
utils.Log("SelUpdatePorts - Creating updater service")
|
||||
|
||||
err := CreateService(service, func (msg string) {})
|
||||
|
||||
if err != nil {
|
||||
|
|
|
@ -39,10 +39,10 @@ func startHTTPServer(router *mux.Router) {
|
|||
DisableGeneralOptionsHandler: true,
|
||||
}
|
||||
|
||||
utils.Log("Listening to HTTP on : 0.0.0.0:" + serverPortHTTP)
|
||||
|
||||
docker.CheckPorts()
|
||||
|
||||
utils.Log("Listening to HTTP on : 0.0.0.0:" + serverPortHTTP)
|
||||
|
||||
errServ = HTTPServer.ListenAndServe()
|
||||
|
||||
if errServ != nil && errServ != http.ErrServerClosed {
|
||||
|
@ -201,11 +201,11 @@ func InitServer() *mux.Router {
|
|||
var tlsCert = HTTPConfig.TLSCert
|
||||
var tlsKey= HTTPConfig.TLSKey
|
||||
|
||||
domains := utils.GetAllHostnames(true, false)
|
||||
domains := utils.GetAllHostnames(true, true)
|
||||
oldDomains := baseMainConfig.HTTPConfig.TLSKeyHostsCached
|
||||
falledBack := false
|
||||
|
||||
NeedsRefresh := baseMainConfig.HTTPConfig.ForceHTTPSCertificateRenewal || (tlsCert == "" || tlsKey == "") || !utils.StringArrayEquals(domains, oldDomains) || !CertificateIsValid(baseMainConfig.HTTPConfig.TLSValidUntil)
|
||||
NeedsRefresh := baseMainConfig.HTTPConfig.ForceHTTPSCertificateRenewal || (tlsCert == "" || tlsKey == "") || !utils.HasAnyNewItem(domains, oldDomains) || !CertificateIsValid(baseMainConfig.HTTPConfig.TLSValidUntil)
|
||||
|
||||
// If we have a certificate, we can fallback to it if necessary
|
||||
CanFallback := tlsCert != "" && tlsKey != "" &&
|
||||
|
@ -414,5 +414,5 @@ func RestartServer() {
|
|||
HTTPServer.Shutdown(context.Background())
|
||||
}()
|
||||
|
||||
utils.Log("HTTP Server stopped. Restarting...")
|
||||
utils.Log("HTTPServer shutdown.")
|
||||
}
|
||||
|
|
|
@ -327,6 +327,11 @@ func LetsEncryptValidOnly(hostnames []string, acceptWildcard bool) []string {
|
|||
|
||||
func GetAllHostnames(applyWildCard bool, removePorts bool) []string {
|
||||
mainHostname := GetMainConfig().HTTPConfig.Hostname
|
||||
|
||||
if removePorts {
|
||||
mainHostname = strings.Split(mainHostname, ":")[0]
|
||||
}
|
||||
|
||||
hostnames := []string{
|
||||
mainHostname,
|
||||
}
|
||||
|
@ -401,6 +406,15 @@ func StringArrayEquals(a []string, b []string) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func HasAnyNewItem(after []string, before []string) bool {
|
||||
for _, value := range after {
|
||||
if !StringArrayContains(before, value) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func StringArrayContains(a []string, b string) bool {
|
||||
for _, value := range a {
|
||||
if value == b {
|
||||
|
|
Loading…
Reference in a new issue