feat: Complete ATLAS system installation and API fixes

## Backend Changes
- Add new API endpoints: combustible, pois, mantenimiento, video, configuracion
- Fix vehiculos endpoint to return paginated response with items array
- Add /vehiculos/all endpoint for non-paginated list
- Add /geocercas/all endpoint
- Add /alertas/configuracion GET/PUT endpoints
- Add /viajes/activos and /viajes/iniciar endpoints
- Add /reportes/stats, /reportes/templates, /reportes/preview endpoints
- Add /conductores/all and /conductores/disponibles endpoints
- Update router.py to include all new modules

## Frontend Changes
- Fix authentication token handling (snake_case vs camelCase)
- Update vehiculosApi.listAll to use /vehiculos/all
- Fix FuelGauge component usage in Combustible page
- Fix chart component exports (named + default exports)
- Update API client for proper token refresh

## Infrastructure
- Rename services from ADAN to ATLAS
- Configure Cloudflare tunnel for atlas.consultoria-as.com
- Update systemd service files
- Configure PostgreSQL with TimescaleDB
- Configure Redis, Mosquitto, Traccar, MediaMTX

## Documentation
- Update installation guides
- Update API reference
- Rename all ADAN references to ATLAS

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
ATLAS Admin
2026-01-25 03:04:23 +00:00
parent 0dfce3ce20
commit e59aa2a742
73 changed files with 4415 additions and 450 deletions

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# ============================================
# Sistema de ADAN - Script de Backup
# Sistema de ATLAS - Script de Backup
# ============================================
# Realiza backup de base de datos y configuracion
#
@@ -27,8 +27,8 @@ NC='\033[0m'
# ---------------------------------------------
# Variables de Configuracion
# ---------------------------------------------
INSTALL_DIR="${INSTALL_DIR:-/opt/adan}"
BACKUP_DIR="${BACKUP_DIR:-/var/backups/adan}"
INSTALL_DIR="${INSTALL_DIR:-/opt/atlas}"
BACKUP_DIR="${BACKUP_DIR:-/var/backups/atlas}"
RETENTION_DAYS="${BACKUP_RETENTION_DAYS:-7}"
# Cargar variables de entorno
@@ -39,8 +39,8 @@ fi
# Base de datos
DB_HOST="${POSTGRES_HOST:-localhost}"
DB_PORT="${POSTGRES_PORT:-5432}"
DB_NAME="${POSTGRES_DB:-adan}"
DB_USER="${POSTGRES_USER:-adan}"
DB_NAME="${POSTGRES_DB:-atlas}"
DB_USER="${POSTGRES_USER:-atlas}"
DB_PASSWORD="${POSTGRES_PASSWORD:-}"
# S3 (opcional)
@@ -50,7 +50,7 @@ S3_ENDPOINT="${S3_ENDPOINT:-https://s3.amazonaws.com}"
# Timestamp para este backup
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="adan_${TIMESTAMP}"
BACKUP_NAME="atlas_${TIMESTAMP}"
# Flags
FULL_BACKUP=false
@@ -228,8 +228,8 @@ backup_config() {
"$INSTALL_DIR/deploy"
"/opt/traccar/conf/traccar.xml"
"/opt/mediamtx/mediamtx.yml"
"/etc/mosquitto/conf.d/adan.conf"
"/etc/systemd/system/adan-*.service"
"/etc/mosquitto/conf.d/atlas.conf"
"/etc/systemd/system/atlas-*.service"
"/etc/systemd/system/mediamtx.service"
)
@@ -290,7 +290,7 @@ rotate_backups() {
while IFS= read -r -d '' file; do
rm -f "$file"
((deleted++))
done < <(find "$BACKUP_DIR/daily" -type f -name "adan_*.gz" -mtime +${RETENTION_DAYS} -print0 2>/dev/null)
done < <(find "$BACKUP_DIR/daily" -type f -name "atlas_*.gz" -mtime +${RETENTION_DAYS} -print0 2>/dev/null)
if [[ $deleted -gt 0 ]]; then
log_info "Eliminados $deleted backups antiguos"
@@ -356,7 +356,7 @@ create_backup_index() {
# Cabecera
cat > "$index_file" <<EOF
# Indice de Backups - Sistema de ADAN
# Indice de Backups - Sistema de ATLAS
# Generado: $(date)
# Retencion: ${RETENTION_DAYS} dias
#
@@ -426,7 +426,7 @@ send_notification() {
curl -s -X POST \
"https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
-d chat_id="${TELEGRAM_CHAT_ID}" \
-d text="${emoji} Backup ADAN: ${message}" \
-d text="${emoji} Backup ATLAS: ${message}" \
> /dev/null 2>&1
fi
}

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# ============================================
# Sistema de ADAN - Health Check
# Sistema de ATLAS - Health Check
# ============================================
# Verifica el estado de todos los servicios
#
@@ -19,7 +19,7 @@ BLUE='\033[0;34m'
NC='\033[0m'
# Variables
INSTALL_DIR="${INSTALL_DIR:-/opt/adan}"
INSTALL_DIR="${INSTALL_DIR:-/opt/atlas}"
VERBOSE=false
JSON_OUTPUT=false
EXIT_CODE=0
@@ -81,8 +81,8 @@ check_url() {
check_db() {
local host="${POSTGRES_HOST:-localhost}"
local port="${POSTGRES_PORT:-5432}"
local db="${POSTGRES_DB:-adan}"
local user="${POSTGRES_USER:-adan}"
local db="${POSTGRES_DB:-atlas}"
local user="${POSTGRES_USER:-atlas}"
if PGPASSWORD="${POSTGRES_PASSWORD}" psql -h "$host" -p "$port" -U "$user" -d "$db" -c "SELECT 1" > /dev/null 2>&1; then
echo "ok"
@@ -142,18 +142,18 @@ main() {
if [[ "$JSON_OUTPUT" != "true" ]]; then
echo ""
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE} HEALTH CHECK - Sistema de ADAN${NC}"
echo -e "${BLUE} HEALTH CHECK - Sistema de ATLAS${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
echo -e "${BLUE}Servicios Systemd:${NC}"
fi
# Servicios systemd
results[adan_api]=$(check_service "adan-api" "API Backend")
print_status "adan-api" "${results[adan_api]}"
results[atlas_api]=$(check_service "atlas-api" "API Backend")
print_status "atlas-api" "${results[atlas_api]}"
results[adan_web]=$(check_service "adan-web" "Frontend Web")
print_status "adan-web" "${results[adan_web]}"
results[atlas_web]=$(check_service "atlas-web" "Frontend Web")
print_status "atlas-web" "${results[atlas_web]}"
results[postgresql]=$(check_service "postgresql" "PostgreSQL")
print_status "postgresql" "${results[postgresql]}"

92
deploy/scripts/install.sh Normal file → Executable file
View File

@@ -1,6 +1,6 @@
#!/bin/bash
# ============================================
# Sistema de ADAN - Script de Instalacion
# Sistema de ATLAS - Script de Instalacion
# ============================================
# Este script instala y configura todo el sistema
# Ejecutar como root en Ubuntu 22.04 LTS
@@ -28,10 +28,10 @@ NC='\033[0m' # No Color
# ---------------------------------------------
# Variables de Configuracion
# ---------------------------------------------
INSTALL_DIR="${INSTALL_DIR:-/opt/adan}"
REPO_URL="${REPO_URL:-https://github.com/tuorganizacion/adan.git}"
INSTALL_DIR="${INSTALL_DIR:-/opt/atlas}"
REPO_URL="${REPO_URL:-https://github.com/tuorganizacion/atlas.git}"
REPO_BRANCH="${REPO_BRANCH:-main}"
BACKUP_DIR="${BACKUP_DIR:-/var/backups/adan}"
BACKUP_DIR="${BACKUP_DIR:-/var/backups/atlas}"
# Versiones
POSTGRES_VERSION="15"
@@ -51,7 +51,7 @@ SKIP_TRACCAR=false
DEV_MODE=false
# Archivo de credenciales generadas
CREDENTIALS_FILE="/root/adan-credentials.txt"
CREDENTIALS_FILE="/root/atlas-credentials.txt"
# ---------------------------------------------
# Funciones de utilidad
@@ -147,17 +147,19 @@ check_requirements() {
exit 1
fi
# Verificar Ubuntu 22.04
# Verificar Ubuntu 22.04 o 24.04
if [[ -f /etc/os-release ]]; then
. /etc/os-release
if [[ "$ID" != "ubuntu" ]] || [[ ! "$VERSION_ID" =~ ^22 ]]; then
log_warn "Este script esta optimizado para Ubuntu 22.04"
if [[ "$ID" != "ubuntu" ]] || [[ ! "$VERSION_ID" =~ ^(22|24) ]]; then
log_warn "Este script esta optimizado para Ubuntu 22.04/24.04"
log_warn "Sistema detectado: $ID $VERSION_ID"
read -p "Continuar de todos modos? (y/N) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
else
log_success "Sistema operativo: $ID $VERSION_ID"
fi
fi
@@ -331,11 +333,11 @@ install_python() {
# Instalar pip
if ! python3.11 -m pip --version &> /dev/null; then
log_info "Instalando pip..."
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11 --user
fi
# Actualizar pip
python3.11 -m pip install --upgrade pip setuptools wheel -q
# Actualizar pip (ignorar paquetes del sistema)
python3.11 -m pip install --upgrade pip setuptools wheel --ignore-installed -q 2>/dev/null || true
log_success "Python ${PYTHON_VERSION} instalado"
}
@@ -478,8 +480,8 @@ configure_database() {
DB_PASSWORD=$(generate_password 24)
fi
DB_NAME="${POSTGRES_DB:-adan}"
DB_USER="${POSTGRES_USER:-adan}"
DB_NAME="${POSTGRES_DB:-atlas}"
DB_USER="${POSTGRES_USER:-atlas}"
log_info "Creando usuario y base de datos..."
@@ -549,9 +551,9 @@ setup_application() {
else
log_info "Clonando repositorio..."
# Si el directorio actual contiene el codigo, copiarlo
if [[ -f "/root/Adan/backend/app/main.py" ]] 2>/dev/null; then
if [[ -f "/root/Atlas/backend/app/main.py" ]] 2>/dev/null; then
log_info "Copiando desde directorio local..."
cp -r /root/Adan/* "$INSTALL_DIR/"
cp -r /root/Atlas/* "$INSTALL_DIR/"
else
git clone --branch "$REPO_BRANCH" "$REPO_URL" "$INSTALL_DIR"
fi
@@ -611,7 +613,7 @@ generate_credentials() {
# Guardar en archivo seguro
cat > "$CREDENTIALS_FILE" <<EOF
# ============================================
# Credenciales del Sistema de ADAN
# Credenciales del Sistema de ATLAS
# Generadas: $(date)
# IMPORTANTE: Guardar en lugar seguro y eliminar este archivo
# ============================================
@@ -619,10 +621,10 @@ generate_credentials() {
# PostgreSQL
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=adan
POSTGRES_USER=adan
POSTGRES_DB=atlas
POSTGRES_USER=atlas
POSTGRES_PASSWORD=${DB_PASSWORD}
DATABASE_URL=postgresql://adan:${DB_PASSWORD}@localhost:5432/adan
DATABASE_URL=postgresql://atlas:${DB_PASSWORD}@localhost:5432/atlas
# Redis
REDIS_PASSWORD=${REDIS_PASSWORD}
@@ -633,11 +635,11 @@ SECRET_KEY=${SECRET_KEY}
API_PORT=${API_PORT}
# MQTT
MQTT_USER=adan
MQTT_USER=atlas
MQTT_PASSWORD=${MQTT_PASSWORD}
# Admin inicial
ADMIN_EMAIL=admin@adan.local
ADMIN_EMAIL=admin@atlas.local
ADMIN_PASSWORD=${ADMIN_PASSWORD}
# Puertos
@@ -665,10 +667,10 @@ create_env_file() {
# Base de Datos
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=adan
POSTGRES_USER=adan
POSTGRES_DB=atlas
POSTGRES_USER=atlas
POSTGRES_PASSWORD=${DB_PASSWORD}
DATABASE_URL=postgresql://adan:${DB_PASSWORD}@localhost:5432/adan
DATABASE_URL=postgresql://atlas:${DB_PASSWORD}@localhost:5432/atlas
# Redis
REDIS_HOST=localhost
@@ -697,7 +699,7 @@ TRACCAR_FORWARD_URL=http://localhost:${API_PORT}/api/v1/traccar/position
# MQTT
MQTT_HOST=localhost
MQTT_PORT=1883
MQTT_USER=adan
MQTT_USER=atlas
MQTT_PASSWORD=${MQTT_PASSWORD}
# MediaMTX
@@ -771,11 +773,11 @@ configure_mosquitto() {
# Crear archivo de passwords
touch /etc/mosquitto/passwd
mosquitto_passwd -b /etc/mosquitto/passwd adan "${MQTT_PASSWORD}"
mosquitto_passwd -b /etc/mosquitto/passwd atlas "${MQTT_PASSWORD}"
# Configuracion
cat > /etc/mosquitto/conf.d/adan.conf <<EOF
# Configuracion para Sistema de ADAN
cat > /etc/mosquitto/conf.d/atlas.conf <<EOF
# Configuracion para Sistema de ATLAS
listener 1883 localhost
listener 9001
@@ -819,7 +821,7 @@ install_services() {
SERVICES_DIR="$INSTALL_DIR/deploy/services"
# Copiar servicios
for service in adan-api adan-web mediamtx cloudflared; do
for service in atlas-api atlas-web mediamtx cloudflared; do
if [[ -f "$SERVICES_DIR/${service}.service" ]]; then
log_info "Instalando servicio: ${service}"
cp "$SERVICES_DIR/${service}.service" /etc/systemd/system/
@@ -830,14 +832,14 @@ install_services() {
systemctl daemon-reload
# Habilitar servicios
systemctl enable adan-api 2>/dev/null || true
systemctl enable adan-web 2>/dev/null || true
systemctl enable atlas-api 2>/dev/null || true
systemctl enable atlas-web 2>/dev/null || true
systemctl enable mediamtx 2>/dev/null || true
# Iniciar servicios
log_info "Iniciando servicios..."
systemctl start adan-api 2>/dev/null || log_warn "adan-api no pudo iniciar (puede requerir configuracion adicional)"
systemctl start adan-web 2>/dev/null || log_warn "adan-web no pudo iniciar"
systemctl start atlas-api 2>/dev/null || log_warn "atlas-api no pudo iniciar (puede requerir configuracion adicional)"
systemctl start atlas-web 2>/dev/null || log_warn "atlas-web no pudo iniciar"
systemctl start mediamtx 2>/dev/null || log_warn "mediamtx no pudo iniciar"
log_success "Servicios instalados"
@@ -864,7 +866,7 @@ run_migrations() {
# Ejecutar init.sql si existe y no hay migraciones
if [[ ! -d "alembic" ]] && [[ -f "$INSTALL_DIR/deploy/postgres/init.sql" ]]; then
log_info "Ejecutando script init.sql..."
PGPASSWORD="${DB_PASSWORD}" psql -h localhost -U adan -d adan -f "$INSTALL_DIR/deploy/postgres/init.sql" || true
PGPASSWORD="${DB_PASSWORD}" psql -h localhost -U atlas -d atlas -f "$INSTALL_DIR/deploy/postgres/init.sql" || true
fi
deactivate
@@ -936,8 +938,8 @@ EOF
configure_logrotate() {
log_section "Configurando Logrotate"
cat > /etc/logrotate.d/adan <<EOF
/var/log/adan/*.log {
cat > /etc/logrotate.d/atlas <<EOF
/var/log/atlas/*.log {
daily
missingok
rotate 14
@@ -947,12 +949,12 @@ configure_logrotate() {
create 0640 root root
sharedscripts
postrotate
systemctl reload adan-api > /dev/null 2>&1 || true
systemctl reload atlas-api > /dev/null 2>&1 || true
endscript
}
EOF
mkdir -p /var/log/adan
mkdir -p /var/log/atlas
log_success "Logrotate configurado"
}
@@ -964,7 +966,7 @@ configure_cron() {
log_section "Configurando Backups Automaticos"
# Crear cron para backup diario a las 3 AM
CRON_JOB="0 3 * * * $INSTALL_DIR/deploy/scripts/backup.sh >> /var/log/adan/backup.log 2>&1"
CRON_JOB="0 3 * * * $INSTALL_DIR/deploy/scripts/backup.sh >> /var/log/atlas/backup.log 2>&1"
# Agregar si no existe
(crontab -l 2>/dev/null | grep -v "backup.sh"; echo "$CRON_JOB") | crontab -
@@ -980,7 +982,7 @@ show_summary() {
echo ""
echo -e "${GREEN}============================================${NC}"
echo -e "${GREEN} SISTEMA DE ADAN INSTALADO ${NC}"
echo -e "${GREEN} SISTEMA DE ATLAS INSTALADO ${NC}"
echo -e "${GREEN}============================================${NC}"
echo ""
echo -e "${BLUE}Servicios:${NC}"
@@ -992,8 +994,8 @@ show_summary() {
echo ""
echo -e "${BLUE}Base de Datos:${NC}"
echo " - PostgreSQL: localhost:5432"
echo " - Database: adan"
echo " - Usuario: adan"
echo " - Database: atlas"
echo " - Usuario: atlas"
echo ""
echo -e "${BLUE}Credenciales:${NC}"
echo " - Guardadas en: ${CREDENTIALS_FILE}"
@@ -1004,8 +1006,8 @@ show_summary() {
echo " 3. El unico puerto publico es ${TRACCAR_PORT} (GPS)"
echo ""
echo -e "${BLUE}Comandos utiles:${NC}"
echo " - Ver logs API: journalctl -u adan-api -f"
echo " - Reiniciar API: systemctl restart adan-api"
echo " - Ver logs API: journalctl -u atlas-api -f"
echo " - Reiniciar API: systemctl restart atlas-api"
echo " - Backup manual: ${INSTALL_DIR}/deploy/scripts/backup.sh"
echo " - Actualizar: ${INSTALL_DIR}/deploy/scripts/update.sh"
echo ""
@@ -1026,7 +1028,7 @@ main() {
echo ""
echo -e "${GREEN}============================================${NC}"
echo -e "${GREEN} INSTALADOR SISTEMA DE ADAN ${NC}"
echo -e "${GREEN} INSTALADOR SISTEMA DE ATLAS ${NC}"
echo -e "${GREEN}============================================${NC}"
echo ""
echo "Directorio instalacion: $INSTALL_DIR"

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# ============================================
# Sistema de ADAN - Visor de Logs
# Sistema de ATLAS - Visor de Logs
# ============================================
# Muestra logs de los diferentes servicios
#
@@ -39,7 +39,7 @@ while [[ $# -gt 0 ]]; do
shift 2
;;
--help|-h)
echo "Sistema de ADAN - Visor de Logs"
echo "Sistema de ATLAS - Visor de Logs"
echo ""
echo "Uso: $0 [servicio] [opciones]"
echo ""
@@ -91,10 +91,10 @@ show_logs() {
case $SERVICE in
api)
show_logs "adan-api" "API Backend"
show_logs "atlas-api" "API Backend"
;;
web)
show_logs "adan-web" "Frontend"
show_logs "atlas-web" "Frontend"
;;
traccar)
show_logs "traccar" "Traccar GPS"
@@ -121,10 +121,10 @@ case $SERVICE in
echo "Mostrando todos los logs en tiempo real..."
echo "Presiona Ctrl+C para salir"
echo ""
journalctl -u adan-api -u adan-web -u traccar -u mediamtx -u mosquitto -f
journalctl -u atlas-api -u atlas-web -u traccar -u mediamtx -u mosquitto -f
else
show_logs "adan-api" "API Backend"
show_logs "adan-web" "Frontend"
show_logs "atlas-api" "API Backend"
show_logs "atlas-web" "Frontend"
show_logs "traccar" "Traccar GPS"
show_logs "mediamtx" "MediaMTX"
show_logs "mosquitto" "Mosquitto MQTT"

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# ============================================
# Sistema de ADAN - Script de Restauracion
# Sistema de ATLAS - Script de Restauracion
# ============================================
# Restaura backups de base de datos y configuracion
#
@@ -29,8 +29,8 @@ NC='\033[0m'
# ---------------------------------------------
# Variables
# ---------------------------------------------
INSTALL_DIR="${INSTALL_DIR:-/opt/adan}"
BACKUP_DIR="${BACKUP_DIR:-/var/backups/adan}"
INSTALL_DIR="${INSTALL_DIR:-/opt/atlas}"
BACKUP_DIR="${BACKUP_DIR:-/var/backups/atlas}"
# Cargar variables de entorno
if [[ -f "$INSTALL_DIR/.env" ]]; then
@@ -40,8 +40,8 @@ fi
# Base de datos
DB_HOST="${POSTGRES_HOST:-localhost}"
DB_PORT="${POSTGRES_PORT:-5432}"
DB_NAME="${POSTGRES_DB:-adan}"
DB_USER="${POSTGRES_USER:-adan}"
DB_NAME="${POSTGRES_DB:-atlas}"
DB_USER="${POSTGRES_USER:-atlas}"
DB_PASSWORD="${POSTGRES_PASSWORD:-}"
# Opciones
@@ -109,7 +109,7 @@ parse_args() {
}
show_help() {
echo "Sistema de ADAN - Restauracion de Backup"
echo "Sistema de ATLAS - Restauracion de Backup"
echo ""
echo "Uso: $0 [opciones]"
echo ""
@@ -124,7 +124,7 @@ show_help() {
echo " $0 --list"
echo " $0 --latest"
echo " $0 --date 20240115"
echo " $0 --db /var/backups/adan/daily/adan_20240115_030000_db.sql.gz"
echo " $0 --db /var/backups/atlas/daily/atlas_20240115_030000_db.sql.gz"
}
# ---------------------------------------------
@@ -204,7 +204,7 @@ find_backup_by_date() {
local type="$1"
local date="$2"
local pattern="adan_${date}*_${type}.*gz"
local pattern="atlas_${date}*_${type}.*gz"
local found=$(ls -t "$BACKUP_DIR/daily"/$pattern 2>/dev/null | head -1)
@@ -222,8 +222,8 @@ find_backup_by_date() {
stop_services() {
log_info "Deteniendo servicios..."
systemctl stop adan-api 2>/dev/null || true
systemctl stop adan-web 2>/dev/null || true
systemctl stop atlas-api 2>/dev/null || true
systemctl stop atlas-web 2>/dev/null || true
# Esperar a que se detengan
sleep 2
@@ -237,8 +237,8 @@ stop_services() {
start_services() {
log_info "Iniciando servicios..."
systemctl start adan-api 2>/dev/null || true
systemctl start adan-web 2>/dev/null || true
systemctl start atlas-api 2>/dev/null || true
systemctl start atlas-web 2>/dev/null || true
log_success "Servicios iniciados"
}
@@ -389,7 +389,7 @@ restore_config() {
fi
# Servicios systemd
for service in $temp_dir/etc/systemd/system/adan-*.service; do
for service in $temp_dir/etc/systemd/system/atlas-*.service; do
if [[ -f "$service" ]]; then
cp "$service" /etc/systemd/system/
log_info "Restaurado: $(basename "$service")"
@@ -472,7 +472,7 @@ main() {
# Modo interactivo si no se especificaron opciones
if [[ -z "$DB_BACKUP" ]] && [[ -z "$CONFIG_BACKUP" ]] && [[ "$USE_LATEST" != "true" ]] && [[ -z "$RESTORE_DATE" ]]; then
echo ""
echo "Sistema de ADAN - Restauracion"
echo "Sistema de ATLAS - Restauracion"
echo "===================================="
echo ""
echo "Selecciona una opcion:"
@@ -540,8 +540,8 @@ main() {
log_success "=========================================="
echo ""
echo "Verifica que los servicios esten funcionando:"
echo " systemctl status adan-api"
echo " systemctl status adan-web"
echo " systemctl status atlas-api"
echo " systemctl status atlas-web"
echo ""
}

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# ============================================
# Sistema de ADAN - Estado del Sistema
# Sistema de ATLAS - Estado del Sistema
# ============================================
# Muestra informacion completa del estado
# ============================================
@@ -13,7 +13,7 @@ BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
INSTALL_DIR="${INSTALL_DIR:-/opt/adan}"
INSTALL_DIR="${INSTALL_DIR:-/opt/atlas}"
# Cargar variables
if [[ -f "$INSTALL_DIR/.env" ]]; then
@@ -24,7 +24,7 @@ clear
echo ""
echo -e "${CYAN}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${CYAN}║ SISTEMA DE ADAN - ESTADO DEL SISTEMA ║${NC}"
echo -e "${CYAN}║ SISTEMA DE ATLAS - ESTADO DEL SISTEMA ║${NC}"
echo -e "${CYAN}╚══════════════════════════════════════════════════════════════╝${NC}"
echo ""
@@ -84,8 +84,8 @@ check_service() {
printf "│ %-14s %s\n" "$name:" "$status"
}
check_service "adan-api" "API Backend" "${API_PORT:-8000}"
check_service "adan-web" "Frontend" "${FRONTEND_PORT:-3000}"
check_service "atlas-api" "API Backend" "${API_PORT:-8000}"
check_service "atlas-web" "Frontend" "${FRONTEND_PORT:-3000}"
check_service "postgresql" "PostgreSQL" "5432"
check_service "redis-server" "Redis" "6379"
check_service "traccar" "Traccar GPS" "${TRACCAR_PORT:-5055}"
@@ -103,15 +103,15 @@ echo -e "${BLUE}┌─ Base de Datos ──────────────
if systemctl is-active --quiet postgresql; then
# Tamanio de BD
DB_SIZE=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h localhost -U "${POSTGRES_USER:-adan}" -d "${POSTGRES_DB:-adan}" -t -c "SELECT pg_size_pretty(pg_database_size(current_database()));" 2>/dev/null | xargs)
DB_SIZE=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h localhost -U "${POSTGRES_USER:-atlas}" -d "${POSTGRES_DB:-atlas}" -t -c "SELECT pg_size_pretty(pg_database_size(current_database()));" 2>/dev/null | xargs)
echo -e "│ Tamanio BD: ${DB_SIZE:-N/A}"
# Conexiones activas
CONNECTIONS=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h localhost -U "${POSTGRES_USER:-adan}" -d "${POSTGRES_DB:-adan}" -t -c "SELECT count(*) FROM pg_stat_activity WHERE datname = current_database();" 2>/dev/null | xargs)
CONNECTIONS=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h localhost -U "${POSTGRES_USER:-atlas}" -d "${POSTGRES_DB:-atlas}" -t -c "SELECT count(*) FROM pg_stat_activity WHERE datname = current_database();" 2>/dev/null | xargs)
echo -e "│ Conexiones: ${CONNECTIONS:-N/A} activas"
# Posiciones (si existe la tabla)
POSITIONS=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h localhost -U "${POSTGRES_USER:-adan}" -d "${POSTGRES_DB:-adan}" -t -c "SELECT COUNT(*) FROM positions;" 2>/dev/null | xargs)
POSITIONS=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h localhost -U "${POSTGRES_USER:-atlas}" -d "${POSTGRES_DB:-atlas}" -t -c "SELECT COUNT(*) FROM positions;" 2>/dev/null | xargs)
if [[ -n "$POSITIONS" ]]; then
echo -e "│ Posiciones: ${POSITIONS} registros"
fi
@@ -150,10 +150,10 @@ echo -e "${BLUE}┌─ GPS / Unidades ──────────────
if systemctl is-active --quiet postgresql; then
# Total de unidades
TOTAL_UNITS=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h localhost -U "${POSTGRES_USER:-adan}" -d "${POSTGRES_DB:-adan}" -t -c "SELECT COUNT(*) FROM units;" 2>/dev/null | xargs)
TOTAL_UNITS=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h localhost -U "${POSTGRES_USER:-atlas}" -d "${POSTGRES_DB:-atlas}" -t -c "SELECT COUNT(*) FROM units;" 2>/dev/null | xargs)
# Unidades activas (con posicion en ultimos 5 min)
ACTIVE_UNITS=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h localhost -U "${POSTGRES_USER:-adan}" -d "${POSTGRES_DB:-adan}" -t -c "SELECT COUNT(DISTINCT unit_id) FROM positions WHERE device_time > NOW() - INTERVAL '5 minutes';" 2>/dev/null | xargs)
ACTIVE_UNITS=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h localhost -U "${POSTGRES_USER:-atlas}" -d "${POSTGRES_DB:-atlas}" -t -c "SELECT COUNT(DISTINCT unit_id) FROM positions WHERE device_time > NOW() - INTERVAL '5 minutes';" 2>/dev/null | xargs)
echo -e "│ Total: ${TOTAL_UNITS:-0} unidades"
echo -e "│ Activas: ${ACTIVE_UNITS:-0} (ultimo 5 min)"
@@ -190,7 +190,7 @@ echo ""
# ---------------------------------------------
echo -e "${BLUE}┌─ Ultimos Errores (API) ────────────────────────────────────┐${NC}"
ERRORS=$(journalctl -u adan-api --since "1 hour ago" -p err --no-pager -q 2>/dev/null | tail -3)
ERRORS=$(journalctl -u atlas-api --since "1 hour ago" -p err --no-pager -q 2>/dev/null | tail -3)
if [[ -z "$ERRORS" ]]; then
echo -e "${GREEN}Sin errores en la ultima hora${NC}"

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# ============================================
# Sistema de ADAN - Script de Actualizacion
# Sistema de ATLAS - Script de Actualizacion
# ============================================
# Actualiza la aplicacion a la ultima version
#
@@ -29,7 +29,7 @@ NC='\033[0m'
# ---------------------------------------------
# Variables
# ---------------------------------------------
INSTALL_DIR="${INSTALL_DIR:-/opt/adan}"
INSTALL_DIR="${INSTALL_DIR:-/opt/atlas}"
REPO_BRANCH="${REPO_BRANCH:-main}"
BACKUP_BEFORE_UPDATE=true
FORCE_UPDATE=false
@@ -308,11 +308,11 @@ restart_services() {
log_info "Reiniciando servicios..."
if [[ "$UPDATE_BACKEND" == "true" ]]; then
systemctl restart adan-api 2>/dev/null && log_success "adan-api reiniciado" || log_warn "adan-api no existe"
systemctl restart atlas-api 2>/dev/null && log_success "atlas-api reiniciado" || log_warn "atlas-api no existe"
fi
if [[ "$UPDATE_FRONTEND" == "true" ]]; then
systemctl restart adan-web 2>/dev/null && log_success "adan-web reiniciado" || log_warn "adan-web no existe"
systemctl restart atlas-web 2>/dev/null && log_success "atlas-web reiniciado" || log_warn "atlas-web no existe"
fi
}
@@ -328,19 +328,19 @@ verify_services() {
sleep 3
if [[ "$UPDATE_BACKEND" == "true" ]]; then
if systemctl is-active --quiet adan-api; then
log_success "adan-api: activo"
if systemctl is-active --quiet atlas-api; then
log_success "atlas-api: activo"
else
log_error "adan-api: inactivo"
log_error "atlas-api: inactivo"
all_ok=false
fi
fi
if [[ "$UPDATE_FRONTEND" == "true" ]]; then
if systemctl is-active --quiet adan-web; then
log_success "adan-web: activo"
if systemctl is-active --quiet atlas-web; then
log_success "atlas-web: activo"
else
log_error "adan-web: inactivo"
log_error "atlas-web: inactivo"
all_ok=false
fi
fi
@@ -357,8 +357,8 @@ verify_services() {
if [[ "$all_ok" == "false" ]]; then
log_error "Algunos servicios fallaron. Revisa los logs:"
echo " journalctl -u adan-api -n 50"
echo " journalctl -u adan-web -n 50"
echo " journalctl -u atlas-api -n 50"
echo " journalctl -u atlas-web -n 50"
return 1
fi
@@ -412,8 +412,8 @@ show_summary() {
echo "Branch: $REPO_BRANCH"
echo ""
echo "Servicios:"
systemctl is-active adan-api 2>/dev/null && echo " - adan-api: activo" || echo " - adan-api: inactivo"
systemctl is-active adan-web 2>/dev/null && echo " - adan-web: activo" || echo " - adan-web: inactivo"
systemctl is-active atlas-api 2>/dev/null && echo " - atlas-api: activo" || echo " - atlas-api: inactivo"
systemctl is-active atlas-web 2>/dev/null && echo " - atlas-web: activo" || echo " - atlas-web: inactivo"
echo ""
}
@@ -425,7 +425,7 @@ main() {
echo ""
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE} ACTUALIZANDO SISTEMA DE ADAN${NC}"
echo -e "${BLUE} ACTUALIZANDO SISTEMA DE ATLAS${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
echo "Branch: $REPO_BRANCH"