melodix-api / QUICK_START.md
GitHub Action
deploy from github actions
440bac0
|
Raw
History Blame Contribute Delete
4.94 kB
# 🚀 Melodix - Inicio Rápido de Servicios
## 📋 Scripts Disponibles
### Opción 1: Batch (Recomendado para Windows)
```bash
start_services.bat
```
**Características:**
- ✅ Verifica Redis automáticamente
- ✅ Inicia API FastAPI
- ✅ Inicia Worker Celery
- ✅ Opción para túnel Cloudflare
- ✅ Muestra IPs de acceso
- ✅ Detección de errores
**Comandos:**
```bash
start_services.bat # Iniciar todo
start_services.bat stop # Detener servicios
start_services.bat help # Ayuda
```
---
### Opción 2: PowerShell
```bash
.\start_services.ps1
```
**Nota:** Si tienes problemas de ejecución, ejecuta:
```bash
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
---
### Opción 3: Manual (3 terminales)
**Terminal 1 - API:**
```bash
cd c:\mfmm
venv_musical\Scripts\activate
uvicorn main:app --host 0.0.0.0 --port 8000
```
**Terminal 2 - Worker:**
```bash
cd c:\mfmm
venv_musical\Scripts\activate
celery -A tasks worker --loglevel=info -P solo
```
**Terminal 3 - Túnel (opcional):**
```bash
cd c:\mfmm
venv_musical\Scripts\activate
python start_tunnel.py
```
---
## ✅ Requisitos Previos
### 1. Redis
**Verificar:**
```bash
redis-cli ping
# Debe responder: PONG
```
**Iniciar:**
```bash
redis-server
```
**O como servicio Windows:**
```bash
net start Redis
```
---
### 2. Entorno Virtual
**Crear (si no existe):**
```bash
python -m venv venv_musical
```
**Activar:**
```bash
venv_musical\Scripts\activate
```
**Instalar dependencias:**
```bash
pip install -r requirements.txt
```
---
### 3. FFmpeg (Recomendado)
**Verificar:**
```bash
ffmpeg -version
```
**Instalar (Chocolatey):**
```bash
choco install ffmpeg
```
**O descargar desde:** https://ffmpeg.org/download.html
---
## 🔧 Solución de Problemas
### "Redis no está corriendo"
```bash
# Verificar si el servicio existe
sc query Redis
# Iniciar servicio
net start Redis
# O ejecutar directamente
redis-server
```
---
### "Puerto 8000 ya está en uso"
```bash
# Ver qué está usando el puerto
netstat -ano | findstr :8000
# Matar el proceso (reemplaza PID con el número real)
taskkill /F /PID <PID>
```
---
### "FFmpeg no encontrado"
Algunas funciones de audio requieren FFmpeg. Si no lo necesitas inmediatamente, puedes ignorar esta advertencia y la app funcionará parcialmente.
---
### "La API no responde"
1. Verifica que Redis esté corriendo
2. Revisa los logs en `logs\api.log`
3. Prueba acceder manualmente: http://localhost:8000/health
---
## 📱 Acceso desde Android
### Red Local
1. **Asegúrate que ambos dispositivos están en la misma red WiFi**
2. **Usa la IP que muestra el script:**
```
http://192.168.1.X:8000
```
3. **Permite el puerto en el firewall:**
```bash
netsh advfirewall firewall add rule name="Melodix API" dir=in action=allow protocol=TCP localport=8000
```
---
### Cloudflare Tunnel (Acceso Remoto)
1. **Inicia el túnel cuando el script lo pregunte**
2. **La URL se guarda en `tunnel_url.txt`**
3. **Usa esa URL desde cualquier lugar del mundo**
---
## 📊 URLs de Acceso
| Servicio | URL |
|----------|-----|
| API Local | http://localhost:8000 |
| API Red Local | http://192.168.1.X:8000 |
| Swagger Docs | http://localhost:8000/docs |
| ReDoc | http://localhost:8000/redoc |
| Health Check | http://localhost:8000/health |
| Cloudflare Tunnel | Ver `tunnel_url.txt` |
---
## 🛑 Detener Servicios
### Método 1: Script
```bash
start_services.bat stop
```
### Método 2: Manual
Cierra las 3 ventanas de consola abiertas
### Método 3: Forzado
```bash
taskkill /F /FI "WINDOWTITLE eq API Melodix*"
taskkill /F /FI "WINDOWTITLE eq Worker Celery*"
taskkill /F /FI "WINDOWTITLE eq Tunel Cloudflare*"
```
---
## 📝 Logs
Los logs se guardan en:
```
c:\mfmm\logs\
├── api.log # Logs de la API FastAPI
├── celery.log # Logs del worker Celery
└── melodix.log # Logs generales de la app
```
**Ver logs en tiempo real:**
```bash
# PowerShell
Get-Content logs\melodix.log -Wait -Tail 50
# CMD
type logs\melodix.log
```
---
## 🎯 Flujo Típico de Uso
```bash
# 1. Iniciar Redis (si no está corriendo como servicio)
redis-server
# 2. Iniciar todos los servicios
start_services.bat
# 3. Esperar a que las 3 ventanas se abran
# 4. Probar la API
curl http://localhost:8000/health
# 5. Abrir Swagger para explorar
http://localhost:8000/docs
# 6. Conectar app Android (misma red)
# URL: http://192.168.1.X:8000
# 7. Al terminar, cerrar ventanas o usar:
start_services.bat stop
```
---
## 💡 Tips
- **Inicio automático de Redis:** Configura el servicio de Redis para que inicie con Windows
- **Acceso rápido:** Agrega `start_services.bat` a tus accesos directos
- **Monitoreo:** Revisa `logs\melodix.log` para ver actividad detallada
- **Testing:** Usa Swagger UI (`/docs`) para probar endpoints manualmente
---
**¡Listo! Tu servidor Melodix está operativo 🎵**