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

Obtener VPS arrow_forward

Flarum en un VPS: instalación, configuración y mantenimiento

calendar_month 21 de junio de 2026 schedule 25 min de lectura visibility 23 vistas
person
Valebyte Team
Flarum en un VPS: instalación, configuración y mantenimiento

Flarum en un VPS es una plataforma moderna para la creación de foros que se puede instalar y configurar en un servidor privado virtual (VPS) para un control total sobre el rendimiento, la seguridad y la escalabilidad, proporcionando una solución flexible y eficiente para su comunidad.

¿Qué es Flarum y por qué elegir un VPS para su despliegue?

Flarum es un motor de foro elegante, rápido y moderno, diseñado desde cero para la facilidad de uso y la extensibilidad. Está escrito en PHP utilizando el framework Laravel y React para el frontend, lo que proporciona una interfaz de usuario dinámica y receptiva. Flarum se distingue por su diseño minimalista, gestión intuitiva y un potente sistema de plugins que permite adaptar la funcionalidad a cualquier necesidad. A diferencia de las soluciones pesadas del pasado, Flarum aspira a ser ligero y rápido, ofreciendo un enfoque moderno para la creación de comunidades en línea.

Ventajas de Flarum para la comunidad

Elegir Flarum para su comunidad en línea ofrece una serie de ventajas significativas:

  • Interfaz moderna: Flarum ofrece un diseño limpio, receptivo e intuitivo que se ve excelente en cualquier dispositivo. Esto aumenta la participación del usuario y simplifica la navegación por el foro.
  • Alto rendimiento: La arquitectura optimizada y el uso de tecnologías modernas garantizan una carga rápida de las páginas y una interacción fluida, lo cual es crucial para retener a los usuarios.
  • Facilidad de uso: Tanto para administradores como para usuarios habituales, Flarum es extremadamente fácil de aprender. La gestión de contenido, la moderación y la participación en discusiones no presentan dificultades.
  • Extensibilidad: Gracias a un potente sistema de plugins, Flarum es fácilmente extensible. Puede añadir nuevas funciones, integrar servicios de terceros y personalizar el foro según las necesidades específicas de su comunidad.
  • Desarrollo activo: El proyecto Flarum es desarrollado activamente por la comunidad, con actualizaciones regulares, correcciones de errores y nuevas características añadidas.

¿Por qué Flarum self-hosted en un VPS es la elección óptima?

Aunque existen plataformas en la nube para el alojamiento de foros, Flarum self-hosted en un VPS ofrece un nivel inigualable de control y flexibilidad. Alojar Flarum en su propio servidor privado virtual de Valebyte.com permite:

  • Control total: Usted controla completamente el entorno del servidor, el software instalado, la configuración de seguridad y los datos. Esto es crucial para proyectos con altos requisitos de privacidad y personalización.
  • Escalabilidad: A medida que su comunidad crece, puede escalar fácilmente los recursos del VPS (CPU, RAM, almacenamiento) sin necesidad de migrar a otra plataforma. Esto asegura un crecimiento fluido y un funcionamiento estable bajo cualquier carga.
  • Optimización del rendimiento: Puede ajustar finamente el entorno del servidor (servidor web, PHP, base de datos) para obtener el máximo rendimiento de Flarum, basándose en la especificidad de su tráfico y uso.
  • Eficiencia económica: A largo plazo, el alojamiento en un VPS a menudo resulta más rentable que las suscripciones a plataformas en la nube especializadas, especialmente a medida que crece la audiencia.
  • Seguridad: Usted gestiona de forma independiente las medidas de seguridad, instala firewalls, sistemas de detección de intrusiones y actualiza regularmente el software, lo que garantiza un alto nivel de protección de datos.
  • Integración: En un VPS es más fácil integrar Flarum con otros de sus servicios o aplicaciones, ya sea un sistema de inicio de sesión único (SSO), análisis o herramientas personalizadas.

El uso de Docker para desplegar Flarum en un VPS simplifica aún más el proceso, aislando la aplicación y sus dependencias, lo que aumenta la estabilidad y facilita la gestión.

Requisitos del sistema para Flarum en un servidor

Antes de proceder con la instalación de Flarum en un servidor, es importante asegurarse de que su VPS cumple con los requisitos mínimos del sistema. Flarum, como aplicación PHP moderna, tiene ciertas dependencias que deben ser satisfechas para su correcto funcionamiento.

Características mínimas y recomendadas del VPS

La elección de la configuración del VPS depende de la carga esperada y del número de usuarios activos. Para empezar con una comunidad pequeña, los requisitos mínimos serán suficientes, pero para un foro en crecimiento o ya activo, se necesitará un servidor más potente.

Requisitos mínimos para Flarum (hasta 50-100 usuarios activos):

  • Procesador (CPU): 1 vCPU con una frecuencia de 2.0+ GHz.
  • Memoria RAM: 1 GB. Esto es suficiente para PHP-FPM, la base de datos y el servidor web bajo una carga baja.
  • Espacio en disco: 10-20 GB NVMe SSD. NVMe acelera significativamente las operaciones de E/S, lo cual es importante para la base de datos y el almacenamiento en caché.
  • Ancho de banda: 500 GB - 1 TB/mes.
  • Sistema operativo: Ubuntu 22.04 LTS, Debian 11/12 o CentOS 8/Stream.

Requisitos recomendados para Flarum (100-500 usuarios activos):

  • Procesador (CPU): 2 vCPU con una frecuencia de 2.5+ GHz.
  • Memoria RAM: 2-4 GB. Permite un mejor almacenamiento en caché de datos y procesar más solicitudes simultáneas.
  • Espacio en disco: 50 GB NVMe SSD. Proporciona suficiente volumen para datos, registros y crecimiento potencial.
  • Ancho de banda: 2-4 TB/mes.
  • Sistema operativo: Ubuntu 22.04 LTS, Debian 12.

Para comunidades muy grandes con miles de usuarios activos, se requerirán configuraciones más potentes, posiblemente con servidores separados para la base de datos y el servidor web, así como balanceo de carga. Sin embargo, para la mayoría de los casos, un VPS de nivel medio será suficiente.

Software necesario

Para una instalación exitosa de Flarum en un VPS, además del sistema operativo, necesitará el siguiente software. El uso de Docker simplifica significativamente la gestión de estas dependencias.

  • Docker Engine: Componente principal para ejecutar contenedores.
  • Docker Compose: Herramienta para definir y ejecutar aplicaciones Docker multicontenedor.
  • Servidor web: Nginx o Apache (Flarum necesita PHP-FPM para funcionar, que interactuará con el servidor web). En nuestro artículo, utilizaremos Nginx como proxy inverso para el contenedor Docker.
  • Base de datos: MySQL 5.6+ / MariaDB 10.0.5+. Flarum almacena todos sus datos en una base de datos relacional.
  • PHP: PHP 8.1+ con las siguientes extensiones:
    • php-fpm (para Nginx)
    • php-mysql
    • php-json
    • php-gd
    • php-dom
    • php-mbstring
    • php-tokenizer
    • php-zip
    • php-xml
    • php-bcmath
    • php-gmp

    Al usar Docker, todas estas extensiones de PHP ya están incluidas en la imagen oficial de Flarum.

  • Composer: Gestor de dependencias de PHP (aunque al usar Docker, a menudo no es necesario para el usuario final, ya que se utiliza dentro del contenedor).
  • Git: Para clonar repositorios (útil, pero no estrictamente obligatorio para una instalación Docker).

En este artículo, nos centraremos en la instalación de Flarum utilizando Docker y Docker Compose, lo que simplifica significativamente la gestión de todas estas dependencias, ya que estarán encapsuladas en contenedores.

¿Busca un servidor fiable para sus proyectos?

VPS desde $10/mes y servidores dedicados desde $9/mes con NVMe, protección DDoS y soporte 24/7.

Ver ofertas →

Preparación del VPS para la instalación de Flarum Docker: Pasos básicos

Antes de proceder con la instalación de Flarum, es necesario preparar su VPS. Estos pasos son estándar para la mayoría de los servidores Linux y proporcionan una base segura y estable para su aplicación.

Actualización del sistema e instalación de Docker Engine

Primero, conéctese a su VPS por SSH como usuario root o con privilegios sudo. Se recomienda usar un usuario con privilegios sudo para el trabajo diario, pero para la instalación de Docker a menudo es más conveniente usar root temporalmente.

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

sudo apt update && sudo apt upgrade -y

Instale los paquetes necesarios para Docker:

sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

Añada la clave GPG oficial de Docker:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Añada el repositorio de Docker a las fuentes de APT:

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Actualice de nuevo la lista de paquetes e instale Docker Engine, Docker CLI y Containerd:

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

Verifique que Docker esté instalado y funcionando:

sudo docker run hello-world

Debería ver el mensaje "Hello from Docker!".

Añada el usuario actual al grupo docker para no tener que usar sudo cada vez que trabaje con Docker. Reemplace your_username con su nombre de usuario:

sudo usermod -aG docker your_username
newgrp docker # Reinicie la sesión o ejecute este comando para aplicar los cambios

Ahora instale Docker Compose (si no se instaló como plugin):

sudo apt install -y docker-compose

Verifique la versión de Docker Compose:

docker compose version

Configuración del firewall y creación de usuario

Para mejorar la seguridad de su VPS, configure el firewall (UFW - Uncomplicated Firewall) para permitir solo los puertos necesarios.

Permita SSH (puerto 22), HTTP (puerto 80) y HTTPS (puerto 443):

sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

Confirme la activación del firewall introduciendo y.

Verifique el estado del firewall:

sudo ufw status

Debería ver los puertos permitidos.

Aunque puede trabajar como root, por seguridad y comodidad se recomienda crear un usuario separado con privilegios limitados y usar sudo para realizar tareas administrativas. Si ya está trabajando bajo un usuario así, omita este paso.

sudo adduser flarumuser
sudo usermod -aG sudo flarumuser
sudo usermod -aG docker flarumuser # Añadir usuario al grupo docker

Ahora puede salir de root e iniciar sesión como el nuevo usuario flarumuser.

exit

Luego, inicie sesión de nuevo por SSH:

ssh flarumuser@your_vps_ip

Después de iniciar sesión, trabajará como flarumuser. Todas las comandos que requieran privilegios de root, ejecútelas con sudo.

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Instalación paso a paso de Flarum en un VPS usando Docker Compose

El uso de Docker Compose es la forma más recomendada de instalar Flarum en un VPS. Permite definir todos los servicios (Flarum, Nginx, MariaDB) y sus dependencias en un solo archivo, simplificando el despliegue y la gestión.

Creación del archivo docker-compose.yml para Flarum

Cree un directorio para su proyecto Flarum y navegue a él:

mkdir flarum_forum
cd flarum_forum

Cree el archivo docker-compose.yml:

nano docker-compose.yml

Pegue el siguiente contenido. Este archivo define tres servicios: flarum (la aplicación en sí), db (la base de datos MariaDB) y nginx (el servidor web/proxy inverso).

version: '3.8'

services:
  flarum:
    image: flarum/flarum:1.8.0 # Use la versión actual de Flarum
    container_name: flarum_app
    restart: always
    volumes:
      - ./app:/app
    environment:
      - DB_HOST=db
      - DB_DATABASE=flarum
      - DB_USERNAME=flarum
      - DB_PASSWORD=your_db_password # Reemplace con una contraseña segura
      - APP_URL=http://localhost:8000 # Temporalmente, se cambiará al dominio
      - PHP_MEMORY_LIMIT=256M # Se recomienda aumentar si es necesario
    depends_on:
      - db

  db:
    image: mariadb:10.6
    container_name: flarum_db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=your_root_db_password # Reemplace con una contraseña segura
      - MYSQL_DATABASE=flarum
      - MYSQL_USER=flarum
      - MYSQL_PASSWORD=your_db_password # Debe coincidir con la contraseña de Flarum
    volumes:
      - ./db_data:/var/lib/mysql

  nginx:
    image: nginx:stable-alpine
    container_name: flarum_nginx
    restart: always
    ports:
      - "80:80" # Abrimos el puerto 80
      # - "443:443" # Se activará después de configurar HTTPS
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./app:/var/www/flarum # Flarum assets para Nginx
    depends_on:
      - flarum

volumes:
  db_data:
  app:

Notas importantes:

  • Reemplace your_db_password y your_root_db_password con contraseñas seguras y únicas.
  • image: flarum/flarum:1.8.0 – asegúrese de usar la versión actual de Flarum. Puede verificarla en Docker Hub.
  • APP_URL=http://localhost:8000 – esta es una URL temporal. La cambiaremos después de configurar el dominio y HTTPS.
  • PHP_MEMORY_LIMIT=256M – es suficiente para foros pequeños, pero con el uso activo de plugins o un gran número de usuarios, podría ser necesario 512M o 1G.

Ahora cree el archivo de configuración de Nginx nginx.conf en el mismo directorio flarum_forum:

nano nginx.conf

Pegue el siguiente contenido:

server {
    listen 80;
    server_name your_domain.com www.your_domain.com; # Reemplace con su dominio

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

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass flarum:9000; # Nombre del servicio Flarum y puerto PHP-FPM
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

Nota importante: Reemplace your_domain.com www.your_domain.com con su dominio real. Si no tiene un dominio, por ahora puede usar la dirección IP de su VPS, pero para un funcionamiento completo y HTTPS, un dominio es necesario.

Inicio de contenedores y configuración inicial de Flarum

Después de crear los archivos docker-compose.yml y nginx.conf, está listo para iniciar Flarum. Asegúrese de estar en el directorio flarum_forum.

Inicie todos los servicios de Docker Compose en segundo plano:

docker compose up -d

Este comando creará e iniciará los contenedores flarum_app, flarum_db y flarum_nginx. El proceso puede tardar un tiempo, ya que Docker descargará las imágenes.

Verifique el estado de los contenedores en ejecución:

docker compose ps

Debería ver que los tres contenedores están en estado "Up".

Ahora es necesario realizar la instalación inicial de Flarum dentro del contenedor. Esto se hace usando el comando php flarum install. Necesitará los datos que especificó en docker-compose.yml:

  • Database Host: db (nombre del servicio de la base de datos)
  • Database Name: flarum
  • Database Username: flarum
  • Database Password: your_db_password
  • Table Prefix: (se puede dejar en blanco)
  • Admin Username: (elija un nombre para el administrador)
  • Admin Email: (especifique el correo electrónico del administrador)
  • Admin Password: (elija una contraseña segura para el administrador)
  • Base URL: http://your_domain.com (o la IP de su VPS, por ahora sin HTTPS)

Ejecute el comando de instalación. Reemplace los marcadores de posición con sus valores:

docker compose exec flarum php flarum install \
  --database_host=db \
  --database_name=flarum \
  --database_user=flarum \
  --database_pass=your_db_password \
  --url=http://your_domain.com \
  --admin_user=admin_username \
  --admin_pass=admin_password \
  [email protected]

Después de ejecutar este comando con éxito, Flarum se instalará e inicializará con la configuración básica.

Ahora puede abrir su navegador y navegar a http://your_domain.com (o la IP de su VPS). Debería ver Flarum instalado. Inicie sesión en el panel de administración utilizando las credenciales que especificó durante la instalación.

En este punto, Flarum funciona con HTTP. El siguiente paso es configurar HTTPS para garantizar la seguridad.

Configuración de Reverse Proxy y HTTPS para Flarum en el servidor

Para garantizar la seguridad y la confianza de los usuarios, así como para cumplir con los estándares modernos de desarrollo web, es crucial configurar HTTPS para su foro Flarum. Exploraremos dos opciones populares de proxy inverso: Nginx (con configuración manual de Let's Encrypt) y Caddy (con HTTPS automático).

Integración de Nginx como Reverse Proxy con Let's Encrypt

Si utiliza Nginx como proxy inverso, como se hizo en nuestro docker-compose.yml, deberá configurar Let's Encrypt para obtener y renovar automáticamente los certificados SSL.

1. Instalación de Certbot

Certbot es una herramienta de la Electronic Frontier Foundation (EFF) que simplifica la obtención e instalación de certificados SSL de Let's Encrypt.

sudo apt install -y certbot python3-certbot-nginx

2. Configuración de Nginx para Certbot

Necesitamos que Nginx escuche en el puerto 80 y esté disponible para que Certbot verifique el dominio. En el archivo nginx.conf que creamos, ya hay una escucha en el puerto 80. Asegúrese de que server_name coincida con su dominio.

Si desea que Nginx maneje HTTPS, deberá modificar docker-compose.yml para que Nginx escuche en el puerto 443 y redirija las solicitudes a Flarum. Sin embargo, un enfoque más limpio es usar Nginx solo como proxy inverso para el tráfico HTTP interno de Flarum, y realizar la terminación SSL en un Nginx externo que no esté en un contenedor Docker. Esto es más complejo, pero ofrece más control.

Para simplificar, usaremos Nginx dentro del contenedor Docker para manejar HTTPS. Para ello, necesitamos modificar nuestro nginx.conf y docker-compose.yml.

Actualice docker-compose.yml:

Comente la línea - "80:80" y descomente - "443:443", y también añada el puerto 80 para el desafío de Certbot.

services:
  nginx:
    # ...
    ports:
      - "80:80" # Para el desafío de Certbot y redirección a HTTPS
      - "443:443" # Para el tráfico HTTPS
    # ...

Reinicie Docker Compose:

docker compose down
docker compose up -d

Actualice nginx.conf:

Deberá añadir la configuración para HTTPS y la redirección de HTTP a HTTPS. Certbot lo hará automáticamente por usted, pero primero necesita generar el certificado.

Elimine temporalmente las secciones location ~ \.php$ y location ~ /\.ht y location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ de nginx.conf para la primera ejecución de Certbot, de modo que pueda crear un archivo temporal para la verificación del dominio. Después de obtener el certificado, las restauraremos.

Temporalmente, su nginx.conf podría verse así:

server {
    listen 80;
    server_name your_domain.com www.your_domain.com; # Reemplace con su dominio

    location / {
        proxy_pass http://flarum:8000; # Dirigimos a Flarum
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Reinicie el contenedor Nginx para aplicar los cambios:

docker compose restart nginx

3. Obtención del certificado SSL con Certbot

Ejecute el comando Certbot. Reemplace your_domain.com con su dominio y [email protected] con su dirección de correo electrónico:

sudo certbot --nginx -d your_domain.com -d www.your_domain.com --email [email protected] --agree-tos --no-eff-email

Certbot modificará automáticamente su nginx.conf, añadiendo secciones para HTTPS y la redirección de HTTP a HTTPS.

4. Configuración final de Nginx

Una vez que Certbot añada la configuración HTTPS, su nginx.conf contendrá dos secciones server: una para HTTP (que redirige a HTTPS) y otra para HTTPS. Deberá modificar la sección HTTPS para que proxy las solicitudes correctamente al contenedor Flarum.

Ejemplo de nginx.conf final (la parte que se refiere a HTTPS):

server {
    listen 443 ssl http2;
    server_name your_domain.com www.your_domain.com;

    ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem; # Ruta al certificado
    ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem; # Ruta a la clave privada

    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    root /var/www/flarum/public; # Ruta al directorio public de Flarum
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass flarum:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

# Añadido por Certbot para redirigir HTTP a HTTPS
server {
    listen 80;
    server_name your_domain.com www.your_domain.com;
    return 301 https://$host$request_uri;
}

Importante: Certbot por defecto coloca los certificados en /etc/letsencrypt/live/your_domain.com/. Para que el contenedor Nginx pueda acceder a ellos, debe montar este directorio en el contenedor o copiar los certificados. Lo más sencillo es montar.

Actualice docker-compose.yml de nuevo para montar los certificados:

services:
  nginx:
    # ...
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./app:/var/www/flarum
      - /etc/letsencrypt:/etc/letsencrypt # Montamos el directorio con los certificados

Reinicie Docker Compose:

docker compose down
docker compose up -d

Ahora su Flarum debería estar accesible a través de HTTPS. No olvide actualizar APP_URL en el archivo docker-compose.yml y en la configuración de Flarum (si existe) a https://your_domain.com.

Para la renovación automática de certificados, Certbot creará una tarea cron. Puede verificarla con el comando sudo systemctl status certbot.timer.

Uso de Caddy para HTTPS automático

Caddy es un potente servidor web que, por defecto, obtiene y renueva automáticamente los certificados SSL de Let's Encrypt. Esto simplifica significativamente la configuración de HTTPS.

1. Modificación de docker-compose.yml

Elimine el servicio nginx de docker-compose.yml y añada el servicio caddy:

version: '3.8'

services:
  flarum:
    image: flarum/flarum:1.8.0
    container_name: flarum_app
    restart: always
    volumes:
      - ./app:/app
    environment:
      - DB_HOST=db
      - DB_DATABASE=flarum
      - DB_USERNAME=flarum
      - DB_PASSWORD=your_db_password
      - APP_URL=https://your_domain.com # Indicamos HTTPS directamente
      - PHP_MEMORY_LIMIT=256M
    depends_on:
      - db

  db:
    image: mariadb:10.6
    container_name: flarum_db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=your_root_db_password
      - MYSQL_DATABASE=flarum
      - MYSQL_USER=flarum
      - MYSQL_PASSWORD=your_db_password
    volumes:
      - ./db_data:/var/lib/mysql

  caddy:
    image: caddy:latest
    container_name: flarum_caddy
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./site:/srv # Para archivos estáticos, si es necesario
      - caddy_data:/data # Para almacenar certificados de Caddy
    environment:
      - CADDY_DOMAIN=your_domain.com # Pasamos el dominio a Caddyfile
    depends_on:
      - flarum

volumes:
  db_data:
  app:
  caddy_data: # Declaramos el volumen para los datos de Caddy

Nota importante: Actualice your_db_password, your_root_db_password y your_domain.com. Asegúrese de que APP_URL en el servicio Flarum ahora apunte a https://your_domain.com.

2. Creación de Caddyfile

Cree el archivo Caddyfile en el mismo directorio flarum_forum:

nano Caddyfile

Pegue el siguiente contenido:

{env.CADDY_DOMAIN} {
    root * /srv/public # Si Flarum se ubicará en /srv/public
    php_fastcgi flarum:9000 {
        root /app/public # Ruta al directorio public de Flarum dentro del contenedor flarum
    }

    file_server

    # Configuraciones adicionales para Flarum
    rewrite /api(.*) /api$1
    rewrite /flarum(.*) /flarum$1
    rewrite /assets(.*) /assets$1
    rewrite /vendor(.*) /vendor$1

    # Protección contra el acceso a archivos confidenciales
    @forbidden {
        path /.git/*
        path /.env
        path /composer.*
        path /storage/*
        path /vendor/*
    }
    respond @forbidden 403

    # Registro (opcional)
    log {
        output stdout
        format json
    }
}

Nota importante: php_fastcgi flarum:9000 { root /app/public } indica a Caddy dónde buscar el directorio public de Flarum dentro del contenedor flarum. {env.CADDY_DOMAIN} será reemplazado por su dominio de la variable de entorno de Docker Compose.

3. Inicio de Flarum con Caddy

Asegúrese de estar en el directorio flarum_forum. Detenga los contenedores antiguos e inicie los nuevos:

docker compose down
docker compose up -d

Caddy detectará automáticamente su dominio, obtendrá un certificado SSL de Let's Encrypt y configurará HTTPS. Esto puede tardar unos minutos en el primer inicio.

Verifique el estado de los contenedores:

docker compose ps

Luego, abra su dominio en el navegador con https://. Su Flarum ahora debería funcionar con el protocolo seguro.

Caddy renueva automáticamente los certificados, por lo que no necesita preocuparse por la renovación manual.

Mantenimiento de Flarum: copias de seguridad, actualizaciones y monitoreo

El mantenimiento regular de Flarum en un VPS es crucial para garantizar su estabilidad, seguridad y actualidad. Esto incluye la creación de copias de seguridad, actualizaciones oportunas y el monitoreo del rendimiento.

Estrategias de copia de seguridad de Flarum en un VPS

Las copias de seguridad son su seguro contra la pérdida de datos. Para Flarum, se requiere la copia de seguridad de dos componentes principales: la base de datos y los archivos de la aplicación.

1. Copia de seguridad de la base de datos

La base de datos MariaDB contiene todos los mensajes, usuarios, configuraciones y otra información importante. Puede crear un volcado de la base de datos utilizando mysqldump desde dentro del contenedor de la base de datos.

docker compose exec db sh -c "exec mariadb-dump -u flarum -pyour_db_password flarum > /tmp/flarum_db_backup.sql"

Este comando creará un volcado de la base de datos dentro del contenedor db. Ahora necesita copiarlo al sistema host:

docker cp flarum_db:/tmp/flarum_db_backup.sql ./backups/flarum_db_backup_$(date +%F_%H-%M-%S).sql

No olvide crear el directorio ./backups de antemano.

Para automatizar este proceso, puede crear una tarea cron que ejecute estos comandos regularmente.

2. Copia de seguridad de los archivos de la aplicación

Los archivos de la aplicación Flarum incluyen el núcleo de Flarum, plugins, archivos subidos (avatares, adjuntos) y archivos de configuración. Dado que montamos el directorio ./app del host en el contenedor Flarum, una copia de seguridad de este directorio en el host es suficiente.

tar -czvf ./backups/flarum_app_backup_$(date +%F_%H-%M-%S).tar.gz ./app

Este comando creará un archivo comprimido del directorio ./app.

3. Script de copia de seguridad completo y almacenamiento externo

Para mayor fiabilidad, se recomienda crear un script que realice ambas operaciones y guarde las copias de seguridad en un lugar seguro, como un servidor remoto o almacenamiento en la nube. Considere el uso de herramientas como Restic para copias de seguridad incrementales y cifradas, o rsync para la sincronización con almacenamiento remoto.

#!/bin/bash

BACKUP_DIR="./backups"
DATE=$(date +%F_%H-%M-%S)
DB_USER="flarum"
DB_PASS="your_db_password"
DB_NAME="flarum"
APP_DIR="./app"
DB_CONTAINER="flarum_db"

mkdir -p $BACKUP_DIR

echo "Creando volcado de la base de datos..."
docker compose exec $DB_CONTAINER sh -c "exec mariadb-dump -u $DB_USER -p$DB_PASS $DB_NAME > /tmp/flarum_db_backup.sql"
docker cp $DB_CONTAINER:/tmp/flarum_db_backup.sql $BACKUP_DIR/flarum_db_backup_$DATE.sql
docker compose exec $DB_CONTAINER rm /tmp/flarum_db_backup.sql # Eliminamos el archivo temporal del contenedor
echo "Volcado de la base de datos creado: $BACKUP_DIR/flarum_db_backup_$DATE.sql"

echo "Archivando archivos de la aplicación..."
tar -czvf $BACKUP_DIR/flarum_app_backup_$DATE.tar.gz $APP_DIR
echo "Archivo de la aplicación creado: $BACKUP_DIR/flarum_app_backup_$DATE.tar.gz"

# Ejemplo de envío de copias de seguridad a un servidor remoto (reemplace con sus datos)
# scp -r $BACKUP_DIR/* user@remote_server:/path/to/remote/backups/

echo "Copia de seguridad completada."

Guarde este script como backup_flarum.sh, hágalo ejecutable (chmod +x backup_flarum.sh) y añádalo a cron para su ejecución diaria.

Proceso de actualización de Flarum y contenedores Docker

Las actualizaciones son importantes para obtener nuevas funciones, correcciones de seguridad y mejoras de rendimiento.

1. Actualización de imágenes Docker

Actualice regularmente las imágenes Docker a las últimas versiones estables. Esto se puede hacer cambiando las etiquetas de las imágenes en docker-compose.yml (por ejemplo, flarum/flarum:latest o una nueva versión específica) y luego ejecutando:

docker compose pull # Descargar nuevas versiones de imágenes
docker compose up -d # Recrear contenedores con nuevas imágenes

¡Siempre haga una copia de seguridad antes de actualizar!

2. Actualización de Flarum

Si utiliza una versión específica de Flarum (por ejemplo, flarum/flarum:1.8.0), para actualizar a una nueva versión 1.9.0, deberá cambiar la etiqueta de la imagen en docker-compose.yml. Sin embargo, Flarum también tiene su propio procedimiento de actualización interna, especialmente para la migración de la base de datos y la actualización de plugins.

Después de actualizar la imagen de Flarum en docker-compose.yml y reiniciar los contenedores, es posible que deba ejecutar el comando de migración de Flarum:

docker compose exec flarum php flarum migrate
docker compose exec flarum php flarum cache:clear

Tampoco olvide actualizar los plugins de Flarum a través del panel de administración o, si es necesario, a través de Composer (si utiliza plugins personalizados no incluidos en la imagen principal).

Monitoreo de rendimiento y recursos

El monitoreo de su VPS y Flarum ayudará a identificar problemas antes de que se vuelvan críticos.

  • Uso de recursos del VPS: Use los comandos htop, free -h, df -h para monitorear CPU, RAM y espacio en disco. Si observa una carga alta constante, podría ser el momento de escalar su VPS.
  • Registros de contenedores Docker: Revise los registros de Flarum, Nginx/Caddy y la base de datos en busca de errores.
  • docker compose logs flarum
    docker compose logs nginx # o caddy
    docker compose logs db
  • Monitoreo de Flarum: Instale plugins para monitorear el rendimiento, si están disponibles. Esté atento al tiempo de respuesta de las páginas y al número de errores en el panel de administración.
  • Uptime Monitoring: Utilice servicios externos para monitorear la disponibilidad de su sitio (por ejemplo, UptimeRobot) para recibir notificaciones si su foro deja de estar disponible.

El monitoreo regular permite reaccionar rápidamente a los problemas y mantener su Flarum en óptimas condiciones.

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Configuración óptima de VPS para Flarum bajo carga real

Elegir la configuración de VPS adecuada para Flarum es crucial para garantizar un funcionamiento estable y una carga rápida de las páginas a medida que crece su comunidad. Subestimar las necesidades puede llevar a un rendimiento lento, fallos y una mala experiencia de usuario, mientras que los recursos excesivos conllevan costos injustificados. La configuración óptima del VPS depende del número de usuarios activos, la intensidad de su interacción y la cantidad de plugins instalados.

Selección de recursos según el número de usuarios

Al seleccionar un VPS para Flarum, es necesario tener en cuenta varios factores clave:

  • Número de usuarios activos: No es el número total de usuarios registrados, sino la cantidad de aquellos que están viendo o interactuando con el foro simultáneamente.
  • Intensidad de uso: Un foro donde los usuarios principalmente leen será menos exigente que un foro con publicaciones frecuentes, carga de imágenes y búsqueda activa.
  • Número de plugins: Cada plugin añade su propia carga a PHP y a la base de datos.
  • Volumen de contenido: Una gran cantidad de temas, mensajes y adjuntos requiere más espacio en disco y puede afectar el rendimiento de la base de datos.
  • Tipo de disco: NVMe SSD supera significativamente a los SSD y HDD normales en velocidad de operaciones de E/S, lo cual es crítico para la base de datos y el almacenamiento en caché.

Valebyte.com ofrece VPS de alto rendimiento con discos NVMe, que son ideales para aplicaciones exigentes en E/S como Flarum.

Tabla: Recomendaciones de VPS para Flarum

Esta tabla le ayudará a elegir el plan de Valebyte.com adecuado para su foro Flarum, en función de la carga prevista.

Carga (Usuarios activos) CPU (vCores) RAM (GB) Disco (NVMe SSD) Ancho de banda Costo estimado ($/mes) Notas
Inicio/Foro pequeño
(hasta 50-100)
1 1-2 20-40 GB 1-2 TB 5-10 Adecuado para pruebas, proyectos personales y comunidades pequeñas.
Foro mediano
(100-300)
2 2-4 50-80 GB 2-4 TB 10-25 Óptimo para comunidades en crecimiento con actividad moderada.
Foro activo
(300-800)
4 4-8 100-160 GB 4-8 TB 25-50 Para foros con alta afluencia y interacción activa.
Foro grande
(800-2000+)
6-8+ 8-16+ 200-400+ GB 8-16+ TB 50-100+ Requiere optimización de la base de datos y, posiblemente, almacenamiento en caché (Redis/Memcached).

Recomendaciones adicionales:

  1. NVMe SSD: Siempre elija un VPS con NVMe SSD. La diferencia en la velocidad de las operaciones de E/S en comparación con los SSD o HDD normales es enorme y crítica para el rendimiento de la base de datos de Flarum.
  2. Ubicación del servidor: Elija un centro de datos que esté geográficamente cerca de su audiencia principal para minimizar las latencias.
  3. Almacenamiento en caché: Para foros medianos y grandes, considere la integración de sistemas de almacenamiento en caché, como Redis o Memcached, para Flarum. Esto reducirá significativamente la carga en la base de datos y acelerará la carga de las páginas. Flarum tiene soporte integrado para el almacenamiento en caché.
  4. PHP-FPM Workers: Optimice el número de workers de PHP-FPM según la RAM y CPU disponibles. Demasiados workers pueden llevar al agotamiento de la memoria, muy pocos a retrasos.
  5. Optimización de la base de datos: Realice regularmente la optimización de tablas MySQL/MariaDB y la indexación.
  6. CDN: Para foros con una gran cantidad de imágenes y archivos estáticos, considere el uso de una CDN (Content Delivery Network) para acelerar su entrega a los usuarios de todo el mundo.

Comenzando con un plan más pequeño y escalando gradualmente los recursos a medida que crece, podrá gestionar eficazmente los costos y garantizar un rendimiento óptimo para su foro Flarum en un VPS de Valebyte.com.

Conclusiones

El despliegue de Flarum en un VPS utilizando Docker Compose representa una solución potente y flexible para crear una comunidad en línea moderna. Este enfoque proporciona un control total sobre la infraestructura, un alto rendimiento gracias a los discos NVMe y una fácil escalabilidad a medida que su proyecto crece. Al elegir un VPS de Valebyte.com, obtiene una base fiable para su foro, y seguir las recomendaciones de instalación, configuración HTTPS y mantenimiento regular garantiza un funcionamiento estable y seguro de Flarum.

¿Listo para elegir un servidor?

VPS y servidores dedicados en más de 72 países con activación instantánea y acceso root completo.

Empezar ahora →

Compartir esta publicación:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.