Files
vServer/Backend/admin/go/services/services.go
Falknat 02ae56b78c Большое обновление GUI интерфейс
Большое обновление GUI интерфейс

- Добавлен фраемворr Walles
- Удалена консольная версия
- Проработан интерфейс и дизайн
- Добавлено кеширование для быстрой реакции.
- Сделан .ps1 сборщик для удобной сборки проекта.
- Обновлён Readme
2025-11-14 08:40:25 +07:00

93 lines
2.2 KiB
Go

package services
import (
"fmt"
webserver "vServer/Backend/WebServer"
config "vServer/Backend/config"
)
func GetAllServicesStatus() AllServicesStatus {
return AllServicesStatus{
HTTP: getHTTPStatus(),
HTTPS: getHTTPSStatus(),
MySQL: getMySQLStatus(),
PHP: getPHPStatus(),
Proxy: getProxyStatus(),
}
}
func getHTTPStatus() ServiceStatus {
// Используем внутренний статус вместо TCP проверки
return ServiceStatus{
Name: "HTTP",
Status: webserver.GetHTTPStatus(),
Port: "80",
Info: "",
}
}
func getHTTPSStatus() ServiceStatus {
// Используем внутренний статус вместо TCP проверки
return ServiceStatus{
Name: "HTTPS",
Status: webserver.GetHTTPSStatus(),
Port: "443",
Info: "",
}
}
func getMySQLStatus() ServiceStatus {
port := fmt.Sprintf("%d", config.ConfigData.Soft_Settings.Mysql_port)
// Используем внутренний статус вместо TCP проверки
// чтобы не вызывать connect_errors в MySQL
return ServiceStatus{
Name: "MySQL",
Status: webserver.GetMySQLStatus(),
Port: port,
Info: "",
}
}
func getPHPStatus() ServiceStatus {
basePort := config.ConfigData.Soft_Settings.Php_port
// Диапазон портов для 4 воркеров
portRange := fmt.Sprintf("%d-%d", basePort, basePort+3)
// Используем внутренний статус вместо TCP проверки
return ServiceStatus{
Name: "PHP",
Status: webserver.GetPHPStatus(),
Port: portRange,
Info: "",
}
}
func getProxyStatus() ServiceStatus {
activeCount := 0
totalCount := len(config.ConfigData.Proxy_Service)
for _, proxy := range config.ConfigData.Proxy_Service {
if proxy.Enable {
activeCount++
}
}
info := fmt.Sprintf("%d из %d", activeCount, totalCount)
// Проверяем глобальный флаг и статус HTTP/HTTPS
proxyEnabled := config.ConfigData.Soft_Settings.Proxy_enabled
httpRunning := webserver.GetHTTPStatus()
httpsRunning := webserver.GetHTTPSStatus()
status := proxyEnabled && (httpRunning || httpsRunning)
return ServiceStatus{
Name: "Proxy",
Status: status,
Port: "-",
Info: info,
}
}