mirror of
https://github.com/marcogll/AnchorOS.git
synced 2026-03-15 17:24:30 +00:00
7.5 KiB
7.5 KiB
Configuración de Dominios - Anchor:23
Arquitectura de Dominios
El proyecto AnchorOS está diseñado para funcionar con múltiples subdominios, cada uno con una función específica:
| Subdominio | Función | Estado | URL de ejemplo |
|---|---|---|---|
anchor23.mx |
Frontend institucional (landing page + páginas informativas) | ✅ Completado | https://anchor23.mx |
booking.anchor23.mx |
The Boutique - Frontend de reservas | ⏳ Pendiente | https://booking.anchor23.mx |
kiosk.anchor23.mx |
The Kiosk - Sistema de autoservicio táctil | ✅ Completado | https://kiosk.anchor23.mx/{location-id} |
Configuración en Next.js
1. Configuración DNS
Registros DNS Requeridos
En tu proveedor de DNS (ej. Cloudflare, GoDaddy, Namecheap):
# Registros A (o CNAME)
anchor23.mx → A record → IP del servidor
booking.anchor23.mx → CNAME → anchor23.mx
kiosk.anchor23.mx → CNAME → anchor23.mx
# Registros wildcard (opcional, para subdominios futuros)
*.anchor23.mx → CNAME → anchor23.mx
2. Configuración en Vercel (o VPS)
Si despliegas en Vercel:
-
Agregar dominios en
Settings → Domains -
Configurar subdominios:
anchor23.mxcomo dominio principalbooking.anchor23.mxcomo dominio adicionalkiosk.anchor23.mxcomo dominio adicional
-
Vercel manejará automáticamente la configuración SSL
3. Configuración en VPS (Nginx + Next.js)
Si despliegas en VPS propio:
# /etc/nginx/sites-available/anchor23
server {
listen 80;
server_name anchor23.mx booking.anchor23.mx kiosk.anchor23.mx;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
# Redirección HTTP a HTTPS
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name anchor23.mx booking.anchor23.mx kiosk.anchor23.mx;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Rutas por Subdominio
anchor23.mx (Frontend Institucional)
Rutas disponibles:
/- Landing page/servicios- Página de servicios/historia- Historia y filosofía/contacto- Formulario de contacto/franchises- Información de franquicias/membresias- Membresías exclusivas/privacy-policy- Política de privacidad/legal- Términos y condiciones
booking.anchor23.mx (The Boutique) - Pendiente
Rutas planificadas:
/- Selección de servicio y calendario/reservar- Flujo de reserva paso a paso/mis-citas- Historial de citas del cliente/perfil- Perfil del cliente/login- Autenticación de clientes
kiosk.anchor23.mx (The Kiosk)
Rutas disponibles:
/[locationId]- Pantalla principal del kiosko/api/kiosk/authenticate- Autenticación del dispositivo/api/kiosk/bookings- Gestión de reservas/api/kiosk/walkin- Reservas walk-in/api/kiosk/bookings/[shortId]/confirm- Confirmación de citas/api/kiosk/resources/available- Recursos disponibles
Configuración de Environment Variables
Cada subdominio puede requerir variables de entorno específicas:
# anchor23.mx (compartido)
NEXT_PUBLIC_SITE_URL=https://anchor23.mx
# booking.anchor23.mx (pendiente)
NEXT_PUBLIC_BOOKING_URL=https://booking.anchor23.mx
# kiosk.anchor23.mx
NEXT_PUBLIC_KIOSK_URL=https://kiosk.anchor23.mx
NEXT_PUBLIC_KIOSK_API_KEY=tu_api_key_de_64_caracteres
Enlaces Cruzados
Desde anchor23.mx
// CTA en landing page
<a href="https://booking.anchor23.mx">Solicitar Cita</a>
// Enlace a kiosko (solo visible en ubicación física)
<a href="https://kiosk.anchor23.mx/{location-id}">Kiosko</a>
Desde booking.anchor23.mx
// Enlace a información de servicios
<a href="https://anchor23.mx/servicios">Más información</a>
// Enlace a política de privacidad
<a href="https://anchor23.mx/privacy-policy">Privacidad</a>
Desde kiosk.anchor23.mx
// El kiosko es autónomo, no tiene enlaces externos
// Solo comunica con la API del kiosko
Testing de Subdominios
Local con /etc/hosts
Para probar localmente:
# /etc/hosts (Linux/Mac) o C:\Windows\System32\drivers\etc\hosts (Windows)
127.0.0.1 anchor23.mx
127.0.0.1 booking.anchor23.mx
127.0.0.1 kiosk.anchor23.mx
Luego accede a:
http://anchor23.mx:2311http://booking.anchor23.mx:2311(pendiente)http://kiosk.anchor23.mx:2311/{location-id}
Puerto Local
El puerto configurado por defecto es 2311. Para iniciar el servidor:
npm run dev
El sitio estará disponible en: http://localhost:2311
Con ngrok (testing rápido)
# Para anchor23.mx
ngrok http 2311 --subdomain=anchor23-mx
# Para booking.anchor23.mx
ngrok http 2311 --subdomain=booking-anchor23-mx
# Para kiosk.anchor23.mx
ngrok http 2311 --subdomain=kiosk-anchor23-mx
Seguridad Considerations
HTTPS Obligatorio
Todos los dominios deben usar HTTPS:
- Certificado SSL automático (Vercel, Netlify, Cloudflare)
- Let's Encrypt (VPS con Certbot)
- Compra de certificado comercial
CORS Configuration
En next.config.js:
/** @type {import('next').NextConfig} */
const nextConfig = {
async headers() {
return [
{
source: '/(.*)',
headers: [
{ key: 'Access-Control-Allow-Origin', value: '*' },
{ key: 'Access-Control-Allow-Methods', value: 'GET,POST,PUT,DELETE,OPTIONS' },
{ key: 'Access-Control-Allow-Headers', value: 'Content-Type,Authorization' },
],
},
]
},
}
API Key Protection
El kiosko usa API keys de 64 caracteres para autenticación:
- Generar keys únicas por dispositivo
- Rotar keys periódicamente
- Logs de auditoría de autenticación
Despliegue
Vercel (Recomendado)
- Conectar repositorio de Git
- Configurar dominios en
Settings → Domains - Desplegar automáticamente en push a
main
VPS Personal
# Clonar repositorio
git clone <repo-url> /var/www/anchoros
cd /var/www/anchoros
# Instalar dependencias
npm install
# Configurar environment variables
cp .env.example .env.local
nano .env.local
# Build y start
npm run build
npm start
# Configurar PM2 para proceso en segundo plano
pm2 start npm --name "anchoros" -- start
pm2 save
pm2 startup
Troubleshooting
Subdominios no resuelven
- Verificar configuración DNS
- Esperar propagación DNS (puede tardar hasta 48h)
- Verificar con
dig booking.anchor23.mx
SSL/Certificate errors
- Verificar configuración de certificados
- Certbot renew:
sudo certbot renew - Reiniciar Nginx:
sudo systemctl restart nginx
Rutas no funcionan
- Verificar configuración de Next.js router
- Rebuild:
npm run build - Verificar logs:
pm2 logsovercel logs
Próximos Pasos
- ✅ Configurar DNS para
anchor23.mx - ⏳ Desplegar y configurar
booking.anchor23.mx - ✅ Desplegar y configurar
kiosk.anchor23.mx - ⏳ Configurar SSL/TLS para todos los subdominios
- ⏳ Implementar autenticación de clientes en The Boutique
- ⏳ Implementar integración de pagos (Stripe) en booking