import React, { useState } from "react"; export default function DeployWordPress() { const [loading, setLoading] = useState(false); const [message, setMessage] = useState(""); const [debugInfo, setDebugInfo] = useState(null); // Configuration - Replace with your actual values const COOLIFY_API_URL = "http://192.168.1.197:8000/api/v1"; const TOKEN = "zXSR33z74eK26abbKyL9bz4d3PYouTSK8FSjOltv719c52d8"; const PROJECT_UUID = "wc40gg048gkwg0go80ggog44"; const SERVER_UUID = "sgswssowscc84o8sc8wockgc"; const ENVIRONMENT_NAME = "production"; // Changed from 'dev' to 'production' as default const createWordPress = async () => { setLoading(true); setMessage(""); setDebugInfo(null); try { // 1. Create MySQL Service - Updated to Coolify's expected format const mysqlPayload = { name: "wordpress-db", type: "mysql", projectUuid: PROJECT_UUID, serverUuid: SERVER_UUID, version: "8.0", destination: { // Coolify often requires this structure serverUuid: SERVER_UUID, environment: ENVIRONMENT_NAME }, configuration: { type: "mysql", settings: { // Changed from environmentVariables to settings MYSQL_ROOT_PASSWORD: "example", MYSQL_DATABASE: "wordpress", MYSQL_USER: "wordpress", MYSQL_PASSWORD: "example", MYSQL_ALLOW_EMPTY_PASSWORD: "no" } } }; const mysqlRes = await fetch(`${COOLIFY_API_URL}/services`, { method: "POST", headers: { Authorization: `Bearer ${TOKEN}`, "Content-Type": "application/json", }, body: JSON.stringify(mysqlPayload), }); const mysqlData = await mysqlRes.json(); setDebugInfo({ mysql: { request: mysqlPayload, response: mysqlData } }); if (!mysqlRes.ok) { throw new Error( mysqlData.message || mysqlData.error?.message || JSON.stringify(mysqlData.errors) || "MySQL validation failed" ); } // 2. Create WordPress Service const wpPayload = { name: "wordpress", type: "wordpress", projectUuid: PROJECT_UUID, serverUuid: SERVER_UUID, version: "latest", destination: { serverUuid: SERVER_UUID, environment: ENVIRONMENT_NAME }, configuration: { type: "wordpress", settings: { WORDPRESS_DB_HOST: "wordpress-db", WORDPRESS_DB_USER: "wordpress", WORDPRESS_DB_PASSWORD: "example", WORDPRESS_DB_NAME: "wordpress", WORDPRESS_TABLE_PREFIX: "wp_" } } }; const wpRes = await fetch(`${COOLIFY_API_URL}/services`, { method: "POST", headers: { Authorization: `Bearer ${TOKEN}`, "Content-Type": "application/json", }, body: JSON.stringify(wpPayload), }); const wpData = await wpRes.json(); setDebugInfo(prev => ({ ...prev, wordpress: { request: wpPayload, response: wpData } })); if (!wpRes.ok) { throw new Error( wpData.message || wpData.error?.message || JSON.stringify(wpData.errors) || "WordPress validation failed" ); } setMessage("🎉 WordPress + MySQL deployed successfully!"); } catch (err) { setMessage(`❌ Deployment failed: ${err.message}`); console.error("Deployment error:", err, debugInfo); } finally { setLoading(false); } }; return (
{JSON.stringify(debugInfo, null, 2)}
Troubleshooting:
PROJECT_UUID
and SERVER_UUID
are correct{ENVIRONMENT_NAME}
exists