Files
amayo/README/DOMAIN_SETUP.md
Shni 001e7a33a7 Add comprehensive setup and customization guides for AmayoWeb
- Introduced NGINX setup instructions for hosting the frontend application.
- Added detailed personalization steps for customizing the AmayoWeb landing page.
- Created a quickstart guide for rapid deployment and development setup.
- Included troubleshooting documentation for frontend loading issues.
- Provided VPS setup commands for configuring NGINX and deploying the application.
2025-11-04 13:01:37 -06:00

263 lines
5.5 KiB
Markdown

# Configuración de Dominios - Amayo
## 📋 Resumen de Cambios
Se han configurado dos dominios separados para el frontend y backend:
### Dominios Configurados
| Servicio | Dominio | Puerto (Dev) | Puerto (Prod) |
|----------|---------|--------------|---------------|
| **Frontend (Vue)** | `docs.amayo.dev` | 5173 | 80/443 |
| **Backend API** | `api.amayo.dev` | 3001 | 80/443 |
## ✅ Archivos Modificados
### 1. Backend - `src/server/server.ts`
**Cambios:**
- Puerto cambiado a `3001` (antes `3000`)
- Agregado soporte para variables de entorno `API_PORT` y `API_HOST`
- Agregado mensaje de inicio con información de dominios
```typescript
const PORT = parseInt(process.env.API_PORT || '3001', 10);
const HOST = process.env.API_HOST || '0.0.0.0';
```
### 2. Frontend - Servicios API
#### `src/services/bot.js`
```javascript
// Antes
const API_URL = 'https://docs.amayo.dev'
// Ahora
const API_URL = 'https://api.amayo.dev' // Producción
const API_URL = 'http://localhost:3001' // Desarrollo
```
#### `src/services/auth.js`
```javascript
// Antes
const API_URL = 'https://docs.amayo.dev/api'
// Ahora
const API_URL = 'https://api.amayo.dev/api' // Producción
const API_URL = 'http://localhost:3001/api' // Desarrollo
```
### 3. Vite Config - `vite.config.js`
```javascript
// Proxy actualizado para desarrollo
proxy: {
'/api': {
target: 'http://localhost:3001', // Antes: https://docs.amayo.dev
changeOrigin: true,
}
}
```
### 4. Floating Cards - `HeroSection.vue`
Reposicionados para evitar empalme con el hero principal:
```css
.card-1 { top: 60px; right: 20px; } /* Más pegado a la derecha */
.card-2 { top: 200px; right: 160px; } /* Centro-derecha */
.card-3 { bottom: 80px; right: 60px; } /* Abajo-derecha */
```
## 🚀 Cómo Usar
### Desarrollo Local
1. **Iniciar el backend:**
```bash
cd amayo
npm run start:api
# O con ts-node directamente:
ts-node src/server/server.ts
```
✅ Backend corriendo en `http://localhost:3001`
2. **Iniciar el frontend:**
```bash
cd AmayoWeb
npm run dev
```
✅ Frontend corriendo en `http://localhost:5173`
3. **Verificar:**
- Frontend: http://localhost:5173
- Backend API: http://localhost:3001/api/bot/stats
### Producción
1. **Build del frontend:**
```bash
cd AmayoWeb
npm run build
```
2. **Configurar NGINX:**
- Ver `NGINX_CONFIG.md` para configuración completa
- Generar certificados SSL con certbot
3. **Iniciar backend con PM2:**
```bash
pm2 start src/server/server.ts --name amayo-api --interpreter ts-node
pm2 save
pm2 startup
```
## 🔧 Variables de Entorno
### Backend (raíz del proyecto)
Crear `.env`:
```env
API_PORT=3001
API_HOST=0.0.0.0
NODE_ENV=production
```
### Frontend (AmayoWeb/.env)
Crear `.env`:
```env
VITE_DISCORD_CLIENT_ID=tu_client_id
VITE_API_URL=http://localhost:3001
```
Para producción, el código detecta automáticamente el entorno y usa `https://api.amayo.dev`.
## 🔐 Certificados SSL
### Generar certificados con Certbot:
```bash
# Frontend
sudo certbot --nginx -d docs.amayo.dev
# Backend
sudo certbot --nginx -d api.amayo.dev
```
### Renovación automática:
```bash
# Verificar
sudo certbot renew --dry-run
# Forzar renovación
sudo certbot renew --force-renewal
sudo systemctl reload nginx
```
## 🧪 Testing de Endpoints
### Verificar Backend API:
```bash
# Stats del bot
curl https://api.amayo.dev/api/bot/stats
# Info del bot
curl https://api.amayo.dev/api/bot/info
# Health check
curl https://api.amayo.dev/health
```
### Verificar Frontend:
```bash
# Homepage
curl https://docs.amayo.dev
# Debe devolver HTML de la aplicación Vue
```
## 📊 Flujo de Datos
```
Usuario
docs.amayo.dev (Frontend Vue)
↓ Hace peticiones a:
api.amayo.dev (Backend Node.js)
↓ Accede a:
Bot de Discord (main.ts)
```
## 🔍 Troubleshooting
### Frontend no puede conectar con API
**Síntoma:** Error de CORS o 404 en requests
**Solución:**
1. Verifica que el backend esté corriendo: `curl http://localhost:3001/api/bot/stats`
2. Revisa logs del backend: `pm2 logs amayo-api`
3. Verifica configuración de CORS en NGINX
### Backend no responde
**Síntoma:** 502 Bad Gateway
**Solución:**
1. Verifica que el proceso esté corriendo: `pm2 status`
2. Reinicia el backend: `pm2 restart amayo-api`
3. Revisa logs: `pm2 logs amayo-api`
### SSL no funciona
**Síntoma:** Certificado inválido o conexión no segura
**Solución:**
1. Verifica certificados: `sudo certbot certificates`
2. Renueva certificados: `sudo certbot renew`
3. Reinicia NGINX: `sudo systemctl restart nginx`
### Floating cards se empalman
**Síntoma:** Las tarjetas se sobreponen al texto
**Solución:**
Ya están reposicionadas en este commit. Si persiste:
1. Ajusta valores en `HeroSection.vue`
2. Modifica los valores de `right`, `top`, `bottom`
## 📝 Checklist de Deploy
- [ ] Backend corriendo en puerto 3001
- [ ] Frontend compilado (`npm run build`)
- [ ] Archivos copiados a `/var/www/docs.amayo.dev`
- [ ] NGINX configurado para ambos dominios
- [ ] Certificados SSL generados con certbot
- [ ] PM2 configurado para auto-restart
- [ ] Firewall permite puertos 80/443
- [ ] DNS apunta a la IP del servidor
- [ ] Verificar endpoints con curl
- [ ] Probar login con Discord
- [ ] Verificar estadísticas en vivo
## 🎯 Próximos Pasos
1. ✅ Floating cards reposicionadas
2. ✅ Dominios configurados
3. ⏳ Generar certificados SSL
4. ⏳ Configurar NGINX en VPS
5. ⏳ Deploy de frontend y backend
6. ⏳ Pruebas en producción
---
**Última actualización:** Noviembre 2025