🚀 Instalar Flarum en un servidor con HestiaCP — Guía completa
Requisitos: Ubuntu 20.04 / 22.04 · Acceso SSH como root · Dominio con DNS ya apuntando al servidor
Resumen de pasos
| Paso | Acción | Dónde |
| 1 | Instalar HestiaCP en el servidor | SSH |
| 2 | Crear usuario en HestiaCP | Panel HestiaCP |
| 3 | Crear dominio para el usuario | Panel HestiaCP |
| 4 | Crear base de datos MySQL | Panel HestiaCP |
| 5 | Habilitar extensiones PHP para Flarum | Panel HestiaCP |
| 6 | Instalar Composer para el usuario | SSH |
| 7 | Instalar Flarum | SSH |
| 8 | Cambiar el document root a /public | Panel HestiaCP |
| 9 | Completar instalación web de Flarum | Navegador |
Paso 1 — Instalar HestiaCP
Dónde: SSH como root
⚠️ HestiaCP debe instalarse en un servidor limpio, sin ningún otro servidor web (Apache/Nginx/MySQL) preinstalado.
Conéctate al servidor y ejecuta el instalador oficial:
# Conectarse al servidor
ssh root@TU_IP_SERVIDOR
# Descargar el instalador
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
# Ejecutar el instalador (con Apache + PHP + MySQL)
bash hst-install.sh --apache yes --phpfpm yes --mysql yes --named yes --exim yes --dovecot yes
El instalador te pedirá una dirección de email y el FQDN del panel. Anota la contraseña de administrador que se muestra al finalizar.
ℹ️ Accede al panel en: https://TU_IP:8083 — Usuario: admin
Paso 2 — Crear usuario en HestiaCP
Dónde: Panel HestiaCP → Usuarios
Cada sitio web en HestiaCP vive dentro de un usuario del sistema. Crea uno específico para Flarum:
- Accede al panel y haz login como
admin
- Ve a Usuarios y haz clic en Añadir usuario (+)
- Rellena: nombre de usuario (ej.
flarum), contraseña, email, nombre completo
- En Paquete, selecciona
default
- Haz clic en Guardar
ℹ️ Usa un nombre sin caracteres especiales. Este nombre será también el directorio home en el servidor (/home/flarum/).
Paso 3 — Crear dominio
Dónde: Panel HestiaCP → Web
- Selecciona el usuario recién creado desde el panel de admin
- Ve a la sección Web
- Haz clic en Añadir dominio Web (+)
- Introduce el dominio (ej.
foro.tudominio.com)
- Marca la opción SSL (Let's Encrypt) para HTTPS automático
- Haz clic en Guardar
⚠️ Asegúrate de que los DNS ya apuntan a la IP del servidor antes de activar SSL — si no, la generación del certificado fallará.
Paso 4 — Crear base de datos MySQL
Dónde: Panel HestiaCP → Bases de datos
- Dentro del usuario, ve a la sección Bases de datos
- Haz clic en Añadir base de datos (+)
- Introduce un nombre (ej.
flarum_db)
- Establece una contraseña segura
- Haz clic en Guardar
ℹ️ HestiaCP prefija automáticamente el nombre con el usuario del sistema. Anota los tres datos: nombre completo de la BD, usuario de la BD y contraseña — los necesitarás en el Paso 9.
Paso 5 — Habilitar extensiones PHP ⚠️
Dónde: Panel HestiaCP → Web → Editar dominio → Configuración PHP
Este es el primer punto crítico que la mayoría se salta. HestiaCP viene con un perfil de PHP básico y Flarum necesita extensiones que no están activas por defecto.
Extensiones obligatorias
curl
dom
gd
json
mbstring
openssl
pdo_mysql
tokenizer
zip
fileinfo
exif
Cómo activarlas
- En el panel, ve a Web → tu dominio → haz clic en Editar (lápiz)
- Desplázate hasta la sección PHP → Configuración PHP
- Marca las casillas de todas las extensiones listadas arriba
- Haz clic en Guardar — HestiaCP reiniciará PHP-FPM automáticamente
Para verificar desde terminal:
php -m | grep -E 'curl|dom|gd|mbstring|pdo_mysql|zip|fileinfo'
Paso 6 — Instalar Composer
Composer es el gestor de dependencias de PHP que utiliza Flarum.
# Instalar Composer globalmente
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
# Verificar instalación
composer --version
✅ Al instalarlo en /usr/local/bin/, queda disponible para todos los usuarios del sistema, incluido el usuario HestiaCP que gestiona el dominio.
Paso 7 — Instalar Flarum
Dónde: SSH como root o como el usuario HestiaCP
El directorio raíz por defecto en HestiaCP es /home/USUARIO/web/DOMINIO/public_html/.
# Accede a la carpeta del dominio (ajusta usuario y dominio)
cd /home/flarum/web/foro.tudominio.com/
# Eliminar el contenido por defecto de HestiaCP (si existe)
rm -rf public_html/*
# Instalar Flarum con Composer
composer create-project flarum/flarum public_html
# Ajustar permisos
chown -R flarum:flarum public_html/
find public_html/ -type d -exec chmod 755 {} \;
find public_html/ -type f -exec chmod 644 {} \;
⚠️ La instalación puede tardar varios minutos. No interrumpas el proceso.
Paso 8 — Cambiar el Document Root a /public ⚠️
Dónde: Panel HestiaCP → Web → Editar dominio
Este es el segundo punto crítico. Flarum sitúa los archivos públicos en una subcarpeta /public por seguridad. Hay que indicarle a HestiaCP que el directorio raíz del sitio es esa subcarpeta.
- En el panel, ve a Web
- Haz clic en Editar (lápiz) sobre el dominio de Flarum
- Busca el campo Document Root o Directorio raíz
- Cambia el valor de
/ a /public
- Haz clic en Guardar
Esto hace que las peticiones HTTP apunten a:
/home/flarum/web/foro.tudominio.com/public_html/public/
⚠️ Sin este cambio, Flarum mostrará un error 403 o un listado de archivos en lugar de cargarse correctamente.
Paso 9 — Completar la instalación desde el navegador
Abre tu dominio en el navegador:
https://foro.tudominio.com
El instalador web de Flarum te pedirá:
- Nombre del foro
- Idioma por defecto
- Datos de la base de datos:
- Host:
127.0.0.1
- Nombre de la BD (con prefijo del usuario)
- Usuario de la BD
- Contraseña
- Prefijo de tabla (puedes dejarlo vacío o usar
flarum_)
- Cuenta de administrador: nombre de usuario, email y contraseña
Si ves errores de permisos durante la instalación web:
chmod -R 775 /home/flarum/web/foro.tudominio.com/public_html/storage/
chmod -R 775 /home/flarum/web/foro.tudominio.com/public_html/public/assets/
✅ ¡Listo! El foro Flarum ya debería estar accesible y funcional en tu dominio.
Verificación final
# Comprobar que Flarum responde correctamente
curl -I https://foro.tudominio.com
# Ver logs de PHP si hay problemas
tail -f /var/log/php*fpm*.log
# Ver logs del dominio
tail -f /home/flarum/web/foro.tudominio.com/log/error.log
Recursos
Y de regalo, video preparado sobre esto: