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