A
Dominios
{{ domains.length }}
Bases de Datos
{{ databases.length }}
Disco Usado
12 MB
PHP
8.3
🌐 Dominios
| Dominio | PHP | Estado | Backend |
|---|---|---|---|
| {{ d.domain }} | {{ d.php }} | {{ d.status }} | {{ d.backend }} |
No hay dominios aún. Añade uno para empezar.
🗄️ Bases de Datos
| Nombre | Usuario | Host | Tamaño |
|---|---|---|---|
| {{ db.name }} | {{ db.user }} | {{ db.host }} | {{ db.size }} |
No hay bases de datos.
| Dominio | PHP | Estado | Disco | Acción |
|---|---|---|---|---|
| {{ d.domain }} | {{ d.php }} | {{ d.status }} | {{ d.disk }} |
| Base de Datos | Usuario | Host | Tamaño | Acción |
|---|---|---|---|---|
| {{ db.name }} | {{ db.user }} | {{ db.host }} | {{ db.size }} |
{{ m.name }}
{{ m.desc }}
✅ Instalado
Información del Sistema
{{ item.label }}
{{ item.value }}
🎨 Apariencia
Signatures
{{ security.scanner.signatures }}
Files Scanned
{{ security.scanner.files }}
Threats
{{ security.scanner.threats || 0 }}
🔍 Malware Scan Results
| Archivo | Tipo | Severidad | Signature |
|---|---|---|---|
| {{ r.file }} | {{ r.type }} | {{ r.severity || 'medium' }} | {{ r.signature || r.match }} |
No se detectaron amenazas. Todo limpio 🧹
Bloqueadas
{{ security.firewall.blocked.length }}
Whitelist
{{ security.firewall.whitelist.length }}
Feeds Activas
{{ security.firewall.stats.feeds || 3 }}
🚫 IPs Bloqueadas
| IP | Razón | Bloqueada | Expira |
|---|---|---|---|
{{ b.ip }} |
{{ b.reason }} | {{ b.blocked_at }} | {{ b.expires }} |
No hay IPs bloqueadas
✅ Whitelist
| IP | Nota |
|---|---|
{{ w.ip }} |
{{ w.note || '—' }} |
No hay IPs en whitelist
Reglas Activas
{{ security.waf.stats.builtin_rules || 15 }}
Reglas AI
{{ security.waf.stats.ai_rules || 0 }}
Bloqueos
{{ security.waf.stats.total_blocks || 0 }}
🛡️ Bloques Recientes
| IP | Regla | Fecha |
|---|---|---|
{{ b.ip }} |
{{ b.rule }} | {{ b.time }} |
No hay bloqueos recientes
Archivos Monitorizados
{{ security.defender.stats.files_monitored || 0 }}
Alertas Totales
{{ security.defender.stats.total_alerts || 0 }}
Último Scan
{{ security.defender.stats.last_scan || '—' }}
📁 Alertas de Integridad
| Archivo | Tipo | Detectado | Acción |
|---|---|---|---|
| {{ a.filename || a.file }} | {{ a.type }} | {{ a.detected }} | {{ a.action || '—' }} |
Sin alertas de integridad ✅
Requests (ventana)
{{ security.dos.stats.total_requests || 0 }}
IPs Únicas
{{ security.dos.stats.unique_ips || 0 }}
Atacantes Bloqueados
{{ security.dos.stats.blocked_attackers || 0 }}
🚫 Atacantes Bloqueados
| IP | Razón | Bloqueado | Expira |
|---|---|---|---|
{{ ip }} |
{{ b.reason }} | {{ b.blocked_at }} | {{ b.expires }} |
No hay atacantes bloqueados
📊 Top Talkers
| IP | Requests | RPS |
|---|---|---|
{{ t.ip }} |
{{ t.requests }} | {{ t.rps }} |
Sin tráfico registrado
Patrones URL
{{ security.shield.patterns.url_patterns || 8 }}
Patrones UA
{{ security.shield.patterns.ua_patterns || 3 }}
Patrones Ref
{{ security.shield.patterns.referrer_patterns || 2 }}
🔬 Analizar Línea de Log
{{ security.shield.result.data.detected ? '⚠️ Amenaza Detectada' : '✅ Limpio' }}
URLs: {{ security.shield.result.data.urls.join(', ') }}
Patrones: {{ security.shield.result.data.patterns.join(', ') }}
Tipo: {{ security.shield.result.data.type }}
Sites
{{ wpData.stats.total_sites || 0 }}
Activos
{{ wpData.stats.active_sites || 0 }}
Plugins
{{ wpData.stats.total_plugins || 0 }}
Latest WP
{{ wpData.stats.latest_wp || '—' }}
🌐 WordPress Sites
| Dominio | WP | PHP | Plugins | Estado | Acción |
|---|---|---|---|---|---|
| {{ s.domain }} | {{ s.version }} | {{ s.health?.php_compat?.current || '—' }} | {{ s.plugins }} | {{ s.status }} |
No se encontraron instalaciones WordPress.
➕ Instalar WordPress
⚠️ Dev mode: simula la estructura. Producción requiere WP-CLI.
Selecciona un sitio WordPress primero 👆
🧩 Plugins — {{ wpData.selectedSite }}
| Plugin | Versión | Autor | Acción |
|---|---|---|---|
| {{ p.name }} | {{ p.version }} | {{ p.author || '—' }} |
No hay plugins instalados
Selecciona un sitio WordPress primero 👆
🎨 Temas — {{ wpData.selectedSite }}
| Tema | Versión | Autor |
|---|---|---|
| {{ t.name }} | {{ t.version }} | {{ t.author || '—' }} |
No hay temas instalados
Selecciona un sitio WordPress primero 👆
🔄 Actualizaciones — {{ wpData.selectedSite }}
Versión Actual
{{ wpData.stats.update_info.current }}
Última Versión
{{ wpData.stats.update_info.latest }}
Estado
{{ wpData.stats.update_info.needs_update ? '⚠️ Update disponible' : '✅ Actualizado' }}
Haz clic en Verificar para buscar actualizaciones
Selecciona un sitio WordPress primero 👆
📋 Staging — {{ wpData.selectedSite }}
Crea una copia de staging para probar cambios sin afectar la versión en producción.
⚠️ La copia incluye todos los archivos excepto /wp-content/uploads.
💾 Historial de Backups
| Tipo | Site | Fecha | Tamaño | Archivos | Acción |
|---|---|---|---|---|---|
| {{ b.type }} | {{ b.site }} | {{ b.created }} | {{ formatSize(b.total_size) }} | {{ b.files_count }} |
No hay backups — crea uno para empezar
➕ Crear Backup
⚠️ Dev mode: DB dump simulado. Producción usa mysqldump + zip.
⏰ Horarios Programados
| Site | Tipo | Frecuencia | Hora | Próximo | Estado | |
|---|---|---|---|---|---|---|
| {{ s.site }} | {{ s.type }} | {{ s.frequency }} | {{ s.time }} | {{ s.next_run }} | {{ s.enabled ? 'Activo' : 'Pausado' }} |
No hay horarios configurados
➕ Programar Backup
Total Backups
{{ backupData.stats.total_backups || 0 }}
Tamaño Total
{{ backupData.stats.total_size || '0 B' }}
Sites con Backup
{{ backupData.stats.sites_backed_up || 0 }}
Horarios Activos
{{ backupData.stats.active_schedules || 0 }}
Último Backup
{{ backupData.stats.last_backup || 'Nunca' }}
Disco Libre
{{ backupData.stats.storage_free_mb || 0 }} MB
Full
{{ backupData.stats.types?.full || 0 }}
Incremental
{{ backupData.stats.types?.incremental || 0 }}
💾 Almacenamiento
Directorio
{{ backupData.stats.storage_dir || '—' }}
Facturas
{{ billingData.stats.total_invoices || 0 }}
Ingresos
{{ billingData.stats.revenue || '0.00' }} €
Suscripciones Activas
{{ billingData.stats.active_subscriptions || 0 }}
MRR
{{ billingData.stats.mrr || '0.00' }} €
📄 Facturas
| # | Cliente | Total | Estado | Fecha |
|---|---|---|---|---|
| {{ inv.id }} | {{ inv.client }} | {{ inv.total }} {{ inv.currency }} | {{ inv.status }} | {{ inv.issue_date }} |
No hay facturas
🔄 Suscripciones
| ID | Cliente | Plan | Importe | Estado |
|---|---|---|---|---|
| {{ s.id }} | {{ s.client }} | {{ s.plan }} | {{ s.amount }} {{ s.currency }}/{{ s.interval }} | {{ s.status }} |
No hay suscripciones
💳 Transacciones
| Gateway | Importe | Estado | Fecha |
|---|---|---|---|
| {{ tx.gateway }} | {{ tx.amount }} {{ tx.currency }} | {{ tx.status }} | {{ tx.created }} |
No hay transacciones
🌐 Zonas DNS
{{ z.domain }} TTL: {{ z.ttl }}s | Serial: {{ z.serial }} | NS: {{ z.nameservers.join(', ') }}
| Tipo | Nombre | Valor | TTL |
|---|---|---|---|
| {{ r.type }} | {{ r.name }} | {{ r.ttl }}s |
No hay zonas — crea una
➕ Crear Zona
🔒 Certificados SSL
| Dominio | Emisor | Expira | Días | Estado | |
|---|---|---|---|---|---|
| {{ c.domains[0] }} | {{ c.issuer }} | {{ c.expires }} | {{ c.days_left }} | {{ c.status }} |
No hay certificados
➕ Emitir Certificado
⚠️ Dev mode: certificado simulado. Producción: Let's Encrypt / certbot.
📧 Cuentas
| Dominio | Quota | Uso | Estado | |
|---|---|---|---|---|
| {{ a.email }} | {{ a.domain }} | {{ a.quota_mb }} MB | {{ a.usage_mb }} MB | {{ a.status }} |
No hay cuentas
➕ Crear Cuenta
↗️ Forwarders
| Origen | Destino |
|---|---|
| {{ f.source }} | {{ f.destination }} |
No hay forwarders
🤖 Auto-Responders
{{ a.email }}: {{ a.subject }} — {{ a.active ? '✅ Activo' : '⏸️ Pausado' }}
No hay auto-responders
✅ Uptime Checks
| URL | Status | Code | Time | Uptime | Last |
|---|---|---|---|---|---|
| {{ c.label || c.url }} | {{ c.status }} | {{ c.last_code }} | {{ c.last_time_ms }}ms | {{ c.uptime_pct }}% | {{ c.last_check }} |
No hay checks — añade uno
💻 Recursos del Sistema
CPU Load
{{ monData.resources.cpu?.load_1m?.toFixed(1) || '-' }}
Memory Used
{{ monData.resources.memory?.used_pct || '-' }}%
Disk Used
{{ monData.resources.disk?.used_pct || '-' }}%
Uptime
{{ Math.round(monData.resources.uptime_days || 0) }}d
PHP {{ monData.resources.php?.version }}
Disk {{ monData.resources.disk?.free_gb }}G free / {{ monData.resources.disk?.total_gb }}G
{{ monData.resources.php?.memory_limit }} memory
🔔 Alertas ({{ monData.alerts?.unacknowledged || 0 }} sin leer)
{{ a.type }} {{ a.message }} {{ a.created }}
Sin alertas ✅
🔗 Conexiones SSH
| Host | Usuario | Tipo | Estado | Conectado | |
|---|---|---|---|---|---|
| {{ c.host }}:{{ c.port }} {{ c.server_type }} {{ c.plesk_version }} | {{ c.user }} | {{ c.auth_type }} | {{ c.status }} | {{ c.connected_at }} |
Sin conexiones — conecta a un servidor Plesk
🔍 Descubrimiento — {{ migratorData.discovery?.host || 'Selecciona una conexión' }}
Conecta primero y haz clic en 🔍 en la pestaña Conexiones
Dominios
{{ migratorData.discovery.domains.length }}
Emails
{{ migratorData.discovery.email_accounts.length }}
Bases Datos
{{ migratorData.discovery.databases.length }}
Tamaño Total
{{ migratorData.discovery.total_size_mb }} MB
📁 Dominios
| Dominio | Tipo | Tamaño | PHP | SSL | |
|---|---|---|---|---|---|
| {{ d.domain }} | {{ d.type }} | {{ d.size_mb }} MB | {{ d.php_version }} | {{ d.ssl ? '✅' : '❌' }} |
🗄️ Bases de Datos
| Nombre | Motor | Tablas | Tamaño | |
|---|---|---|---|---|
| {{ db.name }} | {{ db.engine }} | {{ db.tables }} | {{ db.size_mb }} MB |
📧 Cuentas de Correo
| Quota | Uso | ||
|---|---|---|---|
| {{ e.address }} | {{ e.quota_mb }} MB | {{ e.usage_mb }} MB |
📦 Migraciones ({{ migratorData.migrations.length }})
| ID | Tipo | Items | Tamaño | Estado | Fecha | |
|---|---|---|---|---|---|---|
| {{ m.id }} | {{ m.type === 'export' ? '📤 Export' : '📥 Import' }} | {{ m.total_items }} | {{ m.size }} | {{ m.status }} | {{ m.created_at }} |
Sin migraciones — conecta y descubre primero
📤 Exportar desde ai360CP
⚠️ Emergencia: Empaqueta webs, emails y DBs para migrar a otro servidor. Usar solo si el servidor actual va a apagarse.
Export ID: {{ exportResult.id }}
Tamaño: {{ exportResult.size }}
Archivo:
{{ exportResult.file }}{{ instr }}
📋 Log de Migración
{{ l.timestamp }}
[{{ l.action }}] {{ l.message }}
Sin actividad