🚀Guía de Instalación - ToLearn
Esta guía proporciona instrucciones detalladas para instalar y configurar la plataforma ToLearn en diferentes entornos.
📋 Tabla de Contenidos
💻 Requisitos del Sistema
Hardware Mínimo
CPU: 2 cores
RAM: 4 GB
Almacenamiento: 20 GB disponibles
Hardware Recomendado (Producción)
CPU: 4+ cores
RAM: 8+ GB
Almacenamiento: 50+ GB SSD
Software Requerido
Obligatorio
Python: 3.8 o superior (recomendado 3.10+)
PostgreSQL: 12 o superior (recomendado 14+)
Redis: 6.0 o superior
Git: Para clonar el repositorio
Opcional
Docker: 20.10+ y Docker Compose 1.29+ (para instalación con contenedores)
Node.js: 14+ (para desarrollo frontend)
Nginx: Como proxy inverso en producción
🔧 Instalación en Desarrollo
Paso 1: Clonar el Repositorio
Paso 2: Crear Entorno Virtual
Linux/MacOS
Windows
Paso 3: Instalar Dependencias
Paso 4: Configurar Variables de Entorno
Crear archivo .env en la raíz del proyecto:
Editar .env con tus configuraciones:
Paso 5: Configurar PostgreSQL
Instalar PostgreSQL
Ubuntu/Debian:
MacOS (Homebrew):
Windows: Descargar e instalar desde postgresql.org
Crear Base de Datos
Paso 6: Ejecutar Migraciones
Paso 7: Crear Superusuario
Proporciona los siguientes datos:
Username (nombre de usuario)
Email
Password
Paso 8: Cargar Datos de Prueba (Opcional)
Paso 9: Recopilar Archivos Estáticos
Paso 10: Iniciar Servidor de Desarrollo
Acceder a la plataforma en: http://localhost:8000
Panel de administración: http://localhost:8000/admin
🐳 Instalación con Docker
Requisitos Previos
Docker Engine 20.10+
Docker Compose 1.29+
Paso 1: Configurar Variables de Entorno
Editar docker-compose.yml y .env según sea necesario.
Paso 2: Construir y Ejecutar Contenedores
Esto inicia:
Contenedor web (Django)
Contenedor PostgreSQL
Contenedor Redis
Paso 3: Ejecutar Migraciones en Docker
Paso 4: Acceder a la Aplicación
La plataforma estará disponible en: http://localhost:8000
Comandos Útiles de Docker
🌐 Instalación en Producción
Requisitos Adicionales
Dominio registrado
Certificado SSL (Let's Encrypt recomendado)
Servidor con Linux (Ubuntu 20.04+ recomendado)
Paso 1: Preparar el Servidor
Paso 2: Configurar PostgreSQL en Producción
Paso 3: Clonar Repositorio y Configurar
Paso 4: Configurar Variables de Entorno de Producción
Paso 5: Configurar Gunicorn
Crear archivo de servicio systemd: /etc/systemd/system/tolearn.service
Iniciar servicio:
Paso 6: Configurar Daphne para WebSockets
Crear archivo: /etc/systemd/system/daphne.service
Iniciar servicio:
Paso 7: Configurar Nginx
Crear archivo: /etc/nginx/sites-available/tolearn
Activar sitio:
Paso 8: Obtener Certificado SSL con Let's Encrypt
Paso 9: Configurar Backup Automático
Crear script de backup: /home/tolearn/backup.sh
Agregar a crontab:
🗄️ Configuración de Base de Datos
PostgreSQL Avanzado
Optimización para Producción
Editar /etc/postgresql/14/main/postgresql.conf:
Crear Índices para Mejor Rendimiento
☁️ Configuración de Almacenamiento
AWS S3 / S3 Compatible
Crear Bucket en AWS S3
Archivo cors.json:
Configuración en Django
En settings.py, la configuración S3 ya está incluida. Asegúrate de configurar las variables de entorno:
🔴 Configuración de Redis
Instalación de Redis
Ubuntu/Debian:
MacOS:
Configuración de Redis para Producción
Editar /etc/redis/redis.conf:
Reiniciar Redis:
Configurar Redis en Django
Actualizar .env:
🔐 Variables de Entorno
Lista Completa de Variables
SECRET_KEY
Clave secreta de Django
django-insecure-...
✅
DEBUG
Modo debug
True / False
✅
ALLOWED_HOSTS
Hosts permitidos
localhost,tudominio.com
✅
DB_NAME
Nombre de la base de datos
tolearn_db
✅
DB_USER
Usuario de PostgreSQL
tolearn_user
✅
DB_PASSWORD
Contraseña de la BD
password123
✅
DB_HOST
Host de PostgreSQL
localhost
✅
DB_PORT
Puerto de PostgreSQL
5432
✅
REDIS_HOST
Host de Redis
localhost
✅
REDIS_PORT
Puerto de Redis
6379
✅
REDIS_PASSWORD
Contraseña de Redis
password
❌
AWS_ACCESS_KEY_ID
AWS Access Key
AKIAIOSFODNN7EXAMPLE
⚠️
AWS_SECRET_ACCESS_KEY
AWS Secret Key
wJalrXUtnFEMI/...
⚠️
AWS_STORAGE_BUCKET_NAME
Nombre del bucket S3
tolearn-media
⚠️
EMAIL_HOST
Servidor SMTP
smtp.gmail.com
❌
EMAIL_PORT
Puerto SMTP
587
❌
EMAIL_HOST_PASSWORD
Contraseña de email
password
❌
⚠️ = Requerido para funcionalidad específica
Generar SECRET_KEY Segura
🔧 Solución de Problemas
Error: "No module named 'psycopg2'"
Error: "FATAL: Peer authentication failed"
Editar /etc/postgresql/14/main/pg_hba.conf:
Reiniciar PostgreSQL:
Error: "Redis connection refused"
Error: "Permission denied" en archivos estáticos
Error: "502 Bad Gateway" en Nginx
Error de Migraciones
Limpiar Base de Datos y Reiniciar
📚 Recursos Adicionales
✅ Checklist de Instalación
¿Necesitas ayuda? Consulta la Guía de Desarrollo o abre un issue en GitHub.
Last updated