UNPKG

redirector-cli

Version:

Global CLI tool for managing Redirector backend services with Docker Compose

74 lines 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.startCommand = startCommand; const logger_1 = require("../utils/logger"); const config_1 = require("../utils/config"); const docker_1 = require("../utils/docker"); async function startCommand(options) { try { logger_1.Logger.header("Starting Redirector Services"); const projectPath = process.cwd(); // Check if project is initialized const isInitialized = await config_1.ConfigManager.isRedirectorProject(projectPath); if (!isInitialized) { logger_1.Logger.error("No Redirector project found in current directory"); logger_1.Logger.info("Run `redirector setup` first to initialize the project"); process.exit(1); } // Load configuration const config = await config_1.ConfigManager.loadConfig(projectPath); const docker = new docker_1.DockerManager(config, projectPath); // Validate Docker logger_1.Logger.startSpinner("Validating Docker..."); const dockerRunning = await config_1.ConfigManager.validateDockerRunning(); if (!dockerRunning) { logger_1.Logger.failSpinner("Docker daemon not running"); logger_1.Logger.error("Docker daemon is not running. Please start Docker first."); process.exit(1); } logger_1.Logger.succeedSpinner("Docker validation complete"); // Pull images if requested if (options.pull) { await docker.pullImages(); } // Start services await docker.startServices(options.detach !== false); // Show status logger_1.Logger.newLine(); logger_1.Logger.subheader("Service Status:"); const containers = await docker.getStatus(); if (containers.length === 0) { logger_1.Logger.warning("No containers found"); } else { containers.forEach((container) => { const status = container.status.includes("running") ? "✓" : "✗"; logger_1.Logger.info(`${status} ${container.name}: ${container.status}`); if (container.ports) { logger_1.Logger.info(` Ports: ${container.ports}`); } }); } logger_1.Logger.newLine(); logger_1.Logger.success("Services started successfully!"); logger_1.Logger.newLine(); logger_1.Logger.subheader("Access URLs:"); logger_1.Logger.list([ `Backend API: http://localhost:${config.backendPort}`, `Health Check: http://localhost:${config.backendPort}/health`, `PostgreSQL: localhost:${config.postgresPort}`, ]); logger_1.Logger.newLine(); logger_1.Logger.subheader("Useful Commands:"); logger_1.Logger.list([ "`redirector status` - Check service status", "`redirector logs` - View service logs", "`redirector stop` - Stop all services", ]); } catch (error) { logger_1.Logger.error(`Failed to start services: ${error}`); process.exit(1); } } //# sourceMappingURL=start.js.map