fix(agent): gère registered silencieusement + nettoie logs heartbeat; feat(seed): MariaDB pour WordPress/PrestaShop
This commit is contained in:
@@ -33,7 +33,9 @@ func sendMessage(msg WSMessage) error {
|
|||||||
if mainConn == nil {
|
if mainConn == nil {
|
||||||
return fmt.Errorf("not connected to server")
|
return fmt.Errorf("not connected to server")
|
||||||
}
|
}
|
||||||
|
if msg.Action != "heartbeat" {
|
||||||
log.Printf("sendMessage: sending %+v", msg)
|
log.Printf("sendMessage: sending %+v", msg)
|
||||||
|
}
|
||||||
return mainConn.WriteJSON(msg)
|
return mainConn.WriteJSON(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,6 +166,9 @@ func handleMessage(conn *websocket.Conn, msg WSMessage, dataDir, nodeID string)
|
|||||||
"action": "activated",
|
"action": "activated",
|
||||||
"studentName": msg.StudentName,
|
"studentName": msg.StudentName,
|
||||||
})
|
})
|
||||||
|
case "registered":
|
||||||
|
// Server acknowledged our register message; nothing to do.
|
||||||
|
return
|
||||||
case "activation_failed":
|
case "activation_failed":
|
||||||
log.Printf("handleMessage: activation_failed received, error=%s", msg.Error)
|
log.Printf("handleMessage: activation_failed received, error=%s", msg.Error)
|
||||||
notifyUI(map[string]interface{}{
|
notifyUI(map[string]interface{}{
|
||||||
|
|||||||
+92
-6
@@ -20,26 +20,112 @@ async function main() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const templates = [
|
const templates = [
|
||||||
{ name: "WordPress latest vierge", type: "wordpress", dockerImage: "wordpress:latest" },
|
{
|
||||||
{ name: "WordPress 6.7 vierge", type: "wordpress", dockerImage: "wordpress:6.7" },
|
name: "WordPress latest vierge",
|
||||||
{ name: "WordPress 6.4 vierge", type: "wordpress", dockerImage: "wordpress:6.4" },
|
type: "wordpress",
|
||||||
{ name: "PrestaShop latest vierge", type: "prestashop", dockerImage: "prestashop/prestashop:latest" },
|
dockerImage: "wordpress:latest",
|
||||||
{ name: "PrestaShop 8.1 vierge", type: "prestashop", dockerImage: "prestashop/prestashop:8.1" },
|
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) {
|
for (const t of templates) {
|
||||||
|
const dbHost = "db";
|
||||||
|
const dbPort = "3306";
|
||||||
const composeConfig = `services:
|
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:
|
app:
|
||||||
image: ${t.dockerImage}
|
image: ${t.dockerImage}
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{PORT}:80"
|
- "127.0.0.1:{PORT}:80"
|
||||||
environment:
|
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}
|
INSTANCE_ID: {INSTANCE_ID}
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
volumes:
|
||||||
|
- app_data:/var/www/html
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
db_data:
|
||||||
|
app_data:
|
||||||
`;
|
`;
|
||||||
await prisma.template.upsert({
|
await prisma.template.upsert({
|
||||||
where: { id: `${t.type}-${t.dockerImage.replace(/[:\/]/g, "-")}` },
|
where: { id: `${t.type}-${t.dockerImage.replace(/[:\/]/g, "-")}` },
|
||||||
update: {},
|
update: { composeConfig },
|
||||||
create: {
|
create: {
|
||||||
id: `${t.type}-${t.dockerImage.replace(/[:\/]/g, "-")}`,
|
id: `${t.type}-${t.dockerImage.replace(/[:\/]/g, "-")}`,
|
||||||
name: t.name,
|
name: t.name,
|
||||||
|
|||||||
Reference in New Issue
Block a user