ids.alfacom.it/deployment/setup_systemd_services.sh
marco370 7ec5ff553b Add systemd service management with API key security
Implement systemd service management for ML backend and Syslog parser with API key authentication and robust error handling across frontend and backend.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: e0ddd146-1e7d-40e4-8607-ef8d247a1f49
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/n4Q2eeE
2025-11-22 09:33:30 +00:00

90 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
# =========================================================
# SETUP SYSTEMD SERVICES - IDS System
# =========================================================
# Installa e configura i servizi systemd per:
# - ids-ml-backend: Python FastAPI ML backend
# - ids-syslog-parser: Python syslog parser
set -e
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
IDS_DIR="/opt/ids"
SYSTEMD_DIR="${IDS_DIR}/deployment/systemd"
echo -e "${BLUE}🔧 Setup Systemd Services per IDS${NC}\n"
# Check se script è eseguito da root
if [ "$EUID" -ne 0 ]; then
echo -e "${RED}❌ Questo script deve essere eseguito come root (usa sudo)${NC}"
exit 1
fi
# Verifica esistenza file .env
if [ ! -f "${IDS_DIR}/.env" ]; then
echo -e "${RED}❌ File .env non trovato in ${IDS_DIR}/.env${NC}"
exit 1
fi
# Genera API Key se non esiste
if ! grep -q "^IDS_API_KEY=" "${IDS_DIR}/.env"; then
echo -e "${YELLOW}🔑 Generazione IDS_API_KEY...${NC}"
API_KEY=$(openssl rand -hex 32)
echo "IDS_API_KEY=${API_KEY}" >> "${IDS_DIR}/.env"
echo -e "${GREEN}✅ IDS_API_KEY generata e salvata in .env${NC}"
fi
# Copia systemd units
echo -e "${BLUE}📋 Installazione systemd units...${NC}"
cp "${SYSTEMD_DIR}/ids-ml-backend.service" /etc/systemd/system/
cp "${SYSTEMD_DIR}/ids-syslog-parser.service" /etc/systemd/system/
# Reload systemd
echo -e "${BLUE}♻️ Reload systemd daemon...${NC}"
systemctl daemon-reload
# Stop processi manuali esistenti (se presenti)
echo -e "${YELLOW}⏸️ Fermando processi manuali esistenti...${NC}"
pkill -f "python.*main.py" || true
pkill -f "python.*syslog_parser.py" || true
sleep 2
# Enable e start services
echo -e "${BLUE}🚀 Attivazione servizi...${NC}"
# ML Backend
systemctl enable ids-ml-backend.service
systemctl start ids-ml-backend.service
echo -e "${GREEN}✅ ids-ml-backend.service attivato${NC}"
# Syslog Parser
systemctl enable ids-syslog-parser.service
systemctl start ids-syslog-parser.service
echo -e "${GREEN}✅ ids-syslog-parser.service attivato${NC}"
# Verifica status
sleep 2
echo -e "\n${BLUE}📊 Status Servizi:${NC}"
systemctl status ids-ml-backend.service --no-pager | head -10
echo ""
systemctl status ids-syslog-parser.service --no-pager | head -10
echo -e "\n${GREEN}╔═══════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}║ ✅ SYSTEMD SERVICES CONFIGURATI ║${NC}"
echo -e "${GREEN}╚═══════════════════════════════════════════════╝${NC}"
echo -e "\n${BLUE}📚 COMANDI UTILI:${NC}"
echo -e " ${YELLOW}systemctl status ids-ml-backend${NC} - Status ML Backend"
echo -e " ${YELLOW}systemctl status ids-syslog-parser${NC} - Status Syslog Parser"
echo -e " ${YELLOW}systemctl restart ids-ml-backend${NC} - Restart ML Backend"
echo -e " ${YELLOW}systemctl restart ids-syslog-parser${NC} - Restart Syslog Parser"
echo -e " ${YELLOW}journalctl -u ids-ml-backend -f${NC} - Log ML Backend"
echo -e " ${YELLOW}journalctl -u ids-syslog-parser -f${NC} - Log Syslog Parser"
echo ""