Cómo instalar el software de gestión de proyectos Kanboard en CentOS 8

Kanboard es un software de gestión de proyectos de código abierto que te ayuda a gestionar tus proyectos y a visualizar tu flujo de trabajo. Utiliza la metodología Kanban y está especialmente diseñado para equipos pequeños que se centran en el minimalismo y la simplicidad. Kanban proporciona una interfaz web sencilla y fácil de usar que te permite gestionar tu proyecto a través de un navegador web. También puedes integrar Kanban con servicios externos utilizando los plugins.

En este tutorial, te mostraremos cómo instalar Kanban con Nginx y Let’s Encrypt SSL en CentOS 8.

Requisitos previos

  • Un servidor con CentOS 8.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada en tu servidor.

Instalar el servidor LEMP

En primer lugar, tendrás que instalar Nginx, MariaDB, PHP y otras extensiones de PHP en tu servidor. Puedes instalarlos todos con el siguiente comando:

dnf install nginx mariadb-server php php-fpm php-mbstring php-cli php-json php-opcache php-zip php-xml php-gd php-ldap php-mysqli php-sqlite3 php-json php-dom -y

Una vez instalados todos los paquetes, inicia el servicio de Nginx, PHP-FPM y MariaDB y permite que se inicien al reiniciar el sistema con el siguiente comando:

systemctl start mariadb
systemctl enable mariadb
systemctl start nginx
systemctl start php-fpm
systemctl enable nginx
systemctl enable php-fpm

A continuación, edita el archivo de configuración de PHP-FPM y cambia el usuario y el grupo de apache a nginx.

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

Cambia las siguientes líneas:

user = nginx
group = nginx

Guarda y cierra el archivo y luego reinicia el servicio PHP-FPM para aplicar los cambios:

systemctl restart php-fpm

Una vez que hayas terminado, puedes pasar al siguiente paso.

Crear una base de datos para Kanban

Kanban utiliza SQLite y MariaDB como base de datos. Así que tendrás que crear una base de datos y un usuario para Kanban.

Primero, conéctate a MariaDB con el siguiente comando:

mysql

Una vez conectado, crea una base de datos y un usuario con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE kanboard CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON kanboard.* TO 'kanboard'@'localhost' IDENTIFIED BY 'password';

A continuación, vacía los privilegios y sal del MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Una vez creada la base de datos y el usuario, puedes pasar al siguiente paso.

Descargar Kanban

En primer lugar, tendrás que descargar la última versión de Kanban desde el repositorio Git Hub. Puedes descargarla con el siguiente comando:

wget https://github.com/kanboard/kanboard/archive/v1.2.18.tar.gz

Una vez completada la descarga, extrae el archivo descargado con el siguiente comando:

tar -xvzf v1.2.18.tar.gz

A continuación, mueve el directorio extraído al directorio raíz de la web Nginx con el siguiente comando:

mv kanboard-1.2.18 /var/www/html/kanboard

A continuación, cambia el directorio a la raíz web de Nginx y copia el archivo de configuración de ejemplo:

cd /var/www/html/kanboard
cp config.default.php config.php

A continuación, edita el archivo de configuración y define la configuración de tu base de datos:

nano config.php

Cambia las siguientes líneas según tu base de datos:

define('DB_DRIVER', 'mysql');

// Mysql/Postgres username
define('DB_USERNAME', 'kanboard');

// Mysql/Postgres password
define('DB_PASSWORD', 'password');

// Mysql/Postgres hostname
define('DB_HOSTNAME', 'localhost');

// Mysql/Postgres database name
define('DB_NAME', 'kanboard');

Guarda y cierra el archivo cuando hayas terminado. A continuación, establece la propiedad y los permisos con el siguiente comando:

chown -R nginx:nginx /var/www/html/kanboard
chmod -R 775 /var/www/html/kanboard

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Nginx para Kanban

A continuación, tendrás que crear un archivo de configuración del host virtual Nginx para alojar Kanban. Puedes crearlo con el siguiente comando:

nano /etc/nginx/conf.d/kanboard.conf

Añade las siguientes líneas:

server {
        listen       80;
        server_name  kanboard.example.com;
        index        index.php;
        root         /var/www/html/kanboard;
        client_max_body_size 32M;

        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php-fpm/www.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_index index.php;
            include fastcgi_params;
        }

        location ~* ^.+\.(log|sqlite)$ {
            return 404;
        }

        location ~ /\.ht {
            return 404;
        }

        location ~* ^.+\.(ico|jpg|gif|png|css|js|svg|eot|ttf|woff|woff2|otf)$ {
            log_not_found off;
            expires 7d;
            etag on;
        }

        gzip on;
        gzip_comp_level 3;
        gzip_disable "msie6";
        gzip_vary on;
        gzip_types
            text/javascript
            application/javascript
            application/json
            text/xml
            application/xml
            application/rss+xml
            text/css
            text/plain;
    }

Guarda y cierra el archivo cuando hayas terminado. A continuación, comprueba que Nginx no tiene errores de sintaxis con el siguiente comando:

nginx -t

Deberías ver la siguiente salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Por último, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

En este punto, Nginx está configurado para servir a kanban. Ahora puedes proceder a acceder al panel de control de kanban.

Configurar SELinux y el cortafuegos

Por defecto, SELinux está activado en CentOS 8. Así que tendrás que configurar el contexto de SELinux para Kanban. Puedes configurarlo con el siguiente comando:

setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/kanban

A continuación, permite los puertos 80 y 443 a través del firewalld con el siguiente comando:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Una vez que hayas terminado, puedes pasar al siguiente paso.

Accede al panel de control de Kanban

Ahora, abre tu navegador web y accede al panel de control de Kanban utilizando la URL http://kanban.example.com. Serás redirigido

redirigido a la página de inicio de sesión del administrador de Kanban:

Inicio de sesión en Kanboard

Proporciona, por defecto, el nombre de usuario y la contraseña como admin / admin y haz clic en el botónIniciar sesión. Deberías ver el panel de control de Kanban en la siguiente página:

Tablero de mandos Kanboard

Asegura Kanban con Let’s Encrypt SSL

A continuación, tendrás que instalar la utilidad Certbot en tu sistema para descargar e instalar Let’s Encrypt SSL para el dominio de Let’s Chat.

Puedes instalar el cliente Certbot con el siguiente comando:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

A continuación, obtén e instala un certificado SSL para tu dominio Let’s Chat con el siguiente comando:

certbot-auto --nginx -d kanban.example.com

El comando anterior instalará primero todas las dependencias necesarias en tu servidor. Una vez instalado, se te pedirá que proporciones una dirección de correo electrónico y que aceptes las condiciones del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for kanban.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/kanban.conf

A continuación, selecciona si quieres redirigir el tráfico HTTP a HTTPS, como se muestra a continuación:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Escribe 2 y pulsa Enter para continuar. Una vez finalizada la instalación, deberías ver el siguiente resultado:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/kanban.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://kanban.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=kanban.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/kanban.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/kanban.example.com/privkey.pem
   Your cert will expire on 2021-04-2. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Ahora puedes acceder a tu Kanban de forma segura utilizando la URL https://kanban.example.com.

Conclusión

Enhorabuena! has instalado con éxito Kanban con Nginx y Let’s Encrypt SSL en CentOS 8. Ahora puedes implementar Kanban en el entorno de desarrollo y empezar a trabajar juntos. No dudes en preguntarme si tienes alguna duda.

Scroll al inicio