redirector-cli
Version:
Global CLI tool for managing Redirector backend services with Docker Compose
74 lines • 3.21 kB
JavaScript
;
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