From 47ca55adbbd8466912e427a1ac3b30fa24c22893 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 12 Jun 2026 19:05:14 +0000 Subject: [PATCH] =?UTF-8?q?fix(agent):=20g=C3=A8re=20registered=20silencie?= =?UTF-8?q?usement=20+=20nettoie=20logs=20heartbeat;=20feat(seed):=20Maria?= =?UTF-8?q?DB=20pour=20WordPress/PrestaShop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent/websocket.go | 7 +++- server/prisma/seed.ts | 98 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 98 insertions(+), 7 deletions(-) diff --git a/agent/websocket.go b/agent/websocket.go index 05e5eda..629b2fd 100644 --- a/agent/websocket.go +++ b/agent/websocket.go @@ -33,7 +33,9 @@ func sendMessage(msg WSMessage) error { if mainConn == nil { return fmt.Errorf("not connected to server") } - log.Printf("sendMessage: sending %+v", msg) + if msg.Action != "heartbeat" { + log.Printf("sendMessage: sending %+v", msg) + } return mainConn.WriteJSON(msg) } @@ -164,6 +166,9 @@ func handleMessage(conn *websocket.Conn, msg WSMessage, dataDir, nodeID string) "action": "activated", "studentName": msg.StudentName, }) + case "registered": + // Server acknowledged our register message; nothing to do. + return case "activation_failed": log.Printf("handleMessage: activation_failed received, error=%s", msg.Error) notifyUI(map[string]interface{}{ diff --git a/server/prisma/seed.ts b/server/prisma/seed.ts index 0e676dc..0e9d21d 100644 --- a/server/prisma/seed.ts +++ b/server/prisma/seed.ts @@ -20,26 +20,112 @@ async function main() { }); const templates = [ - { name: "WordPress latest vierge", type: "wordpress", dockerImage: "wordpress:latest" }, - { name: "WordPress 6.7 vierge", type: "wordpress", dockerImage: "wordpress:6.7" }, - { name: "WordPress 6.4 vierge", type: "wordpress", dockerImage: "wordpress:6.4" }, - { name: "PrestaShop latest vierge", type: "prestashop", dockerImage: "prestashop/prestashop:latest" }, - { name: "PrestaShop 8.1 vierge", type: "prestashop", dockerImage: "prestashop/prestashop:8.1" }, + { + name: "WordPress latest vierge", + type: "wordpress", + dockerImage: "wordpress:latest", + dbImage: "mariadb:10.11", + dbName: "wordpress", + dbUser: "wordpress", + dbPassword: "wordpress", + dbRootPassword: "rootpassword", + }, + { + name: "WordPress 6.7 vierge", + type: "wordpress", + dockerImage: "wordpress:6.7", + dbImage: "mariadb:10.11", + dbName: "wordpress", + dbUser: "wordpress", + dbPassword: "wordpress", + dbRootPassword: "rootpassword", + }, + { + name: "WordPress 6.4 vierge", + type: "wordpress", + dockerImage: "wordpress:6.4", + dbImage: "mariadb:10.11", + dbName: "wordpress", + dbUser: "wordpress", + dbPassword: "wordpress", + dbRootPassword: "rootpassword", + }, + { + name: "PrestaShop latest vierge", + type: "prestashop", + dockerImage: "prestashop/prestashop:latest", + dbImage: "mariadb:10.11", + dbName: "prestashop", + dbUser: "prestashop", + dbPassword: "prestashop", + dbRootPassword: "rootpassword", + }, + { + name: "PrestaShop 8.1 vierge", + type: "prestashop", + dockerImage: "prestashop/prestashop:8.1", + dbImage: "mariadb:10.11", + dbName: "prestashop", + dbUser: "prestashop", + dbPassword: "prestashop", + dbRootPassword: "rootpassword", + }, ]; for (const t of templates) { + const dbHost = "db"; + const dbPort = "3306"; const composeConfig = `services: + db: + image: ${t.dbImage} + environment: + MYSQL_ROOT_PASSWORD: ${t.dbRootPassword} + MYSQL_DATABASE: ${t.dbName} + MYSQL_USER: ${t.dbUser} + MYSQL_PASSWORD: ${t.dbPassword} + volumes: + - db_data:/var/lib/mysql + restart: unless-stopped + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + interval: 5s + timeout: 5s + retries: 10 app: image: ${t.dockerImage} ports: - "127.0.0.1:{PORT}:80" environment: + WORDPRESS_DB_HOST: ${dbHost}:${dbPort} + WORDPRESS_DB_NAME: ${t.dbName} + WORDPRESS_DB_USER: ${t.dbUser} + WORDPRESS_DB_PASSWORD: ${t.dbPassword} + WORDPRESS_DB_PREFIX: wp_ + WORDPRESS_CONFIG_EXTRA: | + define('WP_HOME', 'http://localhost:{PORT}'); + define('WP_SITEURL', 'http://localhost:{PORT}'); + PS_DB_HOST: ${dbHost}:${dbPort} + PS_DB_NAME: ${t.dbName} + PS_DB_USER: ${t.dbUser} + PS_DB_PASSWORD: ${t.dbPassword} + PS_DB_PREFIX: ps_ + PS_DOMAIN: localhost:{PORT} + PS_SHOP_NAME: ${t.name} + PS_INSTALL_AUTO: "0" INSTANCE_ID: {INSTANCE_ID} + depends_on: + db: + condition: service_healthy + volumes: + - app_data:/var/www/html restart: unless-stopped +volumes: + db_data: + app_data: `; await prisma.template.upsert({ where: { id: `${t.type}-${t.dockerImage.replace(/[:\/]/g, "-")}` }, - update: {}, + update: { composeConfig }, create: { id: `${t.type}-${t.dockerImage.replace(/[:\/]/g, "-")}`, name: t.name,