🚀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

Variable
Descripción
Ejemplo
Requerido

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_USER

Usuario de email

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