Guida alle tecnologie

Installare Restyaboard su CentOS 7

7 min read Guide. Aggiornato 16 Oct 2025
Restyaboard su CentOS 7 — Guida completa
Restyaboard su CentOS 7 — Guida completa

Installa Nginx, PHP-FPM (socket), PostgreSQL 9.6, poi scarica e configura Restyaboard nella directory di Nginx. Usa un utente PostgreSQL dedicato, aggiorna i file di configurazione PHP e Nginx, assegna i permessi corretti e aggiungi i cron job forniti. In alternativa evita di disabilitare completamente SELinux e preferisci regole mirate o un container.

Importante: questa guida presuppone privilegi root su CentOS 7 minimo. PHP 7.0 indicato dalla guida originale non riceve più aggiornamenti ufficiali: valuta un runtime supportato nel tuo contesto di produzione.

Panoramica

Restyaboard è un’applicazione Kanban open source e gratuita. È una valida alternativa auto-ospitata a servizi come Trello. È scritta in PHP e usa PostgreSQL per il database. Questa guida spiega passo passo l’installazione su un server CentOS 7, indicando comandi, file da modificare e verifiche finali.

Cosa serve

  • Server CentOS 7 minimo
  • Accesso root (o sudo)
  • Connettività a Internet per scaricare pacchetti e release

Indice rapido

  • Passo 1 — Installare Nginx
  • Passo 2 — Installare e configurare PHP-FPM e mbstring
  • Passo 3 — Installare e configurare PostgreSQL
  • Passo 4 — Scaricare e importare Restyaboard
  • Passo 5 — Configurare il server block di Nginx
  • Controlli, backup, sicurezza e risoluzione dei problemi

Passo 1 - Installare Nginx

Aggiorna pacchetti e repository prima di procedere:

yum -y update

Nginx non è nel repository YUM predefinito di CentOS, quindi abilita EPEL e poi installa Nginx:

yum -y install epel-release
yum -y install nginx

Avvia Nginx e abilitalo all’avvio:

systemctl start nginx systemctl enable nginx

Verifica che Nginx sia attivo:

systemctl status nginx

Note:

  • Se usi firewall (firewalld), apri la porta HTTP:
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
  • Se preferisci HTTPS, configura un certificato (Let’s Encrypt) più avanti.

Passo 2 - Installare e configurare PHP-FPM con mbstring

Restyaboard originariamente richiede PHP 7.0. L’esempio usa Webtatic per ottenere PHP 7.0 su CentOS 7. Se possibile, preferisci una versione più recente e supportata di PHP compatibile con Restyaboard.

Aggiungi il repository Webtatic:

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

Installa PHP 7.0, PHP-FPM e i moduli richiesti:

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

Configurazione PHP-FPM (socket):

Per compatibilità con Nginx modifica la configurazione predefinita. Apri il file di pool:

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

Cambia l’utente e il gruppo da apache a nginx:

user = nginx
group = nginx

Usa un socket invece di una porta TCP. Trova e sostituisci:

listen = 127.0.0.1:9000

con:

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

Imposta proprietà e permessi del socket:

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

Imposta il fuso orario in /etc/php.ini (adatta all’Italia):

nano /etc/php.ini

Nella sezione [Date] imposta:

date.timezone = Europe/Rome

Disabilita cgi.fix_pathinfo per sicurezza:

cgi.fix_pathinfo=0

Installa GeoIP e abilita l’estensione:

yum -y install GeoIP-devel
# Aggiungi nel file /etc/php.ini alla fine
extension=geoip.so

Avvia PHP-FPM e abilitalo al boot, poi riavvia Nginx:

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

Nota di sicurezza

  • PHP 7.0 non è aggiornato; valuta versioni più nuove o contenitori isolati.

Passo 3 - Installare e configurare PostgreSQL

Restyaboard usa PostgreSQL come motore dati. In questa guida si installa PostgreSQL 9.6 dal repository ufficiale:

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

Inizializza il database:

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

Configura l’autenticazione per richiedere password (MD5). Modifica il file pg_hba.conf:

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

Sostituisci le righe di autenticazione locali con:

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

Avvia PostgreSQL e abilitalo al boot:

systemctl start postgresql-9.6 systemctl enable postgresql-9.6

Imposta la password dell’utente di sistema postgres:

passwd postgres

Cambia utente e crea un ruolo per Restyaboard:

su - postgres
createuser rb_user
psql

Nel prompt psql imposta la password e crea il database:

ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;
\q
exit

Sostituisci StrongPassword con una password robusta e gestiscila in modo sicuro.

Backup rapido del database (utile prima di importare/aggiornare):

pg_dump -U rb_user -d rb_data -F c -f /root/rb_data-backup.dump

Passo 4 - Scaricare Restyaboard

Scarica la release pronta per il deploy nella directory web di Nginx:

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

Estrai l’archivio (installa unzip se necessario):

yum -y install unzip
unzip board-v0.4.2.zip -d board

Importa lo schema SQL nella base dati creata:

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

Modifica il file di configurazione PHP del progetto per impostare le credenziali del database:

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

Sostituisci le definizioni con le tue credenziali:

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);

Salva il file.

Passo 5 - Configurare il server block di Nginx

Copia la configurazione fornita nel pacchetto in /etc/nginx/conf.d:

cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d
nano /etc/nginx/conf.d/restyaboard.conf

Modifica l’inizio del server block: rimuovi default_server e inserisci il tuo dominio:

server {
        listen 80;
        server_name board.tuodominio.com;

Aggiorna i root path per puntare alla cartella estratta:

root /usr/share/nginx/html/board;

location / {
    root /usr/share/nginx/html/board/client;
}

root /usr/share/nginx/html/board/client;

Inoltre modifica la direttiva fastcgi_pass per usare il socket configurato:

fastcgi_pass    unix:/run/php-fpm/php7.0-fpm.sock;

Salva e chiudi.

Imposta proprietà e permessi:

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

Aggiungi i cron job per le attività pianificate di Restyaboard:

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: raccomandazioni

La guida originale disabilita SELinux. Disattivarlo riduce la sicurezza. Preferisci soluzioni mirate:

  • Per test temporanei puoi eseguire: setenforce 0 (non persiste al riavvio).
  • Per un approccio sicuro, abilita i boolean necessari o crea una policy locale con audit2allow. Ad esempio:
# Permettere a nginx di connettersi alla rete (es. per proxy/DB remoto)
setsebool -P httpd_can_network_connect 1

Se decidi di disabilitarlo permanentemente, modifica /etc/selinux/config e riavvia. Preferisci sempre una policy mirata in produzione.

Riavvia Nginx:

systemctl restart nginx

Ora puoi raggiungere l’applicazione via browser:

http://board.tuodominio.com

Interfaccia iniziale e credenziali

Schermate mostrate dall’installazione (ALT text localizzati):

Schermata di login di Restyaboard

Accedi con l’username admin e password restya (cambia subito la password dopo il primo login). Dopo il login vedrai la dashboard:

Dashboard principale di Restyaboard

Per creare una nuova board clicca sull’icona a sinistra e poi su Add Board o Organization:

Interfaccia per creare una nuova board

Scegli un nome e un template:

Selezione template per la board

Esempio di board creata:

Esempio di nuova board in Restyaboard

Per accedere al pannello di amministrazione clicca Admin in basso a destra e poi Settings in alto:

Accesso al pannello amministrativo

Controlli post-installazione

Esegui queste verifiche rapide:

  • Verifica che Nginx risponda: curl -I http://localhost
  • Controlla PHP-FPM: systemctl status php-fpm
  • Controlla PostgreSQL: systemctl status postgresql-9.6
  • Conferma che i file media siano scrivibili da nginx
  • Accedi alla pagina web e cambia la password admin

Backup e ripristino (procedure rapide)

Backup database (dump compresso):

pg_dump -U rb_user -d rb_data -F c -f /root/rb_data-$(date +%F).dump

Ripristino da dump:

pg_restore -U rb_user -d rb_data /root/rb_data-YYYY-MM-DD.dump

Backup dei file upload e configurazioni:

tar czf /root/rb_files-$(date +%F).tar.gz /usr/share/nginx/html/board/media /usr/share/nginx/html/board/server/php/config.inc.php

Sicurezza e hardening consigliati

  • Non usare le credenziali predefinite; cambia password admin al primo accesso.
  • Usa HTTPS con Let’s Encrypt o certificati propri.
  • Limita l’accesso SSH solo da indirizzi noti e usa chiavi pubbliche.
  • Evita di disabilitare SELinux; applica le policy necessarie.
  • Esegui gli upgrade del sistema e del runtime PHP in manutenzione programmata.

Risoluzione dei problemi comuni

Nginx mostra 502 Bad Gateway

  • Controlla il socket PHP-FPM: ls -l /run/php-fpm/php7.0-fpm.sock
  • Verifica che php-fpm sia attivo: systemctl status php-fpm
  • Controlla i log: /var/log/nginx/error.log e /var/log/php-fpm/error.log

Connessione a PostgreSQL rifiutata

  • Verifica pg_hba.conf e che PostgreSQL sia in ascolto su localhost.
  • Controlla che rb_user abbia password impostata correttamente nel file config.inc.php.

Upload file non salvati

  • Verifica i permessi sulle cartelle media, tmp e client/img. Devono essere scrivibili dall’utente nginx.

Checklist operativa (ruoli)

Sysadmin

  • Aggiornare il sistema
  • Installare e configurare Nginx, PHP-FPM, PostgreSQL
  • Applicare regole SELinux o policy mirate
  • Configurare backup automatici

Application admin

  • Importare lo schema SQL
  • Configurare config.inc.php
  • Creare account admin e utenti

Utente finale

  • Creare board e template
  • Impostare permessi e membership della board

Mini-metodologia per aggiornamenti

  1. Test: replica l’ambiente in staging.
  2. Backup: dump del DB e archiviazione dei file.
  3. Aggiornamento: esegui l’upgrade dei pacchetti e del codice.
  4. Verifica: controlla log, funzionalità principali e login.
  5. Rollback: ripristina dal backup se necessario.

Glossario (1 riga ciascuno)

  • Nginx: server HTTP usato per servire file statici e proxy verso PHP-FPM.
  • PHP-FPM: FastCGI Process Manager per eseguire codice PHP in pool.
  • PostgreSQL: database relazionale usato da Restyaboard.
  • Socket: file UNIX usato per comunicare tra Nginx e PHP-FPM.

Riepilogo finale

Restyaboard è ora installato e funzionante sul tuo server CentOS 7. Assicurati di cambiare le password predefinite, applicare HTTPS e definire una procedura di backup e aggiornamento. Valuta la migrazione a PHP supportato o l’uso di container per migliorare la sicurezza e la manutenibilità.

Note importanti

  • Non lasciare in produzione una versione di PHP non supportata. Pianifica l’aggiornamento.
  • Evita di disattivare permanentemente SELinux senza valutare gli impatti.

Buon lavoro con Restyaboard — usa le checklist sopra per una gestione ordinata e ripetibile dell’installazione.

Autore
Redazione

Materiali simili

Installare e usare Podman su Debian 11
DevOps

Installare e usare Podman su Debian 11

Guida rapida a apt-pinning su Debian
Linux

Guida rapida a apt-pinning su Debian

Forzare FSR 4 con OptiScaler: guida completa
Guide.

Forzare FSR 4 con OptiScaler: guida completa

Dansguardian + Squid NTLM su Debian Etch
Rete

Dansguardian + Squid NTLM su Debian Etch

Riparare errore installazione SD su Android
Android

Riparare errore installazione SD su Android

Cartelle di rete con KNetAttach e remote:/
Linux

Cartelle di rete con KNetAttach e remote:/