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.
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.
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.
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.
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.
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.
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.
Haz clic en el botón Activar 2FA y se abrirá la siguiente ventana emergente.
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.
Se te pedirá confirmación de nuevo. Pulsa el botón Aceptar para continuar. El proceso ha finalizado.
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.
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.
Si quieres utilizar Mailgun, elige mailgun en el menú desplegable. Rellena los campos obligatorios y guarda la configuración.
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.