Guía de tecnologías

Instalar Restyaboard en CentOS 7

8 min read Tutorial Actualizado 16 Oct 2025
Instalar Restyaboard en CentOS 7
Instalar Restyaboard en CentOS 7

Importante: adapta nombres de host, contraseñas y rutas a tu entorno antes de ejecutar comandos con privilegios.

Objetivo y variantes de intención

  • Objetivo principal: instalar Restyaboard en CentOS 7.
  • Variantes relacionadas: migración a servidor propio, configurar Restyaboard con Nginx, usar PostgreSQL para Restyaboard, desplegar Restyaboard con PHP-FPM.

Requisitos previos

  • Un servidor CentOS 7 mínimo.
  • Acceso root o usuario con privilegios sudo.
  • Conexión a Internet para descargar paquetes.

Paso 1 - Instalar Nginx

Antes de instalar paquetes, actualiza repositorios y paquetes:

yum -y update

Nginx no está en el repositorio YUM por defecto, por eso instalamos EPEL:

yum -y install epel-release

Instala Nginx:

yum -y install nginx

Arranca y habilita Nginx para que se inicie en el arranque:

systemctl start nginx systemctl enable nginx

Comprobación rápida:

  • Verifica que Nginx esté activo: systemctl status nginx
  • Abre el puerto 80 en el firewall si aplica: firewall-cmd –permanent –add-service=http && firewall-cmd –reload

Paso 2 - Instalar y configurar PHP-FPM con mbstring

Restyaboard funciona con PHP 7.0 (según la versión usada en este tutorial). PHP 7.0 no está en los repositorios base; añadimos Webtatic y luego instalamos PHP 7.0 y extensiones necesarias:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Instala PHP 7.0 y módulos requeridos:

yum -y install php70w php70w-fpm php70w-devel php70w-cli php70w-curl php70w-pgsql php70w-mbstring php70w-ldap php70w-pear php70w-imap php70w-xml php70w-pecl-imagick ImageMagick

Configuración clave de PHP-FPM:

Edita /etc/php-fpm.d/www.conf y cambia el usuario y grupo para que PHP-FPM funcione con Nginx:

nano /etc/php-fpm.d/www.conf

Busca y cambia apache por nginx:

user = nginx
group = nginx

Cambia el listen para usar un socket en lugar de puerto:

listen = /run/php-fpm/php7.0-fpm.sock

Asegura permisos del socket:

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Ajustes en php.ini:

nano /etc/php.ini
  • Establece la zona horaria (ejemplo: Asia/Kolkata, cámbiala según tu región):
date.timezone = Asia/Kolkata
  • Descomenta y establece:
cgi.fix_pathinfo=0

Instala GeoIP si lo necesitas y habilítalo en php.ini:

yum -y install GeoIP-devel

Añade al final de /etc/php.ini:

extension=geoip.so

Arranca y habilita PHP-FPM, y reinicia Nginx:

systemctl start php-fpm systemctl enable php-fpm
systemctl restart nginx

Notas de compatibilidad: si tu entorno requiere PHP más reciente (7.2+ o 7.4), considera adaptar Restyaboard o usar una versión compatible; esta guía sigue la versión original del paquete mostrado.

Paso 3 - Instalar y configurar PostgreSQL

Restyaboard emplea PostgreSQL como motor de datos. En este tutorial se usa PostgreSQL 9.6 tal y como aparece en los repositorios oficiales.

Añade el repositorio de PostgreSQL 9.6:

rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Instala PostgreSQL 9.6:

yum -y install postgresql96-server postgresql96-contrib

Inicializa la base de datos:

/usr/pgsql-9.6/bin/postgresql96-setup initdb

Configura autenticación en /var/lib/pgsql/9.6/data/pg_hba.conf para usar MD5 en conexiones locales TCP/IP y trust en sockets locales (según la guía original):

nano /var/lib/pgsql/9.6/data/pg_hba.conf

Modifica las líneas relevantes para que queden así:

local   all             all                                     trust
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

Arranca y habilita PostgreSQL:

systemctl start postgresql-9.6 systemctl enable postgresql-9.6

Cambia la contraseña del usuario del sistema postgres y crea un usuario y base de datos para Restyaboard:

passwd postgres
su - postgres
createuser rb_user
psql
ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;
\q
exit

Sustituye ‘StrongPassword’ por una contraseña segura y guárdala en tu gestor de contraseñas.

Paso 4 - Descargar Restyaboard

Descarga la versión lista para desplegar (ejemplo v0.4.2):

cd /usr/share/nginx/html wget https://github.com/RestyaPlatform/board/releases/download/v0.4.2/board-v0.4.2.zip

Si no tienes unzip, instálalo:

yum -y install unzip

Extrae el ZIP:

unzip board-v0.4.2.zip -d board

Importa el SQL inicial en la base de datos creada:

psql -d rb_data -f "/usr/share/nginx/html/board/sql/restyaboard_with_empty_data.sql" -U rb_user

Configura las credenciales de la base de datos en el archivo de configuración de Restyaboard:

nano /usr/share/nginx/html/board/server/php/config.inc.php

Actualiza las constantes para que apunten a rb_user, rb_data y la contraseña elegida:

define('R_DB_HOST', 'localhost');
define('R_DB_USER', 'rb_user');
define('R_DB_PASSWORD', 'StrongPassword');
define('R_DB_NAME', 'rb_data');
define('R_DB_PORT', 5432);

Paso 5 - Configurar bloque de servidor Nginx

El paquete trae un archivo de configuración para Nginx. Cópialo y adáptalo:

cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d
nano /etc/nginx/conf.d/restyaboard.conf
  • Cambia server_name por tu dominio real: board.tudominio.com
  • Ajusta las directivas root para apuntar a /usr/share/nginx/html/board y client dentro de esa carpeta.
  • Actualiza la ruta del socket de PHP-FPM a: unix:/run/php-fpm/php7.0-fpm.sock;

Ejemplo de cambios importantes dentro del archivo:

server {
        listen 80;
        server_name board.yourdomain.com;
        root /usr/share/nginx/html/board;
        ...
        location / {
                root /usr/share/nginx/html/board/client;
        }
        ...
        fastcgi_pass    unix:/run/php-fpm/php7.0-fpm.sock;
}

Aplica permisos y propietarios adecuados:

chown -R nginx:nginx /usr/share/nginx/html/board/
chmod -R go+w "/usr/share/nginx/html/board/media"
chmod -R go+w "/usr/share/nginx/html/board/client/img"
chmod -R go+w "/usr/share/nginx/html/board/tmp/cache"
chmod -R 0755 /usr/share/nginx/html/board/server/php/shell/*.sh

Añade tareas programadas (cron) para notificaciones y sincronizaciones:

echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/instant_email_notification.sh" >> /var/spool/cron/root
echo "0 * * * * /usr/share/nginx/html/board/server/php/shell/periodic_email_notification.sh" >> /var/spool/cron/root
echo "*/30 * * * * /usr/share/nginx/html/board/server/php/shell/imap.sh" >> /var/spool/cron/root
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/webhook.sh" >> /var/spool/cron/root
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/card_due_notification.sh" >> /var/spool/cron/root

SELinux: la configuración proxy incluida puede no funcionar con políticas Enforcing. Para deshabilitar temporalmente sin reiniciar:

setenforce 0

Para deshabilitar permanentemente, edita /etc/selinux/config y cambia:

SELINUX=disabled

Reinicia Nginx:

systemctl restart nginx

Accede a la aplicación en http://board.yourdomain.com

Verás la pantalla de inicio de sesión de Restyaboard.

Pantalla de inicio de sesión de Restyaboard

Usa admin / restya para el primer acceso (cámbialo inmediatamente después).

Panel principal de Restyaboard

Para crear un tablero nuevo, haz clic en la flecha en la esquina izquierda y selecciona Añadir tablero u Organización.

Crear nuevo tablero en Restyaboard

Proporciona un nombre y elige una plantilla.

Elegir plantilla para el tablero

Ejemplo: tablero recién creado.

Tablero nuevo en Restyaboard

Acceso al panel de administración: clic en Admin abajo a la derecha y luego en Settings en la barra superior.

Acceder al panel de administración

Comprobaciones posteriores a la instalación

  • Accede a la URL pública y verifica el login.
  • Comprueba logs de Nginx: /var/log/nginx/error.log
  • Revisa logs de PHP-FPM: /var/log/php-fpm/error.log (o el que corresponda)
  • Valida conexión a PostgreSQL: psql -U rb_user -d rb_data -h 127.0.0.1
  • Verifica que los cron jobs se hayan registrado: crontab -l -u root

Lista de verificación de despliegue (checklist)

  • Actualizar sistema y paquetes
  • Instalar Nginx y abrir el puerto HTTP/HTTPS
  • Instalar PHP-FPM y extensiones requeridas
  • Configurar socket y permisos de PHP-FPM
  • Instalar PostgreSQL y crear usuario/base de datos
  • Importar esquema SQL de Restyaboard
  • Ajustar configuración en config.inc.php
  • Copiar y ajustar restyaboard.conf a Nginx
  • Establecer permisos de archivos y carpetas
  • Añadir cron jobs de notificaciones
  • Configurar SELinux o política equivalente
  • Probar acceso y cambiar credenciales por defecto

Verificación por roles (role-based checklist)

  • DevOps/Administrador:

    • Asegurar backups regulares de la base de datos.
    • Monitorizar procesos Nginx y PHP-FPM.
    • Mantener actualizaciones de seguridad.
  • Administrador de la aplicación:

    • Cambiar usuario y contraseña admin.
    • Configurar correo saliente para notificaciones.
    • Definir políticas de acceso y organizaciones.
  • Usuario final / Equipo:

    • Crear tableros y plantillas.
    • Importar datos si procede.
    • Validar integraciones (webhooks, IMAP).

Seguridad y endurecimiento (hardening)

  • Cambia contraseñas por defecto inmediatamente.
  • Ejecuta el servicio bajo un usuario no root (ya usamos nginx).
  • Habilita HTTPS con certificados válidos (Let’s Encrypt) y fuerza redirección a HTTPS.
  • Limita acceso SSH con autenticación por clave y deshabilita login por contraseña para root.
  • Habilita cortafuegos y reglas restrictivas (firewalld/iptables).
  • Realiza copias de seguridad periódicas de la base de datos y del directorio /usr/share/nginx/html/board.

Sugerencia rápida para certbot:

yum -y install certbot python2-certbot-nginx
certbot --nginx -d board.yourdomain.com

Resolución de problemas comunes

  • Error 502 Bad Gateway: verifica que PHP-FPM esté en ejecución y que fastcgi_pass apunte al socket correcto (/run/php-fpm/php7.0-fpm.sock). Revisa permisos del socket.
  • Fallos al conectar con la base de datos: confirma credenciales en config.inc.php y que PostgreSQL acepte conexiones desde localhost con md5.
  • Imposible escribir archivos (subida de imágenes o cache): revisa permisos en /usr/share/nginx/html/board/media y tmp/cache.
  • Jobs programados no se ejecutan: confirma las entradas en crontab para root y permisos de los scripts .sh.

Alternativas y cuándo no usar esta guía

  • Si prefieres Docker, una alternativa más moderna es desplegar Restyaboard en contenedores (imagen oficial o mantenida). Esta guía está orientada a un despliegue bare-metal con paquetes RPM.
  • Para nuevas instalaciones en entornos con PHP 7.4+ o PHP 8, verifica compatibilidad de Restyaboard o utiliza una versión del proyecto compatible.

Mini-metodología de despliegue (pasos rápidos)

  1. Preparar servidor y repositorios.
  2. Instalar y configurar Nginx y PHP-FPM.
  3. Instalar PostgreSQL, crear usuario y base.
  4. Descargar Restyaboard y ajustar config.
  5. Configurar Nginx, permisos y cron.
  6. Probar y endurecer seguridad.

Pruebas de aceptación básicas

  • El servicio web carga la página de login.
  • Inicio de sesión con credenciales iniciales (y cambio de contraseña exitoso).
  • Creación de un tablero y subida de una imagen de tarjeta.
  • Envío y recepción de notificaciones por correo (si está configurado SMTP).

Mantenimiento y migración

  • Para migrar a otra máquina: exporta la base de datos (pg_dump) y copia el directorio /usr/share/nginx/html/board/media.
  • Para actualizar Restyaboard: revisa las notas de la versión en Github y realiza backups antes de reemplazar archivos.

Notas sobre SELinux y alternativas

Si no puedes deshabilitar SELinux por políticas corporativas, en lugar de deshabilitarlo crea y aplica una política personalizada que permita los accesos necesarios a Nginx y PHP-FPM. Deshabilitar SELinux reduce la superficie de seguridad.

Glosario (1 línea)

  • PHP-FPM: FastCGI Process Manager para PHP, maneja procesos PHP en segundo plano.
  • Nginx: servidor web y reverse proxy de alto rendimiento.
  • PostgreSQL: sistema de gestión de bases de datos relacional de código abierto.
  • SELinux: módulo de seguridad obligatorio en CentOS/RHEL.

Resumen final

Restyaboard queda instalado tras configurar Nginx, PHP-FPM y PostgreSQL, ajustar permisos y registrar los cron jobs. Cambia las credenciales por defecto y habilita HTTPS antes de poner la instancia en producción.

Punto clave

  • Guarda copias de seguridad y automatiza actualizaciones de seguridad.

Gracias por seguir esta guía. Si encuentras un paso que no funciona en tu entorno, revisa los logs y las rutas de sockets/archivos antes de cambiar configuraciones globales.

Autor
Edición

Materiales similares

Vídeo como foto de perfil en Facebook (Android)
Redes sociales

Vídeo como foto de perfil en Facebook (Android)

Crear dominio de autenticación WiKID
Autenticación

Crear dominio de autenticación WiKID

Abrir y editar ODT en el navegador
Productividad

Abrir y editar ODT en el navegador

Haz que Windows 11 parezca ChromeOS
Personalización Windows

Haz que Windows 11 parezca ChromeOS

Replicación MySQL con SSL en CentOS 5.4
Bases de Datos

Replicación MySQL con SSL en CentOS 5.4

Cómo abrir AppImage en Linux
Linux

Cómo abrir AppImage en Linux