70 lines
2.1 KiB
PHP
70 lines
2.1 KiB
PHP
<?php
|
|
// Fire-and-forget: starts installs then returns immediately
|
|
// The actual work continues in background via proc_open
|
|
if(($_GET['k']??'')!=='WEVADS2026') die('auth');
|
|
|
|
$log = "/tmp/weval-launch-all.log";
|
|
file_put_contents($log, "START " . date("c") . "\n");
|
|
|
|
// Create the install script
|
|
$script = <<<'BASH'
|
|
#!/bin/bash
|
|
LOG=/tmp/weval-launch-all.log
|
|
echo "SCRIPT START $(date)" >> $LOG
|
|
|
|
# 1. MiroFish
|
|
echo "=== MIROFISH ===" >> $LOG
|
|
cd /opt/mirofish 2>/dev/null
|
|
if [ -f package.json ]; then
|
|
echo "npm install..." >> $LOG
|
|
npm install >> $LOG 2>&1
|
|
echo "MiroFish modules: $(ls node_modules 2>/dev/null | wc -l)" >> $LOG
|
|
# Configure .env
|
|
if [ ! -f .env ]; then cp .env.example .env 2>/dev/null; fi
|
|
sed -i 's/your_api_key/sk-34db1ad3152443cd86563d1bfc576c30/g' .env 2>/dev/null
|
|
# Start on port 5010 (3000 taken by CRM)
|
|
PORT=5010 nohup npm run dev >> /tmp/mirofish.log 2>&1 &
|
|
echo "MiroFish PID: $!" >> $LOG
|
|
else
|
|
echo "MiroFish: package.json not found" >> $LOG
|
|
fi
|
|
|
|
# 2. Paperclip
|
|
echo "=== PAPERCLIP ===" >> $LOG
|
|
cd /opt/paperclip-weval 2>/dev/null
|
|
if [ -f package.json ]; then
|
|
echo "npm install..." >> $LOG
|
|
npm install >> $LOG 2>&1
|
|
echo "Paperclip modules: $(ls node_modules 2>/dev/null | wc -l)" >> $LOG
|
|
PORT=3150 nohup npm start >> /tmp/paperclip.log 2>&1 &
|
|
echo "Paperclip PID: $!" >> $LOG
|
|
else
|
|
echo "Paperclip: package.json not found" >> $LOG
|
|
fi
|
|
|
|
# 3. Scrapy project fix
|
|
echo "=== SCRAPY ===" >> $LOG
|
|
cd /opt/weval-scrapy
|
|
python3 -m scrapy list >> $LOG 2>&1
|
|
|
|
echo "SCRIPT DONE $(date)" >> $LOG
|
|
BASH;
|
|
|
|
file_put_contents("/opt/launch-all.sh", $script);
|
|
chmod("/opt/launch-all.sh", 0755);
|
|
|
|
// Launch detached using proc_open (survives PHP shutdown)
|
|
$proc = proc_open(
|
|
"nohup bash /opt/launch-all.sh > /dev/null 2>&1 &",
|
|
[["pipe","r"],["pipe","w"],["pipe","w"]],
|
|
$pipes
|
|
);
|
|
if(is_resource($proc)) {
|
|
proc_close($proc);
|
|
echo json_encode(["ok"=>true,"status"=>"launched","log"=>$log,"check"=>"tail -f /tmp/weval-launch-all.log"]);
|
|
} else {
|
|
// Fallback: exec
|
|
exec("nohup bash /opt/launch-all.sh > /dev/null 2>&1 &");
|
|
echo json_encode(["ok"=>true,"status"=>"launched_exec","log"=>$log]);
|
|
}
|