2026-03-31 22:53:39 +05:00
|
|
|
|
#!/usr/bin/env bun
|
|
|
|
|
|
|
|
|
|
|
|
import { $ } from "bun";
|
|
|
|
|
|
import { spawn } from "child_process";
|
|
|
|
|
|
import path from "path";
|
|
|
|
|
|
|
|
|
|
|
|
console.log("🚀 Запуск серверов avtourist086...\n");
|
|
|
|
|
|
|
2026-04-15 18:08:26 +05:00
|
|
|
|
// Запуск Maildev
|
|
|
|
|
|
const maildev = spawn("maildev", ["--web", "1080", "--smtp", "1025"], {
|
|
|
|
|
|
stdio: "inherit",
|
|
|
|
|
|
shell: true,
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// Запуск PocketBase с SMTP настройками
|
2026-03-31 22:53:39 +05:00
|
|
|
|
const backend = spawn("pocketbase.exe", ["serve"], {
|
|
|
|
|
|
cwd: path.join(process.cwd(), "backend"),
|
|
|
|
|
|
stdio: "inherit",
|
|
|
|
|
|
shell: true,
|
2026-04-15 18:08:26 +05:00
|
|
|
|
env: {
|
|
|
|
|
|
...process.env,
|
|
|
|
|
|
PB_SMTP_HOST: "localhost",
|
|
|
|
|
|
PB_SMTP_PORT: "1025",
|
|
|
|
|
|
PB_SMTP_FROM: "noreply@avtourist-surgut.ru"
|
|
|
|
|
|
}
|
2026-03-31 22:53:39 +05:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// Запуск Astro
|
|
|
|
|
|
const frontend = spawn("bun", ["dev"], {
|
|
|
|
|
|
cwd: "frontend",
|
|
|
|
|
|
stdio: "inherit",
|
|
|
|
|
|
shell: true,
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// Обработка завершения
|
|
|
|
|
|
const cleanup = () => {
|
|
|
|
|
|
console.log("\n🛑 Остановка серверов...");
|
2026-04-15 18:08:26 +05:00
|
|
|
|
maildev.kill();
|
2026-03-31 22:53:39 +05:00
|
|
|
|
backend.kill();
|
|
|
|
|
|
frontend.kill();
|
|
|
|
|
|
process.exit(0);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
process.on("SIGINT", cleanup);
|
|
|
|
|
|
process.on("SIGTERM", cleanup);
|
|
|
|
|
|
|
|
|
|
|
|
// Ожидание завершения процессов
|
2026-04-15 18:08:26 +05:00
|
|
|
|
maildev.on("exit", (code) => {
|
|
|
|
|
|
console.log(`Maildev остановлен с кодом ${code}`);
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2026-03-31 22:53:39 +05:00
|
|
|
|
backend.on("exit", (code) => {
|
|
|
|
|
|
console.log(`Backend остановлен с кодом ${code}`);
|
|
|
|
|
|
cleanup();
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
frontend.on("exit", (code) => {
|
|
|
|
|
|
console.log(`Frontend остановлен с кодом ${code}`);
|
|
|
|
|
|
cleanup();
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
console.log("✅ Серверы запущены:\n");
|
2026-04-15 18:08:26 +05:00
|
|
|
|
console.log(" Maildev (SMTP): http://localhost:1080");
|
2026-03-31 22:53:39 +05:00
|
|
|
|
console.log(" Backend (PocketBase): http://localhost:8090");
|
|
|
|
|
|
console.log(" Frontend (Astro): http://localhost:4321\n");
|
|
|
|
|
|
console.log("Нажмите Ctrl+C для остановки\n");
|