Cómo instalar el software comunitario Flarum en Debian 12

Flarum es un software comunitario de código abierto diseñado para crear y gestionar foros en línea fácilmente. Construido con una interfaz elegante y moderna, Flarum ofrece una experiencia de usuario optimizada para el rendimiento y la simplicidad. Es altamente personalizable gracias a un sólido sistema de extensiones, que permite a los administradores adaptar sus foros a necesidades y preferencias específicas. Flarum es compatible con el diseño responsivo, lo que garantiza la compatibilidad en varios dispositivos y funciones como notificaciones en tiempo real, incrustación de medios enriquecidos y herramientas de moderación sin fisuras. Su base en PHP y MySQL lo hace accesible a una amplia gama de entornos de alojamiento web, resultando atractivo para pequeñas comunidades y grandes organizaciones que buscan una plataforma eficiente para debates en línea.

En este tutorial, aprenderemos a instalar el software comunitario Flarum en un servidor basado en Debian 12.

Requisitos previos

  • Un servidor con Debian 12.
  • Un usuario no root con privilegios sudo.
  • Un Nombre de Dominio Completamente Cualificado (FQDN) como flarum.example.com que apunte a tu servidor.
  • Asegúrate de que tu servidor tiene habilitado el almacenamiento swap si estás en un servidor con 1 GB de RAM.
  • Asegúrate de que todo está actualizado.
    $ sudo apt update && sudo apt upgrade
    
  • TFlarum necesita algunos paquetes esenciales para funcionar. Algunos de ellos ya estarán en tu servidor.
    $ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
    

Paso 1 – Configurar el cortafuegos

El primer paso es configurar el cortafuegos. Debian viene con ufw (Uncomplicated Firewall) por defecto.

Comprueba si el cortafuegos se está ejecutando.

$ sudo ufw status

Obtendrás la siguiente salida.

Status: inactive

Permite el puerto SSH para que el cortafuegos no rompa la conexión actual al activarlo.

$ sudo ufw allow OpenSSH

Permite también los puertos HTTP y HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Habilita el cortafuegos

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Comprueba de nuevo el estado del cortafuegos.

$ sudo ufw status

Deberías ver un resultado similar.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Paso 2 – Instala Nginx

Debian 12 incluye una versión antigua de Nginx. Para instalar la última versión, tienes que descargar el repositorio oficial de Nginx.

Importa la clave de firma de Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Añade el repositorio de la versión estable de Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Actualiza los repositorios del sistema.

$ sudo apt update

Instala Nginx.

$ sudo apt install nginx

Verifica la instalación. En los sistemas Debian, el siguiente comando sólo funcionará con sudo.

$ sudo nginx -v
nginx version: nginx/1.24.0

Inicia el servidor Nginx.

$ sudo systemctl start nginx

Comprueba el estado del servicio.

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Thu 2023-11-09 12:08:18 UTC; 1s ago
       Docs: https://nginx.org/en/docs/
    Process: 1957 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 1958 (nginx)
      Tasks: 2 (limit: 1107)
     Memory: 1.7M
        CPU: 6ms
     CGroup: /system.slice/nginx.service
             ??1958 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??1959 "nginx: worker process"

Abre la dirección IP de tu servidor en tu navegador web. Deberías ver la siguiente página, lo que significa que tu servidor está en funcionamiento.

Página por defecto de Nginx

Paso 3 – Instalar PHP

Debian 12 incluye PHP 8.2 por defecto. Puedes instalarlo ejecutando el siguiente comando.

$ sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y

Para estar siempre con la última versión de PHP o si quieres instalar varias versiones de PHP, añade el repositorio PHP de Ondrej.

Primero, importa la clave GPG del repositorio PHP de Sury.

$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg

Añade el repositorio PHP de Ondrej Sury.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

Actualiza la lista de repositorios del sistema.

$ sudo apt update

A continuación, instala PHP y sus extensiones requeridas por Flarum.

$ sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y

Comprueba si PHP funciona correctamente.

$ php --version

Deberías ver un resultado similar.

PHP 8.2.12 (cli) (built: Oct 27 2023 13:00:10) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.12, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.12, Copyright (c), by Zend Technologies

Paso 4 – Instalar Composer

Composer es un gestor de dependencias para PHP. Flarum necesita Composer para instalar y ejecutar varios componentes.

Ejecuta los siguientes comandos para instalar Composer. Primero, cogemos el instalador, comprobamos el hash para verificarlo y, a continuación, ejecutamos el instalador utilizando la línea de comandos de PHP. A continuación, movemos el binario al directorio /usr/local/bin.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer

Comprueba si Composer se ha instalado correctamente.

$ composer --version
Composer version 2.6.5 2023-10-06 10:11:52

Paso 5 – Instalar MariaDB

MariaDB es un sustituto directo de MySQL, lo que significa que los comandos para ejecutar y utilizar MariaDB son los mismos que los de MySQL.

Debian 12 incluye MariaDB 10.11.4 por defecto, que está un poco obsoleta. Necesitas utilizar el repositorio oficial para obtener la última versión estable de MariaDB.

Importa la clave GPG de MariaDB.

$ sudo curl -o /usr/share/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'

Crea el archivo del repositorio de MariaDB.

$ echo "deb [signed-by=/usr/share/keyrings/mariadb-keyring.pgp] https://deb.mariadb.org/10.11/debian `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/mariadb-server.list

Actualiza la lista de repositorios del sistema.

$ sudo apt update

Ejecuta el siguiente comando para instalar el servidor MariaDB.

$ sudo apt install mariadb-server -y

Comprueba si MariaDB se ha instalado correctamente.

$ mysql --version

Deberías ver la siguiente salida.

mysql  Ver 15.1 Distrib 10.11.6-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

También puedes utilizar mariadb --version para comprobar la versión.

El servicio MariaDB ya está habilitado y en ejecución. Comprueba su estado utilizando el siguiente comando.

$ sudo systemctl status mariadb
? mariadb.service - MariaDB 10.11.6 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/mariadb.service.d
             ??migrated-from-my.cnf-settings.conf
     Active: active (running) since Tue 2023-11-14 08:42:03 UTC; 4min 1s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 74903 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Process: 74904 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 74906 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR>
    Process: 74946 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 74948 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
   Main PID: 74935 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 9 (limit: 1107)
     Memory: 214.9M
        CPU: 627ms
     CGroup: /system.slice/mariadb.service
             ??74935 /usr/sbin/mariadbd

Ejecuta el siguiente comando para realizar la configuración por defecto, como dar una contraseña de root, eliminar los usuarios anónimos, no permitir el inicio de sesión de root de forma remota y eliminar las tablas de prueba.

$ sudo mariadb-secure-installation

Se te pedirá la contraseña de root. Como no tenemos establecida ninguna contraseña de root, pulsa la tecla Intro para continuar.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): [PRESS ENTER]
OK, successfully used password, moving on...

A continuación, se te preguntará si quieres cambiar al complemento unix_socket. El complemento unix_socket te permite acceder a MariaDB con tus credenciales de usuario de Linux. Elige n para no cambiar a él, puesto que ya tienes una cuenta protegida root.

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

A continuación, se te preguntará si quieres cambiar la contraseña de root. En Debian 12, la cuenta raíz para MariaDB está estrechamente vinculada al mantenimiento automatizado del sistema, por lo que no debes cambiar los métodos de autenticación configurados para la cuenta. Hacerlo permitiría que una actualización de paquetes rompiera el sistema de base de datos al eliminar el acceso a la cuenta administrativa. Escribe n para continuar.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

A partir de aquí, pulsa y y luego Enter para aceptar los valores por defecto de todas las preguntas siguientes. Esto eliminará el acceso a los usuarios anónimos, probará las bases de datos, desactivará el inicio de sesión de root remoto y cargará los cambios.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Ya está. La próxima vez que quieras acceder al shell de MariaDB, utiliza el siguiente comando.

$ sudo mysql

Introduce tu contraseña de root de Linux cuando se te solicite.

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 39
Server version: 10.11.6-MariaDB-1:10.11.6+maria~deb12 mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Pulsa exit para cerrar el intérprete de comandos de MariaDB.

Paso 6 – Configurar MariaDB

Accede al intérprete de comandos MariaDB.

$ sudo mysql

Crea una nueva base de datos MySQL, un usuario de base de datos y una contraseña para tu instalación de Flarum.

MariaDB> CREATE DATABASE flarum;
MariaDB> CREATE USER 'flarumuser'@'localhost' IDENTIFIED BY 'yourpassword';
MariaDB> GRANT ALL PRIVILEGES ON flarum.* TO 'flarumuser'@'localhost';

Sustituye flarum, flarumuser y yourpassword por las credenciales de tu elección. Elige una contraseña segura.

Crea también un usuario administrativo con las mismas capacidades que la cuenta root.

MariaDB> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Borra los privilegios para asegurarte de que se guardan en la sesión actual.

MariaDB> FLUSH PRIVILEGES;

Sal del intérprete de comandos MariaDB.

MariaDB> exit

Paso 7 – Instalar Flarum

Crea un directorio donde vivirá Flarum.

$ sudo mkdir /var/www/flarum -p

Utilizando la directiva -p se crean directorios padre que antes no existían.

Cambia la propiedad del directorio Flarum al usuario de Linux conectado en ese momento para que puedas ejecutar comandos sin utilizar sudo.

$ sudo chown -R $USER:$USER /var/www/flarum

Navega hasta la carpeta de instalación.

$ cd /var/www/flarum

Descarga e instala Flarum utilizando Composer.

$ composer create-project flarum/flarum .

Cambia la propiedad del directorio Flarum a nginx para el servidor Nginx.

$ sudo chown -R nginx:nginx /var/www/flarum

Permite el acceso de escritura al directorio.

$ sudo chmod 775 -R /var/www/flarum

A partir de aquí, Composer necesitará permisos sudo para ejecutarse, lo cual no es recomendable. También puedes cambiar los permisos de grupo del directorio a tu usuario de Linux y volver a cambiarlos a nginx cuando hayas terminado con Composer. Esta no es una solución ideal, ya que requiere que ejecutes los mismos comandos repetidamente. Una solución más permanente es añadir tu nombre de usuario al grupo nginx. Ejecuta el siguiente comando para añadir tu usuario Linux actualmente conectado al grupo nginx.

$ sudo usermod -a -G nginx $USER

Para aplicar la nueva pertenencia al grupo, sal del servidor y vuelve a entrar, o escribe lo siguiente.

su - ${USER}

Paso 8 – Instalar SSL

Necesitamos instalar Certbot para generar el certificado SSL. Puedes instalar Certbot utilizando el repositorio de Debian u obtener la última versión utilizando la herramienta Snapd. Nosotros utilizaremos la versión Snapd.

Debian 12 no viene con Snapd instalado. Instala el paquete Snapd.

$ sudo apt install snapd

Ejecuta los siguientes comandos para asegurarte de que tu versión de Snapd está actualizada.

$ sudo snap install core && sudo snap refresh core

Instala Certbot.

$ sudo snap install --classic certbot

Utiliza el siguiente comando para asegurarte de que se puede ejecutar el comando Certbot creando un enlace simbólico al directorio /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Comprueba si Certbot funciona correctamente.

$ certbot --version
certbot 2.7.4

Genera el certificado SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d flarum.example.com

El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/flarum.example.com de tu servidor.

Genera un certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Comprueba el servicio programador de renovación de Certbot.

$ sudo systemctl list-timers

Encontrarás snap.certbot.renew.service como uno de los servicios programados para ejecutarse.

NEXT                        LEFT           LAST                        PASSED      UNIT                      ACTIVATES     
---------------------------------------------------------------------------------------------------------------------------               
Tue 2023-11-14 15:39:00 UTC 24min left    Tue 2023-11-14 15:09:02 UTC 5min ago     phpsessionclean.timer       phpsessionclean.service
Tue 2023-11-14 17:33:00 UTC 2h 18min left -                           -            snap.certbot.renew.timer    snap.certbot.renew.service
Tue 2023-11-14 19:03:30 UTC 3h 49min left Tue 2023-11-14 15:12:10 UTC 1min 58s ago apt-daily.timer             apt-daily.service

Realiza una ejecución en seco del proceso para comprobar si la renovación SSL funciona correctamente.

$ sudo certbot renew --dry-run

Si no ves ningún error, ya está todo listo. Tu certificado se renovará automáticamente.

Paso 9 – Configurar PHP-FPM

Abre el archivo /etc/php/8.2/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Necesitamos configurar el usuario/grupo Unix de los procesos PHP a nginx. Busca las líneas user=www-data y group=www-data en el archivo y cámbialas por nginx.

; Unix user/group of the child processes. This can be used only if the master
; process running user is root. It is set after the child process is created.
; The user and group can be specified either by their name or by their numeric
; IDs.
; Note: If the user is root, the executable needs to be started with
;       --allow-to-run-as-root option to work.
; Default Values: The user is set to master process running user by default.
;                 If the group is not set, the user's group is used.
user = nginx
group = nginx
...

Busca las líneas listen.owner = www-data y listen.group = www-data en el archivo y cámbialas por nginx.

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: Owner is set to the master process running user. If the group
;                 is not set, the owner's group is used. Mode is set to 0660.
listen.owner = nginx
listen.group = nginx

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.

Aumenta el tamaño de subida del archivo a 8 MB.

$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 8M/' /etc/php/8.2/fpm/php.ini

Reinicia el servicio PHP-FPM.

$ sudo systemctl restart php8.2-fpm

Cambia el grupo del directorio de sesiones PHP a Nginx.

$ sudo chgrp -R nginx /var/lib/php/sessions

Paso 10 – Configurar Nginx

Ejecuta el siguiente comando para añadir un archivo de configuración para tu sitio.

$ sudo nano /etc/nginx/conf.d/flarum.conf

Pega el siguiente código en el editor.

server {
    listen [::]:80;
    listen 80;

    server_name flarum.example.com;

    # redirect http to https
    return 301 https://flarum.example.com$request_uri;
}

server {
    listen [::]:443 ssl http2;
    listen 443 ssl http2;

    server_name flarum.example.com;

    access_log /var/log/nginx/flarum.access.log;
    error_log  /var/log/nginx/flarum.error.log;

    root /var/www/flarum/public;
    index index.php;

    include /var/www/flarum/.nginx.conf;

    client_max_body_size 8M;

    if ($host != "flarum.example.com") {
        return 301 $scheme://flarum.example.com$request_uri;
    }

    # SSL code
    ssl_certificate /etc/letsencrypt/live/flarum.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/flarum.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/flarum.example.com/chain.pem;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_prefer_server_ciphers off;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
    resolver_timeout 2s;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    tcp_nopush on;
    types_hash_max_size 2048;

    location ~ \.php$ {
        fastcgi_pass  unix:/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index index.php;
        include  fastcgi_params;
    }
}

Este archivo asume que alojaremos example.com en el directorio /var/www/flarum/public. Flarum incluye algunos ajustes predeterminados de Nginx en el archivo /var/www/flarum/.nginx.conf que hemos incluido en nuestra configuración de Nginx.

Cuando hayas terminado, pulsa Ctrl + X para cerrar el editor y pulsa Y cuando se te pida guardar el archivo.

Abre el archivo /etc/nginx/nginx.conf para editarlo.

$ sudo nano /etc/nginx/nginx.conf	

Añade la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite. Prueba la configuración de Nginx.

$ sudo nginx -t

Deberías ver la siguiente salida indicando que tu configuración es correcta.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Vuelve a cargar el servicio Nginx.

$ sudo systemctl reload nginx

Paso 11 – Accede y completa la instalación de Flarum

Abre http://example.com en tu navegador para completar la instalación.

Instalación de Flarum

Rellena los valores necesarios de la base de datos que creamos anteriormente. Puedes dejar en blanco la entrada Prefijo de tabla para permitir que Flarum utilice el prefijo predeterminado o puedes introducir cualquier prefijo personalizado como fla_. Elige un nombre de usuario, una contraseña segura y un ID de correo electrónico para instalar Flarum.

Haz clic en el botón Instalar Flarum para finalizar la instalación.

Una vez instalado, aparecerá la página de inicio predeterminada de Flarum.

Página de Flarum

Tu foro ya está instalado y listo para usar.

Habilitar 2FA

La autenticación de dos factores es una característica esencial para cualquier foro público. Flarum no incluye esta función de forma nativa, pero puedes activarla instalando una extensión. La extensión está disponible a través de Extiverse. Extiverse es un repositorio no oficial de temas y plugins de Flarum.

Para instalar el plugin, primero, cambia al directorio de Flarum.

$ cd /var/www/flarum

Instala el plugin utilizando Composer.

$ composer require ianm/twofactor:"*"

El siguiente paso es activar el plugin desde el panel de administración de Flarum. Haz clic en tu nombre en la parte superior derecha de la página de inicio y haz clic en el enlace Administración del menú desplegable.

Menú Admin Flarum

Accederás al panel de administración. Selecciona la función 2FA en el menú de la izquierda y actívala. No necesitas cambiar nada, ya que la configuración por defecto debería funcionar bien.

Página de administración de Flarum 2FA

Si quieres que los moderadores del foro tengan activada la función 2FA, haz clic en el botón Mods y activa la opción 2FA requerida. Haz clic en el botón Guardar cambios para terminar.

Configuración 2FA de Flarum para el grupo de Mods

Para activar la 2FA en tu cuenta, abre tu página de configuración en el menú superior derecho de la página principal del foro. Abre la página Seguridad seleccionando en la barra lateral izquierda.

Página 2FA de Usuario de Flarum

Haz clic en el botón Activar 2FA y se abrirá la siguiente ventana emergente.

Ventana emergente de configuración 2FA de Flarum

Escanea el código QR o elige la opción manual utilizando tu aplicación 2FA e introduce el código generado en la casilla. Pulsa el botón Verificar cuando hayas terminado. Se te mostrarán los códigos de seguridad. Guárdalos y pulsa el botón para continuar.

Flarum 2FA Códigos de seguridad

Se te pedirá confirmación de nuevo. Pulsa el botón Aceptar para continuar. El proceso ha finalizado.

Página Flarum 2FA Configurado

Configurar los ajustes de correo electrónico

También tendrás que configurar los ajustes de correo desde el panel de Administración. Flarum admite el servicio SMTP Mailgun de forma nativa o puedes utilizar un proveedor SMTP externo.

Configuración del correo electrónico de Flarum

Nosotros estamos utilizando el servicio Amazon SES para el que hemos seleccionado smtp en el menú desplegable del controlador de correo electrónico en la página de correo electrónico. Haz clic en el botón Guardar cambios y luego en el botón Enviar para enviar un correo electrónico de prueba. La página notificará si el correo se ha enviado correctamente. Deberías recibir el siguiente correo.

Correo de prueba Flarum

Si quieres utilizar Mailgun, elige mailgun en el menú desplegable. Rellena los campos obligatorios y guarda la configuración.

Configuración de Flarum MailGun

Antes de enviar un correo de prueba, debes instalar un paquete composer para que funcione. Cambia al directorio Flarum del servidor.

$ cd /var/www/flarum

Instala el paquete compositor.

$ composer require guzzlehttp/guzzle:^7.0

Envía un correo de prueba para verificarlo.

Conclusión

Con esto concluye nuestro tutorial sobre la instalación del software del foro de la Comunidad Flarum en un servidor Debian 12. Si tienes alguna duda o comentario, escríbelo en los comentarios de abajo.

También te podría gustar...