Ventas

Logo Nicalia
Requisitos técnicos de tu hosting para instalar Canva
Volver al blog

Guía técnica: requisitos de servidor e instalación de Canvas LMS

Fran Navoz

Por Fran Navoz en Hosting, Hosting para cursos online, Nicalia, Productos y servicios

30 de junio de 2026

Requisitos técnicos de tu hosting para instalar Canva

Desplegar Canvas LMS en un entorno corporativo o institucional no se parece en nada a instalar un gestor de contenidos tradicional en un servidor web convencional y necesita un hosting pensado para cursos online. Mientras que otras plataformas educativas como Moodle se apoyan en arquitecturas monolíticas basadas en PHP, el ecosistema de código abierto desarrollado por Instructure exige un enfoque de ingeniería de sistemas radicalmente distinto.

Hablamos de una infraestructura robusta, gobernada por Ruby on Rails, bases de datos PostgreSQL y workers asíncronos en segundo plano coordinados por Redis. Gestionar con éxito este stack en producción requiere comprender a fondo cómo interactúan sus componentes esenciales y por qué la elección de la infraestructura de hardware determina de forma directa la estabilidad de tu aula virtual bajo cargas de alta concurrencia.

Canvas LMS no tolera la sobresuscripción de recursos ni los entornos de hosting compartidos. Su arquitectura orientada a servicios requiere un control total sobre el sistema operativo, acceso de super usuario (root) y núcleos de procesamiento dedicados exclusivamente a la gestión de hilos de Ruby y procesos de Node.js.

Requisitos de servidor para Canvas LMS: hardware y software

Para garantizar que la plataforma responda de forma fluida a las peticiones de los estudiantes, especialmente durante períodos críticos como exámenes o subidas masivas de archivos, es obligatorio cumplir con las especificaciones técnicas estipuladas por la comunidad de desarrollo y los estándares actuales de despliegue en la nube.

Requisitos mínimos y recomendados para un entorno de producción autónomo:

Componente Especificación mínima para producción Función crítica en el ecosistema
Sistema operativo Ubuntu 24.04 LTS (o distribuciones RHEL 8.x compatibles). Soporte a largo plazo de librerías esenciales y paquetería de sistema estable.
Memoria RAM Mínimo absoluto de 12 GB (para compilación de assets) y 8 GB libres para ejecución estándar. Evita que el kernel de Linux active el proceso OOM (Out Of Memory) del sistema durante las tareas pesadas.
Procesador (CPU) 4 vCPUs dedicados como mínimo; se recomiendan 8+ vCPUs para alta concurrencia. Procesamiento paralelo de peticiones HTTP a través de servidores de aplicaciones como Puma o Passenger.
Base de datos PostgreSQL 14+ (o versiones superiores recomendadas). Canvas no soporta MySQL ni MariaDB. Almacenamiento relacional complejo con soporte avanzado para índices y consultas concurrentes optimizadas.
Caché y colas Redis Server (obligatorio para procesamiento en segundo plano y sesiones). Intermediación de mensajes para los workers asíncronos y almacenamiento en caché de baja latencia.
Entorno de ejecución Ruby (gestionado mediante RVM), Node.js (LTS) y el gestor de paquetes Yarn. Intérpretes de código del backend y del pipeline de empaquetado del frontend (Webpack).
Almacenamiento Disco SSD NVMe con al menos 100 GB libres (ajustable según el volumen de archivos persistentes). Operaciones de lectura/escritura (I/O) de alta velocidad para la base de datos y archivos de paginación temporal.

¿Por qué Canvas LMS necesita obligatoriamente un VPS o servidor dedicado?

Cualquier intento de desplegar la suite de Canvas LMS en un plan de alojamiento compartido tradicional está abocado al fracaso inmediato. Los entornos de hosting convencionales están diseñados bajo la arquitectura LAMP/LEMP estandarizada, donde los recursos se distribuyen dinámicamente entre cientos de usuarios y las capacidades de personalización del sistema operativo son inexistentes. Canvas requiere un control absoluto sobre el demonio del sistema por las siguientes razones de arquitectura:

  • Incompatibilidad absoluta del stack tecnológico: Canvas no utiliza intérpretes PHP. Su funcionamiento interno depende de servicios presumiblemente estables de Ruby y Node.js que deben ser configurados de forma nativa a nivel de sistema. Esto implica la manipulación de variables de entorno globales, compilación de binarios específicos y la capacidad de levantar sockets UNIX locales para la comunicación entre el servidor web proxy (como Nginx) y el servidor de aplicaciones de Rails.
  • El cuello de botella de la compilación de assets: El proceso de despliegue inicial y las actualizaciones periódicas exigen la ejecución del comando bundle exec rake canvas:compile_assets. Esta tarea compila, minifica y empaqueta todo el código de la interfaz de usuario utilizando Webpack y Yarn. Este proceso en particular genera picos de consumo de memoria RAM que superan con facilidad los 10 GB o 12 GB de forma sostenida. En un entorno compartido, la falta de memoria dedicada provocaría la terminación abrupta del proceso por falta de recursos del sistema.
  • Gestión de trabajos en segundo plano (Background Workers): La plataforma automatiza tareas esenciales como el envío de notificaciones por correo electrónico, la generación de informes analíticos en formato PDF y el procesamiento de recursos multimedia a través de múltiples hilos de ejecución asíncronos respaldados por Redis. Administrar estos servicios requiere configurar supervisores de procesos (como Systemd) para garantizar que los workers permanezcan activos en memoria constantemente, algo inviable sin privilegios de root.

Para implementar esta solución de manera profesional y evitar las restricciones operativas del hardware compartido, te recomendamos evaluar nuestros planes de servidores VPS administrados, diseñados para ofrecer rendimiento garantizado y aislamiento total de recursos.

Instalar Canvas LMS en un VPS paso a paso (Basado en GitHub)

La siguiente guía detalla los comandos y procedimientos necesarios para inicializar la versión de producción de Canvas LMS utilizando el código fuente oficial disponible en el repositorio de Instructure.

Paso 1: Preparación del servidor y gestión de memoria Swap

Antes de descargar cualquier paquete, es crucial actualizar los repositorios del sistema y asegurar una red de seguridad para la memoria RAM mediante la creación de un archivo de intercambio (Swap). Esto evitará fallas críticas por falta de memoria física durante la compilación de elementos frontend.

sudo apt update && sudo apt upgrade -y
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Paso 2: Instalación y configuración de PostgreSQL y Redis

Instala el motor de base de datos relacional y el almacén de datos en memoria Redis. Acto seguido, se debe inicializar el rol de administración de base de datos exclusivo para la plataforma.

sudo apt install postgresql postgresql-contrib redis-server -y
sudo -u postgres psql -c "CREATE USER canvas WITH ENCRYPTED PASSWORD 'TuPasswordSeguro';"
sudo -u postgres psql -c "ALTER USER canvas CREATEDB;"

Paso 3: Clonar el repositorio oficial de GitHub

Descarga la estructura de código fuente de Canvas directamente desde su repositorio oficial en GitHub. Nos posicionaremos en la rama de desarrollo estable orientada a entornos de producción.

cd /var/
sudo git clone https://github.com/instructure/canvas-lms.git
cd canvas-lms
sudo git checkout stable

Paso 4: Instalación de las dependencias del entorno (Ruby y Node)

Canvas requiere versiones muy específicas de Ruby y Node.js. Es necesario compilar las gemas de Ruby listadas en el Gemfile mediante Bundler, así como resolver las dependencias de JavaScript mediante Yarn.

# Instalar dependencias del sistema previas a Ruby
sudo apt install ruby-dev build-essential libxml2-dev libxslt1-dev zlib1g-dev -y
# Instalar Yarn globalmente para la gestión de paquetes de Node
sudo npm install -y -g yarn
# Instalar dependencias de Ruby y JavaScript locales de la app
bundle config set --local path 'vendor/bundle'
bundle install
yarn install --pure-lockfile

Paso 5: Configuración de los archivos de entorno (.yml)

El sistema se apoya en archivos YAML para resolver las conexiones hacia los diferentes servicios del stack. Debemos generar las copias operativas a partir de las plantillas de ejemplo provistas por el desarrollo original y editar las credenciales internas de base de datos, dominios y servidores SMTP salientes.

for config in database redis domain outgoing_mail; do 
  cp config/$config.yml.example config/$config.yml; 
done

Al editar config/database.yml, asegúrate de mapear correctamente los parámetros de autenticación definidos en el Paso 2:

production:
  adapter: postgresql
  database: canvas_production
  username: canvas
  password: TuPasswordSeguro
  host: localhost

Paso 6: Inicialización de la base de datos y compilación de assets

Con la configuración asentada, llega el momento de estructurar el esquema inicial de la base de datos y ejecutar el empaquetado de assets de la aplicación. Este último paso demandará un alto uso de procesamiento y tiempo de CPU.

bundle exec rake db:initial_setup
bundle exec rake canvas:compile_assets

Mejores prácticas operativas para autoalojar Canvas

Cuando el volumen de usuarios concurrentes supera el millar de alumnos activos, mantener todos los componentes dentro de una única instancia virtual deja de ser una opción viable. Para garantizar un Acuerdo de Nivel de Servicio (SLA) óptimo, es fundamental adoptar criterios avanzados de ingeniería de sistemas:

  • Arquitectura desacoplada y escalabilidad horizontal: Separa el stack en capas independientes. Despliega un nodo frontal exclusivo para el servidor de aplicaciones Web (Puma/Rails) detrás de un balanceador de carga, externaliza el motor de base de datos PostgreSQL a un clúster optimizado para operaciones de lectura/escritura intensivas y dedica un microservidor aislado para la gestión de colas con Redis.
  • Política estricta de respaldos (Backups): Configura volcados en caliente (hot backups) de la base de datos mediante la herramienta pg_dump de forma automatizada cada noche. Al mismo tiempo, implementa políticas de sincronización para los directorios donde se almacenan los archivos estáticos cargados por los docentes, resguardando esta información en repositorios de almacenamiento de objetos externos.
  • Perímetro de seguridad y aislamiento de puertos: Implementa cortafuegos (firewalls) a nivel de red para garantizar que los puertos nativos de PostgreSQL (5432) y Redis (6379) solo escuchen peticiones provenientes de las direcciones IP internas de tus servidores de aplicaciones. Habilita obligatoriamente certificados SSL/TLS para cifrar todo el tráfico entre los navegadores de los usuarios y tu infraestructura web.

Notas: ¿Buscas una alternativa más rápida para entornos de prueba o desarrollo? La comunidad de Canvas y plataformas de empaquetado ofrecen imágenes de Docker (mediante docker-compose.yml) que encapsulan PostgreSQL, Redis y la aplicación de Rails en contenedores aislados. Esto permite desplegar un entorno funcional en tu infraestructura en cuestión de minutos, simplificando la evaluación inicial de la herramienta.

Ejecutar y mantener de forma autónoma una infraestructura con este nivel de exigencia técnica consume valiosas horas de ingeniería que tu equipo podría dedicar a la mejora del contenido pedagógico o a la estrategia institucional.

En Nicalia contamos con la capacidad técnica, la infraestructura optimizada con discos NVMe de última generación y el equipo de soporte de sistemas necesario para encargarnos de toda la capa técnica. Si tu proyecto educativo requiere la máxima estabilidad y no deseas lidiar con la complejidad operativa del despliegue, te invitamos a delegar el entorno en manos profesionales a través de nuestros servidores dedicados de alto rendimiento.