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
JWT_SECRET_KEY Clave secreta para tokens JWT (mín. 32 caracteres)
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.