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:
@@ -1,6 +1,6 @@
|
||||
# Deploy - Sistema de ADAN
|
||||
# Deploy - Sistema de ATLAS
|
||||
|
||||
Scripts y configuraciones para desplegar el sistema de adan en produccion.
|
||||
Scripts y configuraciones para desplegar el sistema de atlas en produccion.
|
||||
|
||||
## Estructura
|
||||
|
||||
@@ -17,8 +17,8 @@ deploy/
|
||||
│ ├── status.sh # Estado del sistema
|
||||
│ └── logs.sh # Visor de logs
|
||||
├── services/ # Servicios systemd
|
||||
│ ├── adan-api.service
|
||||
│ ├── adan-web.service
|
||||
│ ├── atlas-api.service
|
||||
│ ├── atlas-web.service
|
||||
│ ├── mediamtx.service
|
||||
│ └── cloudflared.service
|
||||
├── cloudflare/ # Configuracion tunnel
|
||||
@@ -44,15 +44,15 @@ deploy/
|
||||
|
||||
```bash
|
||||
# Crear VM automaticamente
|
||||
./deploy/proxmox/vm-setup.sh --vmid 200 --name adan --memory 8192
|
||||
./deploy/proxmox/vm-setup.sh --vmid 200 --name atlas --memory 8192
|
||||
```
|
||||
|
||||
### 2. En Ubuntu
|
||||
|
||||
```bash
|
||||
# Clonar repositorio
|
||||
git clone https://github.com/tuorg/adan.git /opt/adan
|
||||
cd /opt/adan
|
||||
git clone https://github.com/tuorg/atlas.git /opt/atlas
|
||||
cd /opt/atlas
|
||||
|
||||
# Ejecutar instalador
|
||||
sudo ./deploy/scripts/install.sh
|
||||
@@ -101,18 +101,18 @@ cloudflared tunnel login
|
||||
|
||||
3. Crear tunnel:
|
||||
```bash
|
||||
cloudflared tunnel create adan
|
||||
cloudflared tunnel create atlas
|
||||
```
|
||||
|
||||
4. Configurar DNS:
|
||||
```bash
|
||||
cloudflared tunnel route dns adan adan.tudominio.com
|
||||
cloudflared tunnel route dns atlas atlas.tudominio.com
|
||||
```
|
||||
|
||||
5. Copiar config y habilitar servicio:
|
||||
```bash
|
||||
mkdir -p /etc/cloudflared
|
||||
cp /opt/adan/deploy/cloudflare/config.yml /etc/cloudflared/
|
||||
cp /opt/atlas/deploy/cloudflare/config.yml /etc/cloudflared/
|
||||
systemctl enable cloudflared
|
||||
systemctl start cloudflared
|
||||
```
|
||||
@@ -144,7 +144,7 @@ Backups automaticos: diariamente a las 3 AM (configurado por install.sh)
|
||||
./deploy/scripts/restore.sh --latest
|
||||
|
||||
# Restaurar backup especifico
|
||||
./deploy/scripts/restore.sh --db /var/backups/adan/daily/adan_20240115_db.sql.gz
|
||||
./deploy/scripts/restore.sh --db /var/backups/atlas/daily/atlas_20240115_db.sql.gz
|
||||
```
|
||||
|
||||
### Actualizar
|
||||
@@ -164,8 +164,8 @@ Backups automaticos: diariamente a las 3 AM (configurado por install.sh)
|
||||
|
||||
| Servicio | Puerto | Descripcion |
|
||||
|----------|--------|-------------|
|
||||
| adan-api | 8000 | Backend FastAPI |
|
||||
| adan-web | 3000 | Frontend |
|
||||
| atlas-api | 8000 | Backend FastAPI |
|
||||
| atlas-web | 3000 | Frontend |
|
||||
| postgresql | 5432 | Base de datos |
|
||||
| redis | 6379 | Cache |
|
||||
| traccar | 5055 | GPS Server |
|
||||
@@ -176,17 +176,17 @@ Backups automaticos: diariamente a las 3 AM (configurado por install.sh)
|
||||
|
||||
```bash
|
||||
# Estado
|
||||
systemctl status adan-api
|
||||
systemctl status atlas-api
|
||||
|
||||
# Reiniciar
|
||||
systemctl restart adan-api
|
||||
systemctl restart atlas-api
|
||||
|
||||
# Logs
|
||||
journalctl -u adan-api -f
|
||||
journalctl -u atlas-api -f
|
||||
|
||||
# Habilitar/Deshabilitar
|
||||
systemctl enable adan-api
|
||||
systemctl disable adan-api
|
||||
systemctl enable atlas-api
|
||||
systemctl disable atlas-api
|
||||
```
|
||||
|
||||
## Seguridad
|
||||
@@ -217,13 +217,13 @@ systemctl disable adan-api
|
||||
|
||||
```bash
|
||||
# Ver logs
|
||||
journalctl -u adan-api -n 100
|
||||
journalctl -u atlas-api -n 100
|
||||
|
||||
# Verificar puerto
|
||||
ss -tlnp | grep 8000
|
||||
|
||||
# Verificar base de datos
|
||||
psql -h localhost -U adan -d adan -c "SELECT 1"
|
||||
psql -h localhost -U atlas -d atlas -c "SELECT 1"
|
||||
```
|
||||
|
||||
### Traccar no recibe datos
|
||||
@@ -243,19 +243,19 @@ nc -zv localhost 5055
|
||||
|
||||
```bash
|
||||
# Ver uso de memoria por servicio
|
||||
systemctl status adan-api --no-pager | grep Memory
|
||||
systemctl status atlas-api --no-pager | grep Memory
|
||||
|
||||
# Reducir workers de API
|
||||
# Editar /etc/systemd/system/adan-api.service
|
||||
# Editar /etc/systemd/system/atlas-api.service
|
||||
# Cambiar --workers 4 a --workers 2
|
||||
systemctl daemon-reload
|
||||
systemctl restart adan-api
|
||||
systemctl restart atlas-api
|
||||
```
|
||||
|
||||
## Credenciales
|
||||
|
||||
Las credenciales se generan durante la instalacion y se guardan en:
|
||||
- `/root/adan-credentials.txt`
|
||||
- `/root/atlas-credentials.txt`
|
||||
|
||||
**IMPORTANTE**: Guardar en lugar seguro y eliminar el archivo despues.
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
# Para usar esta configuracion:
|
||||
# 1. Instalar cloudflared: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation
|
||||
# 2. Autenticarse: cloudflared tunnel login
|
||||
# 3. Crear tunnel: cloudflared tunnel create adan
|
||||
# 3. Crear tunnel: cloudflared tunnel create atlas
|
||||
# 4. Obtener el UUID del tunnel y actualizar este archivo
|
||||
# 5. Crear registros DNS: cloudflared tunnel route dns adan adan.tudominio.com
|
||||
# 5. Crear registros DNS: cloudflared tunnel route dns atlas atlas.tudominio.com
|
||||
# 6. Copiar credenciales a /etc/cloudflared/
|
||||
# ============================================
|
||||
|
||||
@@ -33,29 +33,29 @@ ingress:
|
||||
# ----------------------------------------
|
||||
# API Backend - /api/* y /docs
|
||||
# ----------------------------------------
|
||||
- hostname: adan.tudominio.com
|
||||
- hostname: atlas.tudominio.com
|
||||
path: /api/*
|
||||
service: http://localhost:8000
|
||||
originRequest:
|
||||
connectTimeout: 30s
|
||||
noTLSVerify: false
|
||||
|
||||
- hostname: adan.tudominio.com
|
||||
- hostname: atlas.tudominio.com
|
||||
path: /docs
|
||||
service: http://localhost:8000
|
||||
|
||||
- hostname: adan.tudominio.com
|
||||
- hostname: atlas.tudominio.com
|
||||
path: /redoc
|
||||
service: http://localhost:8000
|
||||
|
||||
- hostname: adan.tudominio.com
|
||||
- hostname: atlas.tudominio.com
|
||||
path: /openapi.json
|
||||
service: http://localhost:8000
|
||||
|
||||
# ----------------------------------------
|
||||
# WebSocket - /ws/*
|
||||
# ----------------------------------------
|
||||
- hostname: adan.tudominio.com
|
||||
- hostname: atlas.tudominio.com
|
||||
path: /ws/*
|
||||
service: http://localhost:8000
|
||||
originRequest:
|
||||
@@ -68,20 +68,20 @@ ingress:
|
||||
# ----------------------------------------
|
||||
# Video Streaming - WebRTC/HLS
|
||||
# ----------------------------------------
|
||||
- hostname: stream.adan.tudominio.com
|
||||
- hostname: stream.atlas.tudominio.com
|
||||
path: /*
|
||||
service: http://localhost:8889
|
||||
originRequest:
|
||||
noTLSVerify: false
|
||||
|
||||
- hostname: hls.adan.tudominio.com
|
||||
- hostname: hls.atlas.tudominio.com
|
||||
path: /*
|
||||
service: http://localhost:8888
|
||||
|
||||
# ----------------------------------------
|
||||
# API de MediaMTX (interno/admin)
|
||||
# ----------------------------------------
|
||||
- hostname: mediamtx-api.adan.tudominio.com
|
||||
- hostname: mediamtx-api.atlas.tudominio.com
|
||||
path: /*
|
||||
service: http://localhost:9997
|
||||
originRequest:
|
||||
@@ -91,7 +91,7 @@ ingress:
|
||||
# ----------------------------------------
|
||||
# Frontend Web - Todo lo demas
|
||||
# ----------------------------------------
|
||||
- hostname: adan.tudominio.com
|
||||
- hostname: atlas.tudominio.com
|
||||
service: http://localhost:3000
|
||||
originRequest:
|
||||
noTLSVerify: false
|
||||
@@ -106,9 +106,9 @@ ingress:
|
||||
# ============================================
|
||||
#
|
||||
# DOMINIOS RECOMENDADOS:
|
||||
# - adan.tudominio.com -> Frontend + API
|
||||
# - stream.adan.tudominio.com -> Video WebRTC
|
||||
# - hls.adan.tudominio.com -> Video HLS
|
||||
# - atlas.tudominio.com -> Frontend + API
|
||||
# - stream.atlas.tudominio.com -> Video WebRTC
|
||||
# - hls.atlas.tudominio.com -> Video HLS
|
||||
#
|
||||
# INSTALACION RAPIDA CON TOKEN:
|
||||
# Si prefieres usar token en lugar de archivo de config:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# ============================================
|
||||
# MediaMTX - Configuracion para Sistema de ADAN
|
||||
# MediaMTX - Configuracion para Sistema de ATLAS
|
||||
# ============================================
|
||||
# Documentacion: https://github.com/bluenviron/mediamtx
|
||||
#
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#!/bin/bash
|
||||
# ============================================
|
||||
# Sistema de ADAN - Crear VM en Proxmox
|
||||
# Sistema de ATLAS - Crear VM en Proxmox
|
||||
# ============================================
|
||||
# Este script crea una VM en Proxmox VE lista para
|
||||
# instalar el sistema de adan
|
||||
# instalar el sistema de atlas
|
||||
#
|
||||
# Ejecutar en el HOST de Proxmox (no en una VM)
|
||||
#
|
||||
@@ -33,7 +33,7 @@ NC='\033[0m'
|
||||
|
||||
# VM
|
||||
VMID="${VMID:-200}"
|
||||
VM_NAME="${VM_NAME:-adan}"
|
||||
VM_NAME="${VM_NAME:-atlas}"
|
||||
VM_MEMORY="${VM_MEMORY:-4096}" # MB
|
||||
VM_CORES="${VM_CORES:-4}"
|
||||
VM_DISK_SIZE="${VM_DISK_SIZE:-50}" # GB
|
||||
@@ -57,7 +57,7 @@ UBUNTU_URL="https://releases.ubuntu.com/22.04/${UBUNTU_ISO}"
|
||||
|
||||
# Cloud-init (para configuracion automatica)
|
||||
USE_CLOUD_INIT="${USE_CLOUD_INIT:-true}"
|
||||
CI_USER="${CI_USER:-adan}"
|
||||
CI_USER="${CI_USER:-atlas}"
|
||||
CI_PASSWORD="${CI_PASSWORD:-}" # Se genera si esta vacio
|
||||
CI_SSH_KEY="${CI_SSH_KEY:-}" # Ruta a archivo de clave publica
|
||||
|
||||
@@ -153,13 +153,13 @@ parse_args() {
|
||||
}
|
||||
|
||||
show_help() {
|
||||
echo "Sistema de ADAN - Crear VM en Proxmox"
|
||||
echo "Sistema de ATLAS - Crear VM en Proxmox"
|
||||
echo ""
|
||||
echo "Uso: $0 [opciones]"
|
||||
echo ""
|
||||
echo "Opciones:"
|
||||
echo " --vmid ID ID de la VM (default: 200)"
|
||||
echo " --name NOMBRE Nombre de la VM (default: adan)"
|
||||
echo " --name NOMBRE Nombre de la VM (default: atlas)"
|
||||
echo " --memory MB Memoria RAM en MB (default: 4096)"
|
||||
echo " --cores N Numero de cores (default: 4)"
|
||||
echo " --disk GB Tamanio de disco en GB (default: 50)"
|
||||
@@ -171,7 +171,7 @@ show_help() {
|
||||
echo " --no-cloud-init No usar cloud-init"
|
||||
echo ""
|
||||
echo "Ejemplos:"
|
||||
echo " $0 --vmid 200 --name adan --memory 8192 --cores 4"
|
||||
echo " $0 --vmid 200 --name atlas --memory 8192 --cores 4"
|
||||
echo " $0 --ip 192.168.1.100/24 --gateway 192.168.1.1"
|
||||
}
|
||||
|
||||
@@ -281,7 +281,7 @@ create_vm() {
|
||||
# Crear VM base
|
||||
qm create $VMID \
|
||||
--name "$VM_NAME" \
|
||||
--description "Sistema de ADAN GPS" \
|
||||
--description "Sistema de ATLAS GPS" \
|
||||
--ostype l26 \
|
||||
--machine q35 \
|
||||
--bios ovmf \
|
||||
@@ -405,7 +405,7 @@ configure_vm_options() {
|
||||
# qm set $VMID --protection 1
|
||||
|
||||
# Tags para organizacion
|
||||
qm set $VMID --tags "adan,gps,produccion"
|
||||
qm set $VMID --tags "atlas,gps,produccion"
|
||||
|
||||
log_success "Opciones configuradas"
|
||||
}
|
||||
@@ -419,9 +419,9 @@ create_post_install_script() {
|
||||
POST_INSTALL_DIR="/var/lib/vz/snippets"
|
||||
mkdir -p "$POST_INSTALL_DIR"
|
||||
|
||||
cat > "${POST_INSTALL_DIR}/adan-postinstall.sh" <<'SCRIPT'
|
||||
cat > "${POST_INSTALL_DIR}/atlas-postinstall.sh" <<'SCRIPT'
|
||||
#!/bin/bash
|
||||
# Script de post-instalacion para Sistema de ADAN
|
||||
# Script de post-instalacion para Sistema de ATLAS
|
||||
# Ejecutar despues de instalar Ubuntu
|
||||
|
||||
set -e
|
||||
@@ -452,14 +452,14 @@ ufw --force enable
|
||||
|
||||
echo "=== Listo! ==="
|
||||
echo "Ahora ejecuta el script de instalacion:"
|
||||
echo " cd /opt && git clone REPO_URL adan"
|
||||
echo " cd adan/deploy/scripts"
|
||||
echo " cd /opt && git clone REPO_URL atlas"
|
||||
echo " cd atlas/deploy/scripts"
|
||||
echo " sudo ./install.sh"
|
||||
SCRIPT
|
||||
|
||||
chmod +x "${POST_INSTALL_DIR}/adan-postinstall.sh"
|
||||
chmod +x "${POST_INSTALL_DIR}/atlas-postinstall.sh"
|
||||
|
||||
log_success "Script creado en: ${POST_INSTALL_DIR}/adan-postinstall.sh"
|
||||
log_success "Script creado en: ${POST_INSTALL_DIR}/atlas-postinstall.sh"
|
||||
}
|
||||
|
||||
# ---------------------------------------------
|
||||
@@ -470,7 +470,7 @@ save_credentials() {
|
||||
|
||||
cat > "$CREDS_FILE" <<EOF
|
||||
# ============================================
|
||||
# Credenciales VM Sistema de ADAN
|
||||
# Credenciales VM Sistema de ATLAS
|
||||
# ============================================
|
||||
# Generadas: $(date)
|
||||
|
||||
@@ -540,8 +540,8 @@ show_summary() {
|
||||
fi
|
||||
|
||||
echo " 3. Ejecutar script de instalacion del sistema:"
|
||||
echo " git clone <REPO_URL> /opt/adan"
|
||||
echo " cd /opt/adan/deploy/scripts"
|
||||
echo " git clone <REPO_URL> /opt/atlas"
|
||||
echo " cd /opt/atlas/deploy/scripts"
|
||||
echo " sudo ./install.sh"
|
||||
echo ""
|
||||
echo -e "${GREEN}============================================${NC}"
|
||||
@@ -555,7 +555,7 @@ main() {
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}============================================${NC}"
|
||||
echo -e "${BLUE} CREAR VM PARA SISTEMA DE ADAN${NC}"
|
||||
echo -e "${BLUE} CREAR VM PARA SISTEMA DE ATLAS${NC}"
|
||||
echo -e "${BLUE}============================================${NC}"
|
||||
echo ""
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
92
deploy/scripts/install.sh
Normal file → Executable 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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 ""
|
||||
}
|
||||
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[Unit]
|
||||
Description=Sistema de ADAN - API Backend
|
||||
Documentation=https://github.com/tuorganizacion/adan
|
||||
Description=Sistema de ATLAS - API Backend
|
||||
Documentation=https://github.com/tuorganizacion/atlas
|
||||
After=network.target postgresql.service redis.service
|
||||
Wants=postgresql.service redis.service
|
||||
|
||||
@@ -8,14 +8,14 @@ Wants=postgresql.service redis.service
|
||||
Type=exec
|
||||
User=root
|
||||
Group=root
|
||||
WorkingDirectory=/opt/adan/backend
|
||||
WorkingDirectory=/opt/atlas/backend
|
||||
|
||||
# Cargar variables de entorno
|
||||
EnvironmentFile=/opt/adan/.env
|
||||
EnvironmentFile=/opt/atlas/.env
|
||||
|
||||
# Comando de inicio
|
||||
# Uvicorn con multiples workers para produccion
|
||||
ExecStart=/opt/adan/backend/venv/bin/uvicorn \
|
||||
ExecStart=/opt/atlas/backend/venv/bin/uvicorn \
|
||||
app.main:app \
|
||||
--host 0.0.0.0 \
|
||||
--port 8000 \
|
||||
@@ -44,12 +44,12 @@ NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/opt/adan /var/log/adan /tmp
|
||||
ReadWritePaths=/opt/atlas /var/log/atlas /tmp
|
||||
|
||||
# Logging
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=adan-api
|
||||
SyslogIdentifier=atlas-api
|
||||
|
||||
# Health check (systemd 253+)
|
||||
# WatchdogSec=30
|
||||
@@ -1,17 +1,17 @@
|
||||
[Unit]
|
||||
Description=Sistema de ADAN - Frontend Web
|
||||
Documentation=https://github.com/tuorganizacion/adan
|
||||
After=network.target adan-api.service
|
||||
Wants=adan-api.service
|
||||
Description=Sistema de ATLAS - Frontend Web
|
||||
Documentation=https://github.com/tuorganizacion/atlas
|
||||
After=network.target atlas-api.service
|
||||
Wants=atlas-api.service
|
||||
|
||||
[Service]
|
||||
Type=exec
|
||||
User=root
|
||||
Group=root
|
||||
WorkingDirectory=/opt/adan/frontend
|
||||
WorkingDirectory=/opt/atlas/frontend
|
||||
|
||||
# Cargar variables de entorno
|
||||
EnvironmentFile=/opt/adan/.env
|
||||
EnvironmentFile=/opt/atlas/.env
|
||||
|
||||
# Comando de inicio usando 'serve' para servir archivos estaticos
|
||||
# Opcion 1: Usando serve (recomendado para SPA React/Vue)
|
||||
@@ -22,7 +22,7 @@ ExecStart=/usr/bin/serve \
|
||||
--single
|
||||
|
||||
# Opcion 2: Si usas Next.js en modo standalone
|
||||
# ExecStart=/usr/bin/node /opt/adan/frontend/.next/standalone/server.js
|
||||
# ExecStart=/usr/bin/node /opt/atlas/frontend/.next/standalone/server.js
|
||||
|
||||
# Opcion 3: Si prefieres usar Node directamente
|
||||
# ExecStart=/usr/bin/npx serve -s dist -l 3000
|
||||
@@ -47,12 +47,12 @@ NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/opt/adan
|
||||
ReadWritePaths=/opt/atlas
|
||||
|
||||
# Logging
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=adan-web
|
||||
SyslogIdentifier=atlas-web
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,5 +1,5 @@
|
||||
[Unit]
|
||||
Description=Cloudflare Tunnel - Sistema de ADAN
|
||||
Description=Cloudflare Tunnel - Sistema de ATLAS
|
||||
Documentation=https://developers.cloudflare.com/cloudflare-one/connections/connect-apps
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
@@ -20,7 +20,7 @@ ExecStart=/usr/local/bin/cloudflared tunnel --no-autoupdate run --token ${CLOUDF
|
||||
# ExecStart=/usr/local/bin/cloudflared tunnel --config /etc/cloudflared/config.yml run
|
||||
|
||||
# Cargar variables de entorno
|
||||
EnvironmentFile=/opt/adan/.env
|
||||
EnvironmentFile=/opt/atlas/.env
|
||||
|
||||
# Reinicio automatico
|
||||
Restart=always
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<!--
|
||||
============================================
|
||||
Traccar Server - Configuracion para Sistema de ADAN
|
||||
Traccar Server - Configuracion para Sistema de ATLAS
|
||||
============================================
|
||||
Documentacion: https://www.traccar.org/configuration-file/
|
||||
|
||||
@@ -37,7 +37,7 @@ Esta configuracion:
|
||||
|
||||
<entry key='database.driver'>org.postgresql.Driver</entry>
|
||||
<entry key='database.url'>jdbc:postgresql://localhost:5432/traccar</entry>
|
||||
<entry key='database.user'>adan</entry>
|
||||
<entry key='database.user'>atlas</entry>
|
||||
<entry key='database.password'>POSTGRES_PASSWORD</entry>
|
||||
|
||||
<!-- Pool de conexiones -->
|
||||
|
||||
Reference in New Issue
Block a user