Panel Alexamigo
← Memory

vps-services.md

# VPS Services - Configuración Completa

> Archivo de referencia. Solo leer cuando se necesite información detallada de servicios VPS.

## VPS 1 — Hetzner "Stargate" (Propio)

**Specs:** CX53 - 16 vCPU, 32GB RAM, 320GB SSD, Helsinki
**IP:** `204.168.170.41`
**SSH:** `ssh ubuntu@204.168.170.41`
**Pass ubuntu:** `BeeVPS2026!`
**Hetzner root pass:** `cR3CL9UMvUkx` (reset panel, consola web)
**Acceso móvil:** Termius (iPhone) con clave SSH ed25519 instalada

**Nota:** Solo existe `/home/ubuntu/proyectos-cloud/` en VPS

## VPS 2 — AEKIOS (Empresa, antiguo OVH)

**IP:** `57.131.46.102`
**SSH:** `ssh ubuntu@57.131.46.102` (Auth: clave SSH ed25519 local)
**Specs:** 11GB RAM, 96GB SSD
**Panel:** OVH Manager
**Detalle completo:** ver `vps-ovh.md`

**Local Desktop:** `C:\Users\alexa\Desktop\PROYECTOS\` (solo proyectos locales, NO sincroniza con VPS)

---

## Servicios VPS (`/home/ubuntu/proyectos-cloud/`)

| Carpeta | Descripción | Puerto | URL | Service |
|---------|-------------|--------|-----|---------|
| `prospector` | Lead gen (Node+Express+React) | 3005 | prospector.beepeek.com | `systemctl restart prospector` |
| `hub-beepeek` | Monorepo Turborepo (ver apps abajo) | 3000 | hub.beepeek.com | `systemctl restart hub-beepeek` |
| `auditoria-seo` | App auditorías SEO (Python/Flask) | 5001 | auditoriaseogratis.es | `systemctl restart auditoria-seo` |
| `sf-automation` | Scripts Screaming Frog (`sf_audit.py`) | - | - | - |
| `decisiona-react` | Decisiona frontend React | 5000 | plus-decisiona en nginx | `decisiona.service` |
| `crm-beepeek` | CRM Beepeek | 5007 | - | `systemctl restart crm-beepeek` |
| `vps-panel` | Panel control VPS (FastAPI+Jinja2) | 8091 | panel.beepeek.com | `systemctl restart vps-panel` |
| `factura-ocr` | Invoice OCR (FastAPI+Gemini+PaddleOCR) | 5010 | invoice.beepeek.com | `systemctl restart factura-ocr` |
| `portal-clientes` | PWA Portal Clientes (FastAPI+React+Vite) | 5015 | clientes.alexamigo.com | `systemctl restart portal-clientes` |
| `transcrip-beepeek` | Transcription Web App (FastAPI+Jinja2+SQLite) | 5020 | transcrip.beepeek.com | `systemctl restart transcrip-beepeek` |
| `transcript-tool` | CLI transcripción (yt-dlp+RunPod) | - | - | - |
| `starlord` | Traffic Simulation (FastAPI+Patchright) | 5025 | starlord.beepeek.com (DNS pending) | `systemctl restart starlord` |
| `Jarvis` | AI Agent ejecutor (Gemini FC + tools VPS) | 8050 | jarvis.beepeek.com (DNS pending) | `systemctl restart jarvis` |
| `NAL3` | KW Research LOAFA/NAL3 (Python scripts + docs) | - | - | - |
| `nexuslex` | NexusLex - Asistente Legal IA RAG (FastAPI+React+ChromaDB+OpenAI) | 5040 | navas.alexamigo.com | `systemctl restart nexuslex` |
| `claude-peak` | Claude Peak Hours Monitor (FastAPI+Jinja2+ipapi.co) | 5035 | claudepeak.beepeek.com | `systemctl restart claude-peak` |
| `hub-beepeek/apps/llm/server` | BEE LLM Processor (Node.js Express, reemplaza Supabase Edge Functions) | 5045 | hub.beepeek.com/api/llm/ | `systemctl restart bee-llm-processor` |
| `alexamigo.com` | Web personal + blog PHP custom (Nginx static+PHP-FPM) | 443 | alexamigo.com | Nginx (sites-enabled/alexamigo.com) |

---

## Hub Beepeek Apps (`/home/ubuntu/proyectos-cloud/hub-beepeek/apps/`)

| App | Descripción |
|-----|-------------|
| `sentinel` | Brand Reputation Monitor (FastAPI, puerto 5005, sentinel.beepeek.com) |
| `hub` | Hub principal (puerto 3000) |
| `llm` | BEE-LLM |
| `news` | BEE-News |
| `rank` | BEE-Rank |
| `local` | BEE-Local (Local SEO Grid Tracker). DB: PostgreSQL local (hub_beepeek). NO Supabase. ValueSERP proxy + presets en Express local. Cron miércoles 03:00. |
| `detector` | BEE-Detector |
| `BEE - Content` | BEE-Content |
| `BEE - Serps` | BEE-Serps |
| `BEE - Nectar` | BEE-Nectar |
| `BEE - Mention` | BEE-Mention (AI Brand Mention Monitor). DB: PostgreSQL local via PostgREST. Cron diario 07:00. URL: hub.beepeek.com/tools/mention |

---

## Hub Beepeek — DB y Crons

**DB:** PostgreSQL local `hub_beepeek` (PostgREST en puerto 3001). NO Supabase cloud.
**PostgREST conf:** `/home/ubuntu/proyectos-cloud/postgrest/postgrest.conf`
**Tablas:** 94 tablas (clients, scans, competitors, tracked_keywords, scheduled_presets, casual_scans, ga_properties, ga_traffic_data, seo_metrics, sf_audits, sentinel_*, serp_*, visibility_*, etc.)

### Crons Automáticos (node-cron, Europe/Madrid)

| Cron | Schedule | Descripción |
|------|----------|-------------|
| SERPs | `0 2 * * *` (diario 02:00) | Captura SERPs de todos los clientes |
| SF Audits | `0 3 * * 1` (lunes 03:00) | Auditorías Screaming Frog semanales |
| Local Presets | `0 3 * * 3` (miércoles 03:00) | Ejecuta presets BEE-Local (grid scans) |
| Sentinel | `0 4 * * *` (diario 04:00) | Scan reputación de marca |
| GA4 Sync | `0 5 * * *` (diario 05:00) | Sincroniza datos GA4 de todos los clientes |
| Visibility | `0 6 * * *` (diario 06:00) | Captura índice de visibilidad |
| Mention | `0 7 * * *` (diario 07:00) | Scan menciones marca en ChatGPT + Gemini |

---

## Comandos Comunes

### Restart servicios
```bash
sudo systemctl restart prospector
sudo systemctl restart hub-beepeek
sudo systemctl restart factura-ocr
sudo systemctl restart portal-clientes
sudo systemctl restart transcrip-beepeek
sudo systemctl restart nexuslex
sudo systemctl restart claude-peak
sudo systemctl restart jarvis
```

### Ver logs (filtrado para errores)
```bash
journalctl -u <service-name> -p err -n 50
journalctl -u <service-name> | grep -E "(ERROR|Exception|Failed)" | tail -20
```

### Nginx
```bash
sudo nginx -t  # test config
sudo systemctl reload nginx
sudo tail -f /var/log/nginx/error.log | grep -v "robots.txt"
```