Guía de Despliegue en Dokku
Esta guía explica cómo desplegar Meeting Recorder en un servidor Dokku.
Requisitos Previos
- Servidor Dokku ejecutándose en
192.168.1.36 - Git instalado localmente
- Acceso SSH al servidor Dokku
Pasos de Despliegue
1. Agregar Remoto de Dokku
git remote add dokku dokku@192.168.1.36:meeting-recorder
2. Crear la Aplicación en Dokku
ssh dokku@192.168.1.36 apps:create meeting-recorder
3. Configurar Variables de Entorno
ssh dokku@192.168.1.36 config:set meeting-recording JWT_SECRET_KEY=your_jwt_secret_min_32_chars
ssh dokku@192.168.1.36 config:set meeting-recording FLASK_DEBUG=False
Nota:
- Las claves de API de IA se configuran por usuario en la base de datos (Configuración → pestaña IA)
- La configuración SMTP se configura por usuario en la base de datos (Configuración → pestaña Email)
- No se requieren variables globales como OPENAI_API_KEY o SMTP
4. Configurar Almacenamiento Persistente
ssh dokku@192.168.1.36 storage:mount meeting-recorder /var/lib/dokku/data/storage/meeting-recorder/instance:/app/instance
ssh dokku@192.168.1.36 storage:mount meeting-recorder /var/lib/dokku/data/storage/meeting-recorder/uploads:/app/uploads
5. Desplegar
git push dokku main
Variables de Entorno
| Variable | Descripción | Requerida |
|---|---|---|
OPENAI_API_KEY |
Clave API de OpenAI para transcripción y análisis | Sí |
JWT_SECRET_KEY |
Clave secreta para tokens JWT (mín. 32 caracteres) | Sí |
FLASK_DEBUG |
Habilitar modo debug (False en producción) | No |
DATABASE_PATH |
Ruta a la base de datos SQLite (por defecto: instance/app.db) | No |
UPLOADS_PATH |
Ruta a la carpeta de descargas (por defecto: uploads) | No |
SMTP_HOST |
Host del servidor SMTP para OTP por email | No |
SMTP_PORT |
Puerto del servidor SMTP (por defecto: 587) | No |
SMTP_USER |
Usuario SMTP | No |
SMTP_PASSWORD |
Contraseña SMTP | No |
Acceder a la Aplicación
Después del despliegue, la aplicación estará disponible en:
- http://192.168.1.36:puerto_aleatorio (Dokku asigna un puerto aleatorio)
Para encontrar el puerto asignado:
ssh dokku@192.168.1.36 config:get meeting-recorder PORT
O verificar la información de la aplicación:
ssh dokku@192.168.1.36 apps:info meeting-recorder
Crear el Primer Usuario Administrador
Dado que el registro público está deshabilitado, necesitas crear el primer usuario administrador manualmente:
ssh dokku@192.168.1.36 run meeting-recorder python -c "
from app import app, db, User
with app.app_context():
user = User(username='admin', email='admin@example.com')
user.set_password('your_secure_password')
user.otp_secret = 'your_secret_here'
user.is_admin = True
db.session.add(user)
db.session.commit()
print('Admin user created')
"
Ver Registros
ssh dokku@192.168.1.36 logs meeting-recorder -t
Reiniciar la Aplicación
ssh dokku@192.168.1.36 ps:restart meeting-recorder
Actualizar la Aplicación
Realiza tus cambios, confirma y envía:
git add .
git commit -m "Your changes"
git push dokku main
Solución de Problemas
La base de datos no persiste
Asegúrate de que el almacenamiento esté montado correctamente:
ssh dokku@192.168.1.36 storage:list meeting-recorder
Las descargas no funcionan
Verifica que el directorio de descargas tenga permisos de escritura y esté montado correctamente.
Cambios de puerto
Dokku puede asignar puertos diferentes después del redespliegue. Siempre verifica el puerto actual después del despliegue.