Restyaboard è un'applicazione per schede Kanban gratuita e open source. È la migliore alternativa self-hosted a Trello. È scritto in PHP e utilizza PostgreSQL per archiviare il suo database.
In questo tutorial, installeremo Restyaboard sul server CentOS 7.
Prerequisito
- Server CentOS 7 minimo
- Privilegi di root
Passaggio 1:installa Nginx
Prima di installare qualsiasi pacchetto si consiglia di aggiornare i pacchetti e il repository utilizzando il comando seguente.
yum -y update
Nginx non è disponibile sul repository CentOS YUM predefinito, quindi dovremo installare anche il repository EPEL. Puoi installare EPEL digitando:
yum -y install epel-release
Ora puoi installare nginx digitando:
yum -y install nginx
Al termine dell'installazione, puoi eseguire i seguenti comandi per avviare nginx e consentirne l'avvio automatico all'avvio utilizzando i seguenti comandi.
systemctl start nginx systemctl enable nginx
Nginx dovrebbe essere in esecuzione sul tuo server ora.
Passaggio 2 - Installa e configura PHP-FPM con Mbstring
Restyaboard supporta PHP 7.0, quindi installeremo PHP 7.0 per la massima sicurezza e prestazioni. PHP 7.0 non è disponibile nel repository YUM o EPEL, quindi dovremo installare il repository Webtatic per lo stesso. Esegui il comando seguente per installare il repository Webtatic.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Ora installa PHP 7.0 con PHP-FPM insieme ad altri 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
Al termine dell'installazione, dovremo configurare alcune cose. Per impostazione predefinita, PHP-FPM è configurato per l'uso con Apache, dovrai cambiare gli utenti in modo che possa funzionare anche con nginx. Modifica il file /etc/php-fpm.d/www.conf utilizzando il tuo editor di testo preferito. In questo tutorial useremo nano editor. Se non hai installato nano, puoi eseguire yum -y install nano.
nano /etc/php-fpm.d/www.conf
Ora trova le seguenti righe e cambia Apache in nginx.
; RPM: apache Choosed to be able to access some dir as httpd user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx
Invece di usare una porta del server, useremo un file socket per PHP-FPM. Trova la riga seguente.
listen = 127.0.0.1:9000
e cambialo nella riga seguente.
listen = /run/php-fpm/php7.0-fpm.sock
Quindi, trova le seguenti righe.
;listen.owner = nobody ;listen.group = nobody ;listen.mode = 0660
Modificare i valori come segue:
listen.owner = nginx listen.group = nginx listen.mode = 0660
Inoltre, dovrai impostare il fuso orario nel file di configurazione PHP. Modifica il file di configurazione PHP usando il comando:
nano /etc/php.ini
Trova la riga seguente e decommenta la riga e imposta il fuso orario in base alla tua regione. Ad esempio:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Kolkata
Decommenta la riga cgi.fix_pathinfo e cambia il valore in 0.
cgi.fix_pathinfo=0
Inoltre dovrai anche installare GeoIP. Esegui il comando seguente per installare GeoIP.
yum -y install GeoIP-devel
Ora abilita l'estensione GeoIP aggiungendo la seguente riga alla fine di /etc/php.ini
extension=geoip.so
Avvia PHP-FPM e abilitalo all'avvio all'avvio utilizzando i seguenti comandi.
systemctl start php-fpm systemctl enable php-fpm
Quindi riavvia nginx usando il seguente comando.
systemctl restart nginx
Fase 3 - Installazione e configurazione dei dati PostgreSQL
PostgreSQL è un sistema di gestione di database relazionali a oggetti open source. Restyaboard utilizza PostgreSQL per archiviare il suo database.
PostgreSQL non è disponibile nel repository YUM o EPEL, dovrai installare il repository PostgreSQL.
rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Per installare PostgreSQL, esegui il seguente comando.
yum -y install postgresql96-server postgresql96-contrib
Il comando precedente installerà PostgreSQL insieme a tutte le dipendenze richieste nel tuo sistema, prima di utilizzare il software, dovremo eseguire il comando seguente per inizializzare il database.
/usr/pgsql-9.6/bin/postgresql96-setup initdb
Una volta installato PostgreSQL, è il momento di configurarlo. Modifica /var/lib/pgsql/9.6/data/pg_hba.conf per abilitare l'autenticazione basata su MD5.
nano /var/lib/pgsql/9.6/data/pg_hba.conf
Trova le seguenti righe e cambia peer in trust e idnet in md5.
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
Una volta aggiornata, la configurazione dovrebbe apparire come quella mostrata di seguito.
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
Ora avvia il server PostgreSQL e abilitalo per l'avvio automatico all'avvio utilizzando i seguenti comandi:
systemctl start postgresql-9.6 systemctl enable postgresql-9.6
Ora cambia la password per l'utente PostgreSQL predefinito che è stato creato durante l'installazione di PostgreSQL.
passwd postgres
Ora accedi usando l'utente PostgreSQL usando il seguente comando.
su - postgres
Il comando precedente accederà alla shell di postgres
Ora crea un nuovo utente digitando:
createuser rb_user
Ora passa alla shell di PostgreSQL usando il seguente comando.
psql
Vedrai che il prompt sulla shell è cambiato in postgres - #. Ora esegui la seguente query per impostare una password per l'utente appena creato per il database Restyaboard.
ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
Assicurati di utilizzare un punto e virgola alla fine della query. La query precedente ti chiederà la password di rb_user due volte. Ora crea un nuovo database per il database PostgreSQL usando la seguente query.
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;
La query precedente creerà un database chiamato rb_data con codifica UTf8 utilizzando template0 e la proprietà verrà fornita a rb_user.
Esci dalla shell psql alla normale shell utente della shell dell'utente postgres usando il comando seguente.
\q
e passa di nuovo all'utente root usando il comando exit.
Fase 4 - Scarica Restyaboard
Poiché abbiamo tutte le dipendenze pronte, ora possiamo scaricare Restyaboard. Esegui il comando seguente per scaricare la versione distribuibile pronta.
cd /usr/share/nginx/html wget https://github.com/RestyaPlatform/board/releases/download/v0.4.2/board-v0.4.2.zip
Puoi sempre trovare il link all'ultima versione nella pagina Restyaboard Github.
Ora estrai l'archivio usando i seguenti comandi. Se non hai unzip installato, puoi eseguire yum -y install unzip.
unzip board-v0.4.2.zip -d board
Una volta estratto l'archivio, importare il file SQL utilizzando il seguente comando.
psql -d rb_data -f "/usr/share/nginx/html/board/sql/restyaboard_with_empty_data.sql" -U rb_user
Ora modifica il file di configurazione di Restyaboard per aggiornare le credenziali del database.
nano /usr/share/nginx/html/board/server/php/config.inc.php
Trova le seguenti righe.
define('R_DB_HOST', 'localhost'); define('R_DB_USER', 'restya'); define('R_DB_PASSWORD', 'hjVl2!rGd'); define('R_DB_NAME', 'restyaboard'); define('R_DB_PORT', 5432);
Modificalo in base al nome del database, nome utente e password del database che abbiamo creato di recente per archiviare i dati Restyaboard. Una volta terminato, dovrebbe apparire come mostrato di seguito.
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);
Passaggio 5:configurazione del blocco server Nginx
La configurazione del blocco del server Retyboard nginx viene fornita con l'archivio zip. Puoi copiare il file di configurazione nella posizione del file di configurazione di nginx usando il comando seguente.
cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d
Ora dovrai apportare alcune modifiche al file. Apri il file di configurazione utilizzando il tuo editor di testo preferito.
nano /etc/nginx/conf.d/restyaboard.conf
All'inizio della configurazione, trova la seguente riga.
server { listen 80 default_server; server_name _;
Rimuovi il testo del server_predefinito e fornisci il tuo nome di dominio dopo il nome del server. Dovrebbe apparire come mostrato di seguito.
server { listen 80; server_name board.yourdomain.com;
Trova anche la seguente riga:
root /usr/share/nginx/html;
e
location / { root /usr/share/nginx/html/client; }
e
root /usr/share/nginx/html/client;
Modificare la riga sopra in base alla cartella di installazione di Restyaboard. Dovrebbe apparire come mostrato di seguito.
root /usr/share/nginx/html/board;
e
location / { root /usr/share/nginx/html/board/client; }
e
root /usr/share/nginx/html/board/client
Trova anche la riga:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
Modificalo come segue:
fastcgi_pass unix:/run/php-fpm/php7.0-fpm.sock;
Puoi chiudere il file ora. Ora fornisci la proprietà e l'autorizzazione appropriate utilizzando i seguenti comandi.
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
Infine, aggiungi le voci cron per consentire l'esecuzione delle attività pianificate utilizzando i seguenti comandi.
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
Ora dovrai disabilitare il tuo SELinux perché la configurazione del proxy non funziona con le politiche di SELinux. Per disabilitare temporaneamente SELinux senza riavviare il server, eseguire il comando seguente.
setenforce 0
Per disabilitare completamente SELinux dovrai modificare il file /etc/selinux/config.
nano /etc/selinux/config
Trova la riga seguente:
SELINUX=enforcing
Cambialo in:
SELINUX=disabled
Quindi riavvia Nginx usando il seguente comando.
systemctl restart nginx
Ora puoi accedere al server andando al seguente URL.
http://board.yourdomain.com
Vedrai la seguente schermata di accesso.
Ora accedi usando il nome utente admin e la password restya. Una volta effettuato l'accesso, vedrai la schermata seguente.
Per creare una nuova bacheca, fai clic sulla freccia nell'angolo sinistro della pagina e fai clic su Aggiungi bacheca o organizzazione.
Fornisci un nome e scegli un modello per creare una nuova bacheca.
Dopo aver creato la bacheca, apparirà come mostrato di seguito.
Per accedere al pannello di amministrazione, puoi fare clic sul pulsante Admin nell'angolo in basso a destra e quindi fare clic su Impostazioni nella barra in alto.
Restyaboard è ora installato sul tuo server, ora puoi utilizzare la kanban board per migliorare il flusso di lavoro del tuo progetto.