Manual de Configuración y Operación
Guía técnica completa para configurar AngelSQLServer como Servidor Central (Master), enlazar Nodos Clientes remotos y publicar aplicaciones web mediante cuentas AngelSQL.
1. ¿Qué es AngelSQLServer?
AngelSQLServer es una plataforma de software todo-en-uno que unifica cuatro componentes esenciales en un único proceso ejecutable (.NET 10):
- Servidor Web & Proxy Inverso HTTP/HTTPS: Despacha contenido estático, APIs y enruta dinámicamente a instancias aisladas.
- Motor AngelDB: Base de datos relacional basada en SQLite con soporte nativo para particionamiento dinámico por rangos de fecha y consultas JSON.
- Script Engine C# (.csx): Ejecución de backend en caliente con acceso total al motor y librerías sin recompilar.
- AngelRemote / AngelProxy Clúster: Red privada con túneles TLS bidireccionales para enlazar sucursales a través de Internet sin abrir puertos en el módem.
2. Modos de Operación
Modo Servidor Master
Opera en un servidor o VPS con acceso a Internet. Es el receptor de nombres de dominio y certificados SSL.
- Escucha peticiones en puertos 80 y 443.
- Aloja y administra aplicaciones locales independientes.
- Recibe túneles seguros de clientes remotos en el puerto 4429.
Modo Nodo Cliente (Sucursal)
Opera dentro de tiendas, farmacias, cajas de cobro o servidores locales con conexión a Internet estándar.
- Cero configuración de router: No requiere IP fija ni abrir puertos.
- Abre una conexión TCP TLS saliente hacia el Master.
- Responde consultas de ventas, inventarios y archivos en tiempo real.
3. Configuración del Servidor Master
3.1 Puertos y Servicios Principales
| Puerto | Protocolo | Uso y Descripción |
|---|---|---|
80 |
HTTP | Redirección a HTTPS y validación de certificados Let's Encrypt |
443 |
HTTPS | Tráfico Web Cifrado para todas las aplicaciones y dominios |
4428 |
HTTP / Local | Panel de Administración y Control Maestro de AngelSQL |
4429 |
TCP + TLS | Concentrador de Clúster para Nodos Clientes y Sucursales |
3.2 Registro de Aplicaciones Locales
Cada aplicación web (por ejemplo, ContabilidadMyB o mybusinesspos) se registra indicando su directorio físico. El servidor asigna un puerto Kestrel local dinámico para aislarla por completo.
// Comando interno para registrar una aplicación
AddApp("ContabilidadMyB", "D:/DesarrolloAngelSQL/ContabilidadMyB");
4. Enrutamiento Inteligente y Dominios
El enrutador universal centralizado de AngelSQL resuelve las solicitudes automáticamente bajo las siguientes reglas:
Ruta Amigable Directa
Al acceder a https://angelsql.net/ContabilidadMyB/, el servidor identifica que el primer segmento corresponde a la app local, remueve el prefijo y entrega el contenido de wwwroot/.
Redirección Canónica Automática
Si el usuario escribe https://angelsql.net/ContabilidadMyB (sin barra final), el servidor emite una redirección HTTP 302 hacia /ContabilidadMyB/ para asegurar que los scripts y hojas de estilo relativas (js/main.js, css/styles.css) carguen correctamente.
Resolución por Encabezado Referer
Si una página realiza peticiones o llamadas a servicios (ej. /API o AngelPOST), el servidor examina el encabezado Referer del navegador para identificar la app de origen y redirigir el tráfico automáticamente.
5. Configuración de Nodos Cliente (Sucursales)
Para enlazar una sucursal remota al Master sin requerir apertura de puertos en el módem, se crea el archivo cluster_client.json en la máquina cliente:
{
"MasterHost": "angelsql.net",
"MasterPort": 4429,
"TenantId": "e1b2c3d4-0000-0000-0000-000000000001",
"ClientId": "sucursal_norte",
"SecretKey": "TuClaveCriptograficaSegura123!",
"UseTls": true
}
https://angelsql.net/--sucursal_norte/ será canalizada en tiempo real a la máquina de la sucursal.
6. Exposición a Internet y Cuentas AngelSQL
6.1 Arquitectura Frontend Sin Configuración (Zero-Config)
En cada aplicación web, las llamadas al backend se resuelven mediante rutas relativas nativas en main.js:
const url = new URL('AngelPOST', document.baseURI || window.location.href).href;
localhost, en la red local (192.168.x.x) o en la nube (angelsql.net), el navegador y el enrutador resuelven la ruta de forma totalmente transparente.
6.2 Dominios Personalizados / Parqueados
AngelSQL permite asociar dominios propios (ej. app.minegocio.com) configurando el certificado SSL correspondiente en el panel. El servidor reconocerá el dominio entrante y servirá la aplicación designada como predeterminada.
7. Tabla Comparativa
| Característica | Servidor Web Tradicional | AngelSQL Server |
|---|---|---|
| Arquitectura | Múltiples componentes (IIS/Nginx + Node/DotNet + SQL + VPN) | Proceso Único todo-en-uno (.NET 10 nativo) |
| Conexión de Sucursales | Requiere IP fija, configuración de módem y VPN | Túnel TLS saliente automático (cero config) |
| Actualizaciones de Backend | Compilación, publicación y reinicio de servicios | Scripts .csx en caliente (guardar y listo) |
| Proxy Inverso | Configuración manual compleja en archivos de texto | Enrutador inteligente integrado por URL y Referer |
8. Guía Rápida de Diagnóstico (Troubleshooting)
Error 404 en archivos estáticos (.js, .css, imágenes)
Verifica que el nombre en la URL coincida con el ID registrado en el Master y que el directorio wwwroot de la app contenga los archivos.
Cliente Remoto no logra conectar
Comprueba que el puerto 4429 esté permitido en el firewall del servidor Master y que el TenantId y SecretKey sean idénticos en ambos extremos.
Certificados SSL para dominios públicos
Asegúrate de que los puertos 80 y 443 apunten a la IP del Servidor Master para permitir la renovación automática con Let's Encrypt.