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