From 8964763b9f22df70ba16e289d661c1d85206d35d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20=D0=A1?= =?UTF-8?q?=D0=B0=D1=84=D1=80=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Mon, 21 Sep 2026 21:06:21 +0000 Subject: [PATCH] Update cmd/futriis/main.go --- cmd/futriis/main.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/cmd/futriis/main.go b/cmd/futriis/main.go index db73d22..18cb306 100644 --- a/cmd/futriis/main.go +++ b/cmd/futriis/main.go @@ -21,10 +21,10 @@ * - Проверка allow-list для плагинов перед StartPlugin * - Заменён SIGHUP на SIGUSR1 (reload) + SIGTERM/SIGINT (shutdown) * - Проверка nil для raftCoordinator перед использованием - * - * ДОПОЛНИТЕЛЬНО ИСПРАВЛЕНО: * - repl.NewRepl теперь возвращает (*Repl, error) * - Интеграция с Prometheus: /metrics endpoint + * - ДОБАВЛЕНО: поддержка TLS на HTTP API (вариант A — TLS внутри futriiX). + * Теперь используется api.NewHTTPServerWithTLS(..., &cfg.Security). */ package main @@ -233,8 +233,10 @@ func main() { } // ========== HTTP API SERVER ========== + // ДОБАВЛЕНО: используем NewHTTPServerWithTLS и передаём cfg.Security. + // Если в config.toml [security].enable_tls = true, сервер поднимется по HTTPS. httpPort := cfg.API.Port - httpServer := api.NewHTTPServer(httpPort, store, raftCoordinator, aclManager, logger) + httpServer := api.NewHTTPServerWithTLS(httpPort, store, raftCoordinator, aclManager, logger, &cfg.Security) if metricsCollector != nil { httpServer.SetMetricsCollector(metricsCollector) } @@ -264,9 +266,13 @@ func main() { if !httpStarted { logger.Warn("HTTP server did not start within timeout, continuing anyway") } - logger.Info(fmt.Sprintf("HTTP API server started on port %d", httpPort)) + scheme := "http" + if httpServer.IsTLSEnabled() { + scheme = "https" + } + logger.Info(fmt.Sprintf("HTTP API server started on %s://0.0.0.0:%d", scheme, httpPort)) if metricsCollector != nil { - logger.Info(fmt.Sprintf("Prometheus metrics available at http://localhost:%d/metrics", httpPort)) + logger.Info(fmt.Sprintf("Prometheus metrics available at %s://localhost:%d/metrics", scheme, httpPort)) } if raftCoordinator != nil { @@ -629,4 +635,4 @@ func printJSON(data interface{}) { return } fmt.Println(string(jsonData)) -} +} \ No newline at end of file