bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Despliegue de Foro Discourse

calendar_month Jul 27, 2026 schedule 17 min de lectura visibility 19 vistas
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Despliegue de un Foro Discourse en un VPS: Docker, Nginx, SSL y optimización

TL;DR

En esta guía detallada, desplegaremos Discourse, una potente plataforma para comunidades en línea, en su propio servidor VPS. Recorreremos todo el camino desde la elección de la configuración óptima del VPS hasta la configuración de Docker, la automatización de SSL a través de Let's Encrypt, y la garantía de copias de seguridad fiables y mantenimiento básico. Al final del tutorial, tendrá un foro Discourse completamente funcional, seguro y optimizado, listo para recibir a los primeros usuarios, funcionando con la pila tecnológica actual de 2026.

  • Aprenderá a elegir el VPS adecuado para Discourse.
  • Configurará paso a paso el sistema operativo y las utilidades básicas.
  • Desplegará Discourse utilizando Docker, asegurando el aislamiento y una gestión sencilla.
  • Automatizará la instalación y actualización de certificados SSL a través de Let's Encrypt.
  • Configurará estrategias de copia de seguridad efectivas para proteger los datos de su comunidad.
  • Recibirá recomendaciones para la optimización y la resolución de problemas comunes.

Qué configuramos y por qué

Desplegaremos Discourse, una plataforma avanzada para la creación de foros y comunidades en línea. A diferencia de los foros tradicionales, Discourse está diseñado teniendo en cuenta los estándares web modernos y la experiencia del usuario, ofreciendo numerosas funciones como desplazamiento infinito, notificaciones en tiempo real, un sistema de reputación, moderación basada en la confianza y un potente editor de texto. Es la solución ideal para crear una comunidad en torno a un producto, soporte al cliente, discusión interna de equipo o simplemente un foro temático para entusiastas.

Al final, obtendrá un foro completamente funcional, de alto rendimiento y seguro, que estará totalmente bajo su control. Esto significa libertad de las restricciones de plataformas de terceros, personalización completa, acceso directo a los datos y la capacidad de escalar a medida que su comunidad crece.

Alternativas: Cloud-Managed vs. Self-Hosted

Existen dos enfoques principales para usar Discourse:

  • Cloud-Managed (Gestionado en la nube): Esto es cuando usted paga directamente al equipo de Discourse (o a otro proveedor) por el alojamiento y mantenimiento de su foro. Las ventajas incluyen no tener que preocuparse por los detalles técnicos, actualizaciones automáticas, copias de seguridad y soporte. Las desventajas son un costo más alto (especialmente a medida que la comunidad crece) y menos control sobre la infraestructura y los datos. Es una buena opción para aquellos que quieren lanzar un foro lo más rápido posible sin complicaciones técnicas.
  • Self-Hosted (Alojamiento propio en un VPS): Este es nuestro camino. Usted alquila su propio servidor privado virtual (VPS) e instala Discourse en él. Las principales ventajas son un ahorro significativo de costos a largo plazo, control total sobre el servidor, la posibilidad de una personalización profunda, integración con otros de sus servicios y la propiedad total de los datos. Las desventajas son que requiere ciertos conocimientos técnicos para la instalación, configuración y mantenimiento. Sin embargo, gracias a esta guía, haremos este proceso lo más simple y comprensible posible.

La elección de self-hosted en un VPS es especialmente relevante si usted es un desarrollador, un fundador en solitario de SaaS, un jugador que quiere controlar su servidor o un entusiasta de las criptomonedas que valora la autonomía total. Le permite optimizar los costos, adaptar el entorno a necesidades específicas y garantizar la confidencialidad de los datos.

Qué configuración de VPS se necesita para esta tarea

Discourse, especialmente en una configuración con Docker, requiere suficientes recursos. Es importante no escatimar en ellos para asegurar un funcionamiento estable y rápido del foro, incluso con un pequeño aumento de actividad.

Requisitos mínimos (para una comunidad pequeña ~50-100 usuarios activos)

  • CPU: 2 núcleos. Discourse utiliza intensivamente el procesador para renderizar páginas, procesar solicitudes y tareas en segundo plano.
  • RAM: 2 GB. Este es el mínimo absoluto, se recomiendan 4 GB. Los contenedores Docker, PostgreSQL, Redis y la propia aplicación Discourse consumen una cantidad significativa de memoria RAM. Si la memoria es insuficiente, el sistema comenzará a usar activamente el swap, lo que ralentizará considerablemente el rendimiento.
  • Disco: 25 GB SSD. Discourse almacena la base de datos, los archivos subidos por los usuarios (avatares, imágenes, adjuntos) y los registros. El SSD es críticamente importante para el rendimiento de la base de datos.
  • Red: 100 Mbit/s. Para un funcionamiento estable del foro y la carga de contenido.

Plan de VPS recomendado para una comunidad mediana (100-500 usuarios activos)

Para un funcionamiento cómodo y la posibilidad de crecimiento de su comunidad en 2026, recomiendo la siguiente configuración:

  • CPU: 4 núcleos
  • RAM: 8 GB
  • Disco: 50-100 GB NVMe SSD (NVMe es significativamente más rápido que un SSD normal)
  • Red: 1 Gbit/s

Esta configuración garantizará un excelente rendimiento, permitirá que Discourse funcione sin ralentizaciones y le dará un margen de seguridad para el futuro. Puede encontrar un VPS con las características indicadas en muchos proveedores. Al elegir un proveedor, preste atención a la calidad de la red, la reputación y la disponibilidad de soporte técnico.

Cuándo se necesita un servidor dedicado, no un VPS

Un servidor dedicado (dedicated server) se vuelve necesario cuando su comunidad supera las capacidades de un VPS, incluso el más potente. Esto ocurre en los siguientes casos:

  • Muy alta concurrencia: Miles de usuarios simultáneos, decenas de miles de visitantes únicos diarios.
  • Cargas intensivas: Gran cantidad de archivos subidos, videos, personalización compleja o integraciones que cargan fuertemente la CPU/RAM.
  • Requisitos de aislamiento: Si necesita un aislamiento físico completo de otros clientes del proveedor, máxima seguridad o hardware específico (por ejemplo, GPU para tareas de IA, lo cual es poco probable para Discourse).
  • Necesidad de un enorme espacio en disco: Cientos de gigabytes o terabytes de datos.

Para la mayoría de los foros Discourse en etapas tempranas y medias, un VPS será más que suficiente. La transición a un servidor dedicado es un paso que generalmente se da al escalar, cuando el VPS ya no es suficiente.

Ubicación: en qué influye

La elección de la ubicación del servidor VPS influye en:

  • Velocidad de acceso (latency): Cuanto más cerca esté el servidor de su audiencia principal, más rápido se cargará el foro para los usuarios. Una alta latencia puede afectar negativamente la experiencia del usuario, especialmente en la interacción activa con el foro.
  • Legislación: Dependiendo del país donde se aloje el servidor, se aplican diferentes leyes sobre almacenamiento de datos, privacidad y derechos de autor. Esto es especialmente importante para los usuarios europeos (GDPR) o al trabajar con datos sensibles.
  • Costo: Los precios de los VPS pueden variar según la ubicación debido a los diferentes costos de electricidad, alquiler de centros de datos e impuestos.

Elija una ubicación que esté geográficamente más cerca de la mayoría de sus usuarios para garantizar el mejor rendimiento.

Preparación del servidor

Asumimos que tiene un VPS recién instalado con el sistema operativo Ubuntu Server 24.04 LTS. Esta es una versión actual y estable que será compatible hasta 2029.

1. Conexión SSH y actualización del sistema

Conéctese a su servidor como usuario root o como el usuario proporcionado por el proveedor con permisos sudo.


ssh root@ВАШ_IP_АДРЕС_VPS

Actualice la lista de paquetes y los paquetes instalados a las versiones más recientes.


sudo apt update && sudo apt upgrade -y

2. Creación de un nuevo usuario con permisos sudo

Trabajar como root no es seguro. Crearemos un nuevo usuario y le daremos permisos sudo.


# Reemplace 'su_usuario' con el nombre de usuario deseado
sudo adduser su_usuario

Durante la ejecución del comando, el sistema le pedirá una contraseña e información del usuario. Luego, añada el nuevo usuario al grupo sudo.


sudo usermod -aG sudo su_usuario

Ahora puede salir de la sesión de root e iniciar sesión con el nuevo usuario.


exit
ssh su_usuario@ВАШ_IP_АДРЕС_VPS

3. Configuración de claves SSH (recomendado)

Para mayor seguridad y comodidad, utilice claves SSH en lugar de contraseñas. Si aún no tiene un par de claves, genérelas en su máquina local:


# En su máquina local
ssh-keygen -t rsa -b 4096 -C "[email protected]"

Copie la clave pública al servidor:


# En su máquina local
ssh-copy-id su_usuario@ВАШ_IP_АДРЕС_VPS

Después de esto, podrá conectarse sin introducir una contraseña. Se recomienda deshabilitar la autenticación por contraseña en /etc/ssh/sshd_config, configurando PasswordAuthentication no y reiniciando el servicio SSH, pero solo después de asegurarse de que el inicio de sesión con clave funciona.

4. Configuración del firewall (UFW)

Configuraremos un firewall básico para permitir solo los puertos necesarios: SSH (22), HTTP (80) y HTTPS (443).


sudo ufw allow OpenSSH         # Permitir conexiones SSH
sudo ufw allow http            # Permitir HTTP (puerto 80)
sudo ufw allow https           # Permitir HTTPS (puerto 443)
sudo ufw enable                # Habilitar el firewall
sudo ufw status                # Comprobar el estado del firewall

Confirme la activación del firewall introduciendo y.

5. Instalación de Fail2Ban

Fail2Ban ayuda a protegerse contra ataques de fuerza bruta bloqueando las direcciones IP que intentan iniciar sesión repetidamente con credenciales incorrectas.


sudo apt install -y fail2ban   # Instalación de Fail2Ban
sudo systemctl enable fail2ban # Habilitar el inicio automático
sudo systemctl start fail2ban  # Iniciar el servicio

Cree un archivo de configuración local para proteger SSH:


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Abra /etc/fail2ban/jail.local y asegúrese de que la sección [sshd] esté activa (enabled = true).

Instalación de software — paso a paso

Discourse utiliza Docker para aislar todos sus componentes (PostgreSQL, Redis, Nginx y la propia aplicación). Esto simplifica significativamente la instalación, actualización y gestión.

1. Instalación de Docker y Docker Compose

Primero, instalaremos las dependencias necesarias para Docker.


sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

Añadiremos la clave GPG oficial de Docker.


curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Añadiremos el repositorio de Docker a la lista de fuentes de APT.


echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Actualizaremos la lista de paquetes e instalaremos Docker Engine, Docker CLI y Containerd. Las versiones actuales para 2026 probablemente estarán alrededor de Docker Engine 26.x - 27.x.


sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

Añadiremos su usuario al grupo docker para no tener que usar sudo para cada comando de Docker. Después de esto, deberá cerrar y volver a iniciar sesión en la sesión SSH.


sudo usermod -aG docker ваш_пользователь

Verificaremos la instalación de Docker después de reiniciar la sesión.


docker run hello-world # Ejecutar un contenedor de prueba

Instalaremos Docker Compose (normalmente viene como un plugin de Docker CLI en las nuevas versiones).


sudo apt install -y docker-compose-plugin # Instalación del plugin Docker Compose CLI (relevante para Docker 20.10+ y Ubuntu 24.04)

Verificaremos la versión de Docker Compose.


docker compose version # Verificación de la versión de Docker Compose

2. Instalación de Git

Git es necesario para clonar el repositorio oficial de Discourse Docker.


sudo apt install -y git # Instalación de Git

3. Clonación del repositorio de Discourse Docker

Nos moveremos al directorio /var/discourse, donde se almacenarán todos los archivos de configuración de Discourse. Esta es la ubicación estándar y recomendada.


sudo mkdir /var/discourse # Creación del directorio para Discourse
sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse # Clonación del repositorio
sudo chown -R ваш_пользователь:ваш_пользователь /var/discourse # Cambio de propietario del directorio
cd /var/discourse # Navegar al directorio de Discourse

4. Ejecución del script de instalación de Discourse

Discourse viene con un práctico script interactivo discourse-setup que le guiará a través del proceso de configuración inicial, incluyendo la generación del archivo app.yml y la configuración de SSL a través de Let's Encrypt.


./discourse-setup # Ejecutar el script de instalación interactivo

El script le hará varias preguntas:

  • Hostname for your Discourse? (Nombre de host para su Discourse): Introduzca el nombre de dominio que ha vinculado a la dirección IP de su VPS (por ejemplo, forum.example.com). Asegúrese de que el registro DNS (registro A) para este dominio ya apunta a la IP de su VPS.
  • Email address for admin account? (Dirección de correo electrónico para la cuenta de administrador): Introduzca su correo electrónico. Esta será la primera cuenta de administrador en el foro.
  • SMTP server address? (Dirección del servidor SMTP): Por ejemplo, smtp.sendgrid.net, smtp.mailgun.org o el suyo propio. Discourse utiliza activamente el correo electrónico para registros, notificaciones y restablecimiento de contraseñas. Esto es críticamente importante.
  • SMTP username? (Nombre de usuario SMTP): Nombre de usuario para su servidor SMTP.
  • SMTP port? (Puerto SMTP): Normalmente 587 para TLS o 465 para SSL.
  • SMTP password? (Contraseña SMTP): Contraseña para su servidor SMTP.
  • Optional email address for Let's Encrypt? (Dirección de correo electrónico opcional para Let's Encrypt): Introduzca el mismo correo electrónico que para el administrador. Esto es necesario para las notificaciones de certificados.

Después de introducir todos los datos, el script generará el archivo containers/app.yml y comenzará a construir y ejecutar los contenedores Docker. Este proceso puede tardar entre 5 y 15 minutos, dependiendo del rendimiento de su VPS.


# Ejemplo de salida del script:
# ...
# Building Discourse image
# ...
# Starting Discourse app
# ...
# Discourse is now running at forum.example.com

Si todo ha ido bien, verá un mensaje indicando que Discourse está en funcionamiento. Si surgen errores, revise los registros y la configuración, especialmente DNS y SMTP.

Configuración

La configuración principal de Discourse se realiza a través del archivo containers/app.yml y a través del panel de administración del propio foro.

1. Archivo containers/app.yml

Este archivo fue generado por el script discourse-setup. Puede editarlo para una configuración más detallada o para cambiar parámetros que se introdujeron durante el proceso de instalación (por ejemplo, el servidor SMTP). Ábralo para editar:


cd /var/discourse
nano containers/app.yml # Abrir archivo de configuración

Ejemplo de secciones importantes en app.yml:


# ...
## Mail configuration
DISCOURSE_SMTP_ADDRESS: smtp.your-mail-provider.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: your_smtp_username
DISCOURSE_SMTP_PASSWORD: "your_smtp_password" # Utilice comillas si la contraseña contiene caracteres especiales

# ...
## Let's Encrypt SSL
LETSENCRYPT_ENABLED: true
LETSENCRYPT_CONTACT_EMAIL: [email protected]

# ...
## Other options
# DISCOURSE_MAX_IMAGE_SIZE: 3072 # Tamaño máximo de imagen en KB
# DISCOURSE_DEFAULT_LOCALE: ru # Idioma por defecto
# ...

Después de cualquier cambio en app.yml, es necesario reconstruir y reiniciar los contenedores de Discourse:


cd /var/discourse
./launcher rebuild app # Reconstrucción y reinicio de los contenedores de Discourse

El comando rebuild actualizará la imagen de Docker, si hay nuevas versiones disponibles, y aplicará las nuevas configuraciones. Este proceso también tarda varios minutos.

2. TLS/HTTPS a través de Let's Encrypt

El script discourse-setup configura automáticamente Let's Encrypt para su dominio. Si ha especificado LETSENCRYPT_ENABLED: true y un correo electrónico válido en app.yml, y también se ha asegurado de que el registro DNS del dominio apunta correctamente a su VPS, el certificado SSL se emitirá e instalará automáticamente. Discourse utiliza Nginx (o Caddy) integrado dentro del contenedor Docker, que gestiona SSL.

La renovación automática de certificados también se configura mediante el script, normalmente a través de una tarea cron dentro del contenedor Docker, que se ejecuta regularmente.

3. Verificación de la operatividad

Después de iniciar Discourse con éxito, abra su navegador y vaya a la dirección de su dominio (por ejemplo, https://forum.example.com). Debería ver la página de bienvenida de Discourse.

Verifique que HTTPS funciona correctamente (el candado verde en la barra de direcciones).

Si encuentra problemas, verifique:

  • Registros DNS: Asegúrese de que el registro A de su dominio apunta a la dirección IP de su VPS.
  • Cortafuegos: Asegúrese de que los puertos 80 (HTTP) y 443 (HTTPS) están abiertos (sudo ufw status).
  • Registros del contenedor Docker: Revise los registros de Discourse para identificar errores.
    
    cd /var/discourse
    ./launcher logs app # Ver registros del contenedor principal de Discourse
    
  • Configuración SMTP: Si ve errores relacionados con el envío de correo, vuelva a verificar los datos SMTP en app.yml.

4. Configuración inicial a través del panel de administración

Después de iniciar sesión por primera vez en el foro con la cuenta de administrador (la dirección de correo electrónico que especificó durante la instalación), Discourse le ofrecerá un asistente de configuración. Podrá:

  • Establecer el nombre y la descripción del foro.
  • Configurar categorías.
  • Definir reglas básicas.
  • Instalar plugins.
  • Configurar la apariencia (temas).

Todas estas configuraciones están disponibles en la sección Admin > Settings de su foro. Revíselas para adaptar el foro a sus necesidades.

Copias de seguridad y mantenimiento

Las copias de seguridad son una parte críticamente importante de cualquier servicio en producción. Discourse tiene mecanismos incorporados para crear copias de seguridad.

1. Qué respaldar

Discourse por defecto respalda todo lo necesario:

  • Base de datos PostgreSQL: Todos los mensajes, usuarios, configuraciones y metadatos.
  • Archivos subidos por los usuarios: Avatares, imágenes, adjuntos.
  • Archivos de configuración: Incluyendo app.yml y otras configuraciones importantes.

2. Copias de seguridad integradas de Discourse

Discourse permite crear copias de seguridad a través del panel de administración (Admin > Backups) o automáticamente según un horario. Estas copias de seguridad se almacenan dentro del contenedor Docker en el directorio /var/www/discourse/public/backups/default. Sin embargo, almacenar las copias de seguridad en el mismo servidor que el propio foro es altamente desaconsejable. En caso de fallo del servidor, perderá tanto el foro como sus copias de seguridad.

Para la carga automática de copias de seguridad a un almacenamiento externo, Discourse soporta la integración con almacenamientos compatibles con S3 (por ejemplo, Amazon S3, DigitalOcean Spaces, Backblaze B2). Este es el método más fiable.

En el panel de administración de Discourse, vaya a Admin > Settings > Backups y configure "s3 backup bucket", "s3 backup region", "s3 backup access key id", "s3 backup secret access key". Luego, habilite "s3 backups enabled".

3. Script simple de copia de seguridad automática (si no hay S3)

Si aún no utiliza S3, puede configurar la sincronización manual de copias de seguridad desde el servidor a otro almacenamiento (por ejemplo, otro VPS, almacenamiento en la nube a través de rsync/sftp).

Primero, asegúrese de que las copias de seguridad automáticas están habilitadas en el panel de administración de Discourse (por ejemplo, diariamente).

Cree el script backup-sync.sh en su VPS:


#!/bin/bash

# Ruta al directorio de copias de seguridad de Discourse
DISCOURSE_BACKUP_DIR="/var/discourse/shared/standalone/backups/default"
# Directorio para almacenar copias de seguridad en un servidor externo o en la nube
REMOTE_DEST="user@remote_host:/path/to/remote/backups"

# Eliminamos copias de seguridad antiguas en el servidor local (conservamos los últimos 7 días)
find $DISCOURSE_BACKUP_DIR -type f -name ".tar.gz" -mtime +7 -delete

# Sincronización de copias de seguridad con almacenamiento externo
# Usamos rsync para una sincronización eficiente
# -a: modo archivo (conserva permisos, propietarios, marcas de tiempo)
# -v: salida detallada
# -h: tamaños legibles por humanos
# --delete: eliminar archivos en el destino que no existen en el origen (¡precaución!)
# --progress: mostrar progreso
rsync -avh --progress $DISCOURSE_BACKUP_DIR/ $REMOTE_DEST

Haga el script ejecutable:


chmod +x backup-sync.sh

Añádalo a Cron para su ejecución diaria (por ejemplo, a las 3 de la mañana):


crontab -e

Añada la siguiente línea al final del archivo:


0 3    /path/to/your/backup-sync.sh >> /var/log/discourse_backup_sync.log 2>&1

Importante: Para que rsync funcione con un servidor remoto, será necesario configurar claves SSH sin contraseña para el usuario bajo el cual se ejecuta la tarea cron. Para los almacenamientos en la nube, deberá utilizar las utilidades CLI correspondientes (por ejemplo, aws s3 sync, rclone).

4. Actualizaciones: Rolling vs. Maintenance Window

Discourse lanza actualizaciones regularmente, a menudo añadiendo nuevas funciones y correcciones de seguridad. Las actualizaciones se realizan a través del panel de administración del foro (Admin > Updates).

  • Rolling Updates (Actualizaciones continuas): Un enfoque en el que aplica las actualizaciones tan pronto como están disponibles. Discourse lo facilita: simplemente haga clic en el botón "Update" en el panel de administración. El servidor entrará en modo de mantenimiento por un corto tiempo (normalmente de 1 a 5 minutos) mientras se actualizan las imágenes de Docker y se reconstruye la aplicación.
  • Maintenance Window (Ventana de mantenimiento): Si su foro es muy crítico y tiene un alto tráfico, puede preferir programar las actualizaciones durante las horas de menor actividad (por ejemplo, a altas horas de la noche) para minimizar el impacto en los usuarios. En este caso, simplemente accede al panel de administración en el momento programado y ejecuta la actualización.

En cualquier caso, siempre haga una copia de seguridad antes de actualizar. Discourse ofrece hacerlo automáticamente antes de iniciar el proceso de actualización, lo cual es muy conveniente.


# Actualización manual a través de SSH (si el panel de administración no está disponible)
cd /var/discourse
./launcher rebuild app

Este comando realizará una actualización completa de las imágenes Docker de Discourse y recreará el contenedor, aplicando todos los últimos cambios.

Solución de problemas + Preguntas frecuentes

Incluso con la configuración más cuidadosa, pueden surgir problemas. Aquí tienes respuestas a algunas preguntas comunes y cómo solucionarlas.

¿No puedo acceder al foro después de la instalación. ¿Qué hago?

Primero, verifica que el registro DNS (registro A) de tu dominio apunte correctamente a la dirección IP de tu VPS. Usa dig yourdomain.com o herramientas en línea. Luego, asegúrate de que los puertos 80 y 443 estén abiertos en el firewall de tu VPS (sudo ufw status). Revisa los logs de Discourse: cd /var/discourse && ./launcher logs app. Busca errores relacionados con Nginx, SSL o PostgreSQL. Es posible que haya un problema con el servidor SMTP, lo que impide que Discourse envíe el correo electrónico para completar la instalación.

Mi foro funciona, pero el certificado SSL no es válido o falta.

Asegúrate de que LETSENCRYPT_ENABLED: true y LETSENCRYPT_CONTACT_EMAIL estén correctamente especificados en /var/discourse/containers/app.yml. La causa más común es un registro DNS incorrecto: Let's Encrypt no puede verificar la propiedad del dominio si no apunta a tu servidor. También, asegúrate de que los puertos 80 y 443 estén abiertos en el firewall. Después de verificar el DNS y el archivo app.yml, ejecuta cd /var/discourse && ./launcher rebuild app para recrear el contenedor e intentar obtener el certificado de nuevo.

El foro carga muy lento o se "cuelga" con frecuencia.

Esto es, muy probablemente, un problema con los recursos del VPS. Verifica el uso de CPU, RAM y disco. Usa los comandos htop (para CPU/RAM) e iostat (para disco). Si la RAM está constantemente llena (se usa swap), necesitas un VPS con más memoria. Si la CPU está constantemente al 100%, es posible que necesites más núcleos. Si el disco está constantemente al máximo, es posible que necesites un SSD más rápido (NVMe). También, revisa los logs de Discourse en busca de errores repetitivos que puedan estar causando la carga.

¿Qué configuración mínima de VPS es adecuada para Discourse?

Para ejecutar Discourse se requiere un mínimo de 2 núcleos de CPU, 2 GB de RAM y 25 GB de SSD. Sin embargo, para un funcionamiento cómodo y con capacidad de crecimiento, se recomiendan 4 núcleos de CPU, 8 GB de RAM y 50-100 GB de SSD NVMe. Configuraciones menores pueden llevar a problemas de rendimiento y estabilidad, especialmente con varios usuarios activos simultáneamente.

¿Qué elegir: VPS o dedicado para esta tarea?

Para la mayoría de los foros de Discourse, especialmente en las etapas iniciales y medias de desarrollo (hasta varios cientos de usuarios activos), un VPS es la opción óptima. Ofrece recursos suficientes, flexibilidad y un costo significativamente menor en comparación con un servidor dedicado. Un servidor dedicado solo debe considerarse para una afluencia muy alta (miles de usuarios simultáneos), requisitos de rendimiento específicos o la necesidad de un aislamiento físico completo, cuando incluso el VPS más potente ya no es suficiente.

No puedo enviar correos electrónicos desde el foro (registro, notificaciones).

El problema está en la configuración SMTP. Revisa cuidadosamente DISCOURSE_SMTP_ADDRESS, DISCOURSE_SMTP_PORT, DISCOURSE_SMTP_USER_NAME y DISCOURSE_SMTP_PASSWORD en el archivo /var/discourse/containers/app.yml. Asegúrate de que tu proveedor SMTP permita el envío desde la dirección IP de tu VPS. Muchos proveedores bloquean el envío de correo desde los puertos estándar de VPS por defecto debido al spam. Es posible que necesites usar un servicio especializado para correo transaccional, como SendGrid, Mailgun o Postmark, y asegurarte de que sus puertos estén abiertos en tu firewall.

¿Cómo actualizar Discourse a la última versión?

La forma más sencilla es a través del panel de administración de tu foro. Ve a Admin > Updates y haz clic en "Update to the latest version". Discourse automáticamente hará una copia de seguridad, descargará las nuevas imágenes de Docker y reconstruirá la aplicación. Si por alguna razón no puedes acceder al panel de administración, puedes actualizar manualmente a través de SSH: cd /var/discourse && ./launcher rebuild app.

Conclusiones y próximos pasos

¡Felicidades! Has desplegado con éxito un foro Discourse completamente funcional en tu VPS, configurado Docker, asegurado la plataforma con SSL y preparado el sistema para el mantenimiento regular y las copias de seguridad. Ahora eres el propietario y administrador de pleno derecho de una potente plataforma para comunidades en línea, controlando completamente sus datos, rendimiento y capacidades.

Hacia dónde avanzar:

  • Configuración y personalización: Explora el panel de administración de Discourse. Configura categorías, grupos de usuarios, temas, plugins e integraciones. Haz que el foro sea único y lo más cómodo posible para tu audiencia.
  • Optimización del rendimiento: A medida que la comunidad crezca, monitorea el uso de los recursos del VPS. Es posible que se requiera una optimización adicional de la configuración de PostgreSQL, Redis o incluso una migración a un VPS/servidor dedicado más potente. Considera el uso de una CDN para archivos estáticos e imágenes para acelerar la carga para usuarios de todo el mundo.
  • Monitorización: Configura un sistema de monitorización para tu VPS (por ejemplo, Prometheus + Grafana, Netdata o Zabbix) para rastrear el estado del servidor, el uso de recursos y recibir notificaciones sobre posibles problemas antes de que afecten a los usuarios.

¿Te fue útil esta guía?

Tus comentarios nos ayudan a mejorar nuestras guías.

Compartir esta publicación:

Envía esta guía a alguien a quien pueda resultarle útil.

Telegram VKVK WhatsApp Facebook LinkedIn XX

Despliegue de foro Discourse en VPS: Docker, Nginx, SSL y optimización
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.