Restyaboard es una aplicación de tablero Kanban gratuita y de código abierto. Es la mejor alternativa autohospedada a Trello. Está escrito en PHP y utiliza PostgreSQL para almacenar su base de datos.
En este tutorial, instalaremos Restyaboard en el servidor CentOS 7.
Requisito previo
- Servidor CentOS 7 mínimo
- Privilegios de raíz
Paso 1:instalar Nginx
Antes de instalar cualquier paquete, se recomienda que actualice los paquetes y el repositorio con el siguiente comando.
yum -y update
Nginx no está disponible en el repositorio predeterminado de CentOS YUM, por lo tanto, también necesitaremos instalar el repositorio EPEL. Puede instalar EPEL escribiendo:
yum -y install epel-release
Ahora puede instalar nginx escribiendo:
yum -y install nginx
Una vez finalizada la instalación, puede ejecutar los siguientes comandos para iniciar nginx y permitir que se inicie automáticamente en el momento del arranque con los siguientes comandos.
systemctl start nginx systemctl enable nginx
Nginx debería estar ejecutándose en su servidor ahora.
Paso 2:instalar y configurar PHP-FPM con Mbstring
Restyaboard es compatible con PHP 7.0, por lo tanto, instalaremos PHP 7.0 para obtener la máxima seguridad y rendimiento. PHP 7.0 no está disponible en el repositorio YUM o EPEL, por lo tanto, necesitaremos instalar el repositorio Webtatic para el mismo. Ejecute el siguiente comando para instalar el repositorio de Webtatic.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Ahora instale PHP 7.0 con PHP-FPM junto con otros 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
Una vez finalizada la instalación, tendremos que configurar algunas cosas. De forma predeterminada, PHP-FPM está configurado para usarse con Apache, deberá cambiar los usuarios para que también pueda funcionar con nginx. Edite el archivo /etc/php-fpm.d/www.conf con su editor de texto favorito. En este tutorial, usaremos el editor nano. Si no tiene nano instalado, puede ejecutar yum -y install nano.
nano /etc/php-fpm.d/www.conf
Ahora busque las siguientes líneas y cambie apache a 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
En lugar de usar un puerto de servidor, usaremos un archivo de socket para PHP-FPM. Busque la siguiente línea.
listen = 127.0.0.1:9000
y Cámbielo a la siguiente línea.
listen = /run/php-fpm/php7.0-fpm.sock
A continuación, busque las siguientes líneas.
;listen.owner = nobody ;listen.group = nobody ;listen.mode = 0660
Cambie los valores a lo siguiente:
listen.owner = nginx listen.group = nginx listen.mode = 0660
Además, deberá configurar la zona horaria en el archivo de configuración de PHP. Edite el archivo de configuración de PHP usando el comando:
nano /etc/php.ini
Busque la siguiente línea y elimine el comentario de la línea y configure la zona horaria de acuerdo con su región. Por ejemplo:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Kolkata
Descomente la línea cgi.fix_pathinfo y cambie el valor a 0.
cgi.fix_pathinfo=0
Además, también necesitará instalar GeoIP. Ejecute el siguiente comando para instalar GeoIP.
yum -y install GeoIP-devel
Ahora habilite la extensión GeoIP agregando la siguiente línea al final de /etc/php.ini
extension=geoip.so
Inicie PHP-FPM y permita que se inicie en el momento del arranque con los siguientes comandos.
systemctl start php-fpm systemctl enable php-fpm
Luego reinicie nginx usando el siguiente comando.
systemctl restart nginx
Paso 3:instalación y configuración de datos de PostgreSQL
PostgreSQL es un objeto de código abierto - sistema de gestión de bases de datos relacionales. Restyaboard usa PostgreSQL para almacenar su base de datos.
PostgreSQL no está disponible en el repositorio YUM o EPEL, deberá instalar el repositorio PostgreSQL.
rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Para instalar PostgreSQL ejecute el siguiente comando.
yum -y install postgresql96-server postgresql96-contrib
El comando anterior instalará PostgreSQL junto con todas las dependencias requeridas en su sistema, antes de usar el software, necesitaremos ejecutar el siguiente comando para inicializar la base de datos.
/usr/pgsql-9.6/bin/postgresql96-setup initdb
Una vez que PostgreSQL está instalado, es hora de configurarlo. Edite /var/lib/pgsql/9.6/data/pg_hba.conf para habilitar la autenticación basada en MD5.
nano /var/lib/pgsql/9.6/data/pg_hba.conf
Busque las siguientes líneas y cambie peer to trust e idnet to 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 vez actualizada, la configuración debería verse como se muestra a continuación.
# 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
Ahora inicie el servidor PostgreSQL y habilítelo para que se inicie automáticamente en el momento del arranque con los siguientes comandos:
systemctl start postgresql-9.6 systemctl enable postgresql-9.6
Ahora cambie la contraseña del usuario predeterminado de PostgreSQL que se creó durante la instalación de PostgreSQL.
passwd postgres
Ahora inicie sesión con el usuario de PostgreSQL usando el siguiente comando.
su - postgres
El comando anterior iniciará sesión en el shell de postgres
Ahora cree un nuevo usuario escribiendo:
createuser rb_user
Ahora cambie al shell de PostgreSQL usando el siguiente comando.
psql
Verá que el aviso en el shell ha cambiado a postgres - #. Ahora ejecute la siguiente consulta para establecer una contraseña para el usuario recién creado para la base de datos de Restyaboard.
ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
Asegúrese de usar un punto y coma al final de la consulta. La consulta anterior le pedirá la contraseña de rb_user dos veces. Ahora cree una nueva base de datos para la base de datos PostgreSQL usando la siguiente consulta.
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;
La consulta anterior creará una base de datos denominada rb_data con codificación UTf8 utilizando template0 y la propiedad se proporcionará a rb_user.
Salga del shell psql al shell de usuario de shell normal del usuario de postgres usando el siguiente comando.
\q
y cambie al usuario raíz nuevamente usando el comando de salida.
Paso 4:descarga Restyaboard
Como ya tenemos todas las dependencias listas, ya podemos descargar Restyaboard. Ejecute el siguiente comando para descargar la versión desplegable lista.
cd /usr/share/nginx/html wget https://github.com/RestyaPlatform/board/releases/download/v0.4.2/board-v0.4.2.zip
Siempre puede encontrar el enlace a la última versión en la página de Restyaboard Github.
Ahora extraiga el archivo usando los siguientes comandos. Si no tiene instalado unzip, puede ejecutar yum -y install unzip.
unzip board-v0.4.2.zip -d board
Una vez que se extrae el archivo, importe el archivo SQL usando el siguiente comando.
psql -d rb_data -f "/usr/share/nginx/html/board/sql/restyaboard_with_empty_data.sql" -U rb_user
Ahora edite el archivo de configuración de Restyaboard para actualizar las credenciales de la base de datos.
nano /usr/share/nginx/html/board/server/php/config.inc.php
Encuentra las siguientes líneas.
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);
Cámbielo de acuerdo con el nombre de la base de datos, el nombre de usuario y la contraseña de la base de datos que hemos creado recientemente para almacenar los datos de Restyaboard. Una vez hecho esto, debería verse como se muestra a continuación.
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 el bloque del servidor Nginx
La configuración del bloque del servidor Restyboard nginx viene empaquetada con el archivo zip. Puede copiar el archivo de configuración a la ubicación del archivo de configuración nginx usando el siguiente comando.
cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d
Ahora necesitará hacer algunos cambios en el archivo. Abra el archivo de configuración con su editor de texto favorito.
nano /etc/nginx/conf.d/restyaboard.conf
Al comienzo de la configuración, busque la siguiente línea.
server { listen 80 default_server; server_name _;
Elimine el texto default_server y proporcione su nombre de dominio después del nombre del servidor. Debería verse como se muestra a continuación.
server { listen 80; server_name board.yourdomain.com;
Busque también la siguiente línea:
root /usr/share/nginx/html;
y
location / { root /usr/share/nginx/html/client; }
y
root /usr/share/nginx/html/client;
Cambie la línea anterior según la carpeta de instalación de Restyaboard. Debería verse como se muestra a continuación.
root /usr/share/nginx/html/board;
y
location / { root /usr/share/nginx/html/board/client; }
y
root /usr/share/nginx/html/board/client
También busque la línea:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
Cámbialo por lo siguiente:
fastcgi_pass unix:/run/php-fpm/php7.0-fpm.sock;
Puede cerrar el archivo ahora. Ahora proporcione la propiedad y el permiso apropiados usando los siguientes comandos.
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
Finalmente, agregue las entradas cron para permitir que las tareas programadas se ejecuten usando los siguientes comandos.
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
Ahora deberá deshabilitar su SELinux porque la configuración de Proxy no funciona con las políticas de SELinux. Para deshabilitar temporalmente SELinux sin reiniciar el servidor, ejecute el siguiente comando.
setenforce 0
Para deshabilitar completamente SELinux, deberá editar el archivo /etc/selinux/config.
nano /etc/selinux/config
Busque la siguiente línea:
SELINUX=enforcing
Cámbialo por:
SELINUX=disabled
Luego reinicie Nginx usando el siguiente comando.
systemctl restart nginx
Ahora puede acceder al servidor yendo a la siguiente URL.
http://board.yourdomain.com
Verá la siguiente pantalla de inicio de sesión.
Ahora inicie sesión con el nombre de usuario admin y la contraseña restya. Una vez que haya iniciado sesión, verá la siguiente pantalla.
Para crear un nuevo tablero, haga clic en la flecha en la esquina izquierda de la página y haga clic en Agregar tablero u organización.
Proporcione un nombre y elija una plantilla para crear un nuevo tablero.
Una vez que haya creado el tablero, se verá como se muestra a continuación.
Para acceder al panel de administración, puede hacer clic en el botón Administrador en la esquina inferior derecha y luego hacer clic en Configuración en la barra superior.
Restyaboard ahora está instalado en su servidor, ahora puede usar el tablero kanban para mejorar el flujo de trabajo de su proyecto.