Quellcode durchsuchen

fix: 添加 .coze 配置文件并支持 DEPLOY_RUN_PORT 环境变量动态端口

Coze-Commit-Type: user
Coze-User-ID: 256649704250362
Coze-Conversation-ID: 11640025
steven_roc vor 2 Monaten
Ursprung
Commit
f09f650a43
3 geänderte Dateien mit 29 neuen und 3 gelöschten Zeilen
  1. 10 0
      .coze
  2. BIN
      mppt_monitor/build/mppt_monitor
  3. 19 3
      mppt_monitor/src/web_server.c

+ 10 - 0
.coze

@@ -0,0 +1,10 @@
+[project]
+requires = ["nodejs-24"]
+
+[dev]
+build = ["bash", "-c", "cd mppt_monitor && make"]
+run = ["bash", "-c", "cd mppt_monitor && ./build/mppt_monitor"]
+
+[deploy]
+build = ["bash", "-c", "cd mppt_monitor && make clean && make"]
+run = ["bash", "-c", "cd mppt_monitor && ./build/mppt_monitor"]

BIN
mppt_monitor/build/mppt_monitor


+ 19 - 3
mppt_monitor/src/web_server.c

@@ -341,14 +341,30 @@ void web_event_handler(struct mg_connection *c, int ev, void *ev_data)
 struct mg_connection *web_server_start(struct mg_mgr *mgr, web_ctx_t *ctx)
 {
     struct mg_connection *c;
+    char listen_url[128];
 
-    c = mg_http_listen(mgr, WEB_SERVER_LISTEN_URL, web_event_handler, ctx);
+    /*
+     * Read port from DEPLOY_RUN_PORT environment variable (sandbox compat).
+     * Falls back to WEB_SERVER_PORT (8085) if not set.
+     */
+    const char *env_port = getenv("DEPLOY_RUN_PORT");
+    int port = WEB_SERVER_PORT;
+    if (env_port != NULL && env_port[0] != '\0') {
+        int parsed = atoi(env_port);
+        if (parsed > 0 && parsed < 65536) {
+            port = parsed;
+        }
+    }
+
+    snprintf(listen_url, sizeof(listen_url), "http://0.0.0.0:%d", port);
+
+    c = mg_http_listen(mgr, listen_url, web_event_handler, ctx);
     if (c == NULL) {
         fprintf(stderr, "[WEB] Failed to start HTTP listener on %s\n",
-                WEB_SERVER_LISTEN_URL);
+                listen_url);
         return NULL;
     }
 
-    printf("[WEB] HTTP server listening on %s\n", WEB_SERVER_LISTEN_URL);
+    printf("[WEB] HTTP server listening on %s\n", listen_url);
     return c;
 }