Guía oficial de instalación de Discourse | Instalación de la plataforma en la nube de Discourse

Este documento es una traducción del contenido de la página discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub.

La traducción del texto original se publicó en: Discourse 云平台安装 - Discourse - iSharkFly, ¡bienvenido a participar en la discusión!

Instalación en la nube

La instalación de Discourse en una plataforma en la nube generalmente no toma más de 30 minutos, incluso si no tienes conocimientos de Rails o de la shell de Linux. A continuación, realizamos las pruebas de instalación utilizando el proveedor de servicios DigitalOcean, pero todos los pasos de instalación pueden llevarse a cabo en cualquier plataforma de computación en la nube compatible con Docker, así como en servidores locales.

:bell: ¿No tienes ni 30 minutos? Puedes contactar a la comunidad de Discourse para que te ayude con la instalación. La comunidad de Discourse cobrará una tarifa única de 150 dólares (USD). Haz clic aquí para comprar el servicio.

Preparativos antes de comenzar

Dominio

:bell: Discourse no puede funcionar con una dirección IP; debes tener un dominio o un subdominio para realizar la instalación, por ejemplo, example.com.

  • Si ya posees un dominio, puedes elegir cualquier subdominio para la instalación, como discourse.example.com, talk.example.com o forum.example.com, para instalar tu instancia de Discourse.
  • Si aún no tienes un dominio, puedes visitar el sitio web de NameCheap para buscar el dominio que te guste, o buscar directamente en Google mejores registradores de nombres de dominio para elegir tu registrador favorito.
  • Tu consola de DNS debe ser accesible. Después de comprar el dominio, deberás acceder a tu configuración de DNS para configurarlo. Para el sitio web de Discourse que vas a instalar, debes crear un registro A en tu DNS. Este registro A debe apuntar el dominio que vas a instalar a una dirección IP específica. Esta dirección IP suele ser la de tu servidor comprada en el primer paso.

Correo electrónico

:warning: El sistema de correo electrónico es muy importante en el proceso de creación de usuarios de Discourse. Si no has configurado un servidor SMTP de correo electrónico antes de instalar Discourse, ¡tu instalación de Discourse no podrá accederse ni iniciar sesión (TENDRÁS UN SITIO ROTO)!

  • Si ya tienes tu propio servidor de correo SMTP, puedes utilizar directamente la información de configuración de tu servidor de correo existente.
  • ¿Aún no tienes un servidor de correo? Visita Servidores de correo recomendados por Discourse.
  • Para asegurar que tus correos electrónicos se entreguen correctamente, debes agregar registros SPF y DKIM válidos en tu DNS. Consulta la documentación de tu proveedor de servicios de correo electrónico para saber cómo configurar esta información.

Según nuestra experiencia práctica, la instalación de Discourse requiere un dominio válido y un servidor de correo electrónico configurado. Para el contexto de China, puedes utilizar el correo electrónico empresarial proporcionado por Alibaba Cloud o Tencent Cloud. Generalmente, recomendamos utilizar servidores de correo electrónicos en el extranjero, como AWS SES o MailGun, que son excelentes servicios; es posible que necesites una tarjeta de crédito internacional para completar la verificación. Sin embargo, este paso es obligatorio, de lo contrario, tu instalación de Discourse no podrá completarse.

Instalación

Crear un nuevo servidor en la nube

Crea un nuevo servidor en la nube, por ejemplo: DigitalOcean. Por supuesto, también puedes utilizar servidores proporcionados por otras plataformas.

Si eliges un servidor ubicado dentro del continente chino, es muy probable que encuentres problemas de red. Esta traducción ha agregado una sección adicional para resolver problemas de red.

  • La configuración predeterminada con el sistema operativo Ubuntu LTS de la versión actual funciona muy bien. Como mínimo, se requiere un sistema operativo Linux de 64 bits y el kernel de este sistema operativo debe estar actualizado a la versión más reciente.
  • La configuración predeterminada con 1 GB de memoria suele funcionar bien para comunidades pequeñas de Discourse. Sin embargo, recomendamos utilizar 2 GB de memoria para comunidades grandes.
  • La configuración predeterminada con el centro de datos New York es una buena opción geográfica para América del Norte y Europa. Si la mayoría de los usuarios de tu Discourse se encuentran en otras ubicaciones geográficas, puedes elegir un centro de datos más cercano a ti.
  • Ingresa el dominio discourse.example.com para crear un Droplet en DigitalOcean (Droplet es el nombre que DigitalOcean da a sus servidores). Por supuesto, también puedes comprar y usar tu propio dominio. Generalmente, la instalación de Discourse requiere un dominio real y no es posible instalarlo mediante una dirección IP, por lo que te recomendamos comprar un dominio o usar un subdominio de tu dominio existente.

Crea tu nuevo Droplet; este proceso equivale a crear un servidor en DigitalOcean, lo cual es lo mismo que crear un VPS o servidor en otras plataformas. Una vez completada la creación, recibirás un correo electrónico con la contraseña de tu usuario Root. Sin embargo, te recomendamos configurar el uso de claves SSH para mejorar la seguridad del acceso a tu servidor.

Acceder a tu servidor en la nube

Conéctate y accede al servidor que creaste utilizando la dirección IP y SSH, o para la plataforma Windows, puedes instalar Putty y ejecutar el siguiente comando para conectarte:

ssh root@192.168.1.1

Si no has configurado una clave SSH, puedes usar la contraseña incluida en el correo electrónico enviado por DigitalOcean para iniciar sesión, o utilizar tu clave SSH local para conectarte.

Instalar Docker / Git (Opcional)

sudo apt install docker.io
sudo apt install git

Si deseas usar tu propia versión de Docker, puedes instalarla ahora en tu servidor recién configurado. Si tu servidor no tiene Docker instalado por defecto, discourse-setup lo descargará e instalará automáticamente desde get.docker.com.

Instalar Discourse

Clona el código desde el repositorio Instalación oficial de Discourse Docker en el directorio /var/discourse de tu computadora local.

sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

Solo necesitas ejecutar los comandos anteriores; se requieren privilegios de root durante el proceso de instalación de Discourse.

Agregar espejos de imágenes de Docker (Solo para servidores en el continente chino)

Si tu servidor está ubicado en el continente chino, es muy probable que te quedes atascado en el paso de Docker. Intenta agregar espejos de imágenes de Docker.

Tomando Tencent Cloud como ejemplo, edita /etc/docker/daemon.json en Linux con tu editor favorito y agrega el siguiente contenido. Puedes intentar cambiar https://mirror.ccs.tencentyun.com por la URL del espejo de Docker proporcionada por tu proveedor de servidores en la nube:

{
   "registry-mirrors": [
   "https://mirror.ccs.tencentyun.com"
  ]
}

Después de agregar el espejo de Docker, reinicia la aplicación Docker para aplicar los cambios usando sudo systemctl restart docker.

Editar la configuración de Discourse

Ejecuta la herramienta de configuración con el siguiente comando:

./discourse-setup

Debes configurar todos los parámetros según las indicaciones a continuación:

Hostname for your Discourse? [discourse.example.com]: 
Email address for admin account(s)? [me@example.com,you@example.com]: 
SMTP server address? [smtp.example.com]: 
SMTP port? [587]: 
SMTP user name? [user@example.com]: 
SMTP password? [pa$word]: 
Let's Encrypt account email? (ENTER to skip) [me@example.com]: 

Los datos de entrada anteriores crearán un archivo app.yml para tu instancia de Discourse, el cual configurará tu instancia después de que se complete la instalación. Todo el proceso de inicio de la instalación puede tomar de 2 a 8 minutos para configurar tu Discourse. Si ocurre un error durante la instalación, o si necesitas modificar tu configuración después de que la instalación se complete, puedes ejecutar nuevamente el comando ./discourse-setup (este comando volverá a cargar el archivo app.yml existente). O también puedes editar manualmente el contenido del archivo /containers/app.yml y luego ejecutar nuevamente ./launcher rebuild app, de lo contrario, tus cambios no surtirán efecto.

Optimización para el entorno de red de China

Si tu servidor en la nube está en el continente chino, es muy probable que encuentres problemas de red al ejecutar ./discourse-setup o ./launcher rebuild app. Discourse ya ha configurado servicios espejo para todo excepto Docker; solo necesitas agregar una línea en containers/app.yml aquí:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.china.template.yml" # Agrega esta línea para configurar espejos para gestores de paquetes como npm y rubygems

Esto solucionará el problema.

Iniciar Discourse

Una vez completada la configuración inicial de instalación, tu instancia de Discourse debería ser accesible en el navegador a través del dominio configurado discourse.example.com.

Para servidores ubicados en el continente chino, es posible que primero debas completar el proceso de registro (ICP filing) según las indicaciones de tu proveedor de servidores en la nube antes de proceder.

Registrar una nueva cuenta de administrador

Registra una cuenta de administrador utilizando la dirección de correo electrónico que ingresaste durante el proceso de configuración de inicio.

(Si no puedes registrar tu cuenta de administrador, revisa los registros en la ruta /var/discourse/shared/standalone/log/rails/production.log o visita la lista de verificación de problemas de correo electrónico.)

Una vez completado el registro de la cuenta de administrador, se iniciará el asistente de configuración que te guiará para configurar tu instancia de Discourse.

Al completar todo el asistente de configuración, verás los temas de personal (Staff topics) y READ ME FIRST: Admin Quick Start Guide. Este asistente de configuración incluirá sugerencias para configuraciones posteriores y cómo personalizar tu instalación de Discourse.

Mantenimiento después de la instalación

  • Recomendamos encarecidamente habilitar las actualizaciones automáticas de seguridad para tu sistema operativo. En Ubuntu, usa el comando dpkg-reconfigure -plow unattended-upgrades. En CentOS/RHEL, usa el paquete yum-cron.
  • Si inicias sesión en tu sistema operativo con contraseña en lugar de usar una clave SSH, asegúrate de usar una contraseña fuerte. En Ubuntu, instala el paquete apt-get install libpam-cracklib. Recomendamos usar fail2ban, que bloqueará la dirección IP de cualquier intento fallido de inicio de sesión después de 3 intentos durante 10 minutos.
    • Ubuntu: apt-get install fail2ban
    • CentOS/RHEL: sudo yum install fail2ban (requiere EPEL)
  • Si deseas instalar un firewall por defecto, habilita ufw para Ubuntu o usa firewalld para CentOS/RHEL 7 y versiones posteriores.

Cuando haya una nueva versión de Discourse, tu dirección de correo electrónico recibirá una notificación de actualización. Mantén tu instancia de Discourse actualizada a la última versión para asegurar que se corrijan todos los problemas de seguridad. Recibirás recordatorios por correo electrónico a medida que se lancen nuevas versiones de Discourse. Mantente al día para obtener las últimas funciones y correcciones de seguridad. Para actualizar Discourse a la última versión, accede a /admin/upgrade desde tu navegador y haz clic en el botón de actualizar.

El comando launcher en el directorio /var/discourse se utiliza para realizar tareas de mantenimiento a nivel de sistema:

Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
    start:      Start/initialize a container (Iniciar/inicializar un contenedor)
    stop:       Stop a running container (Detener un contenedor en ejecución)
    restart:    Restart a container (Reiniciar un contenedor)
    destroy:    Stop and remove a container (Detener y eliminar un contenedor)
    enter:      Use nsenter to get a shell into a container (Usar nsenter para acceder a una shell dentro de un contenedor)
    logs:       View the Docker logs for a container (Ver los registros de Docker de un contenedor)
    bootstrap:  Bootstrap a container for the config based on a template (Inicializar la configuración de un contenedor basado en una plantilla)
    rebuild:    Rebuild a container (destroy old, bootstrap, start new) (Reconstruir un contenedor, eliminar el antiguo, inicializar y iniciar uno nuevo)
    cleanup:    Remove all containers that have stopped for > 24 hours (Eliminar todos los contenedores que han estado detenidos por más de 24 horas)

Options:
    --skip-prereqs             Don't check launcher prerequisites (No verificar los requisitos previos del launcher)
    --docker-args              Extra arguments to pass when running docker (Argumentos adicionales para pasar al ejecutar docker)
5 Me gusta

La traducción está muy bien, ¡un aplauso! Ojalá la versión oficial incluya una opción para acceder a múltiples idiomas.

1 me gusta

Gracias.

Nosotros también nos dimos cuenta de que había muy poco contenido en chino al usar Discourse, pero la plataforma en sí es excelente.

La instalación presenta un poco de dificultad y algunos requisitos previos; no se puede instalar simplemente en cualquier máquina.

Sin embargo, en general se pueden sortear esos obstáculos con relativa facilidad, por lo que decidimos enviar algunas de las traducciones que ya habíamos publicado internamente a la versión oficial.

El equipo oficial es bastante solidario y abierto, aunque no terminamos de saber cómo organizar el contenido para que no parezca un poco desordenado.

Poco a poco, también iremos subiendo algunos de nuestros artículos ya existentes a la versión oficial.

3 Me gusta

Antes había un foro en chino, pero parece que cerró a principios de año.

Recuerdo haber visto esto antes; de hecho, durante la instalación consulté varios de sus artículos.

Es probable que el administrador original ya no tenga tiempo para mantenerlo, ya que gestionar un sitio web requiere tanto esfuerzo como recursos económicos.

Como tampoco estábamos muy familiarizados con Discourse y siempre habíamos usado Discuz, y dado que Discuz lleva años sin actualizarse tras ser adquirido por Tencent, con numerosos problemas y sin posibilidad de actualizar, decidimos buscar una alternativa. Así descubrimos Discourse, lo instalamos y lo probamos, y nos pareció muy bueno.

Por eso compartimos algunas de nuestras experiencias en nuestra propia sección: iSharkFly - 飞鲨

Con el tiempo nos dimos cuenta de que hay muy pocos recursos en chino, así que pensamos en compartir algo con la comunidad oficial.

Mantener un sitio web activo no es nada fácil. :slight_smile:

Esperamos que más personas usen Discourse; cuanta más gente lo utilice, más animado será y más interés despertará.

1 me gusta

@fantasticfears Parece que este es el administrador del sitio en chino… Sin embargo, la última visita fue en 2019, no sé si olvidó renovar el servidor o por otra razón, el sitio en chino desapareció de repente.

Quizás no haya tenido tiempo de hacerlo.

No importa, pásate por el foro oficial. Jaja.

Para una comunidad en chino donde la mayoría de los usuarios son de China, la localización de Discourse aún es insuficiente. Después de todo, los hábitos de uso de los usuarios son diferentes.

Es cierto, todos los que utilizan traducción mediante mapeo de cadenas tienen este problema.

El contenido traducido y el orden de clasificación son algo extraños.

Sin embargo, considero que Discourse es excelente, especialmente en la subida de archivos adjuntos, que es increíblemente cómoda.

El contenido está en formato Markdown; aunque para el usuario promedio tiene una curva de aprendizaje, es suficiente.

Lo más importante es que los datos y el almacenamiento están separados. Esto merece una mención especial: casi espacio ilimitado para archivos adjuntos, CDN integrado y no hay que preocuparse por hacer copias de seguridad de los archivos adjuntos. Para los que les gusta hacer capturas de pantalla, es simplemente ideal.

1 me gusta

La comunidad OSSEZ ha ajustado el nombre de dominio, este artículo se publica en la dirección: Discourse 云平台安装 - Discourse - iSharkFly.

1 me gusta

Se ha añadido el capítulo Optimización del entorno de red de China.

3 Me gusta