Focalboard es una alternativa de código abierto a herramientas como Asana, Trello y Notion. Disponible como aplicación independiente o integrada en la plataforma Mattermost, Focalboard ayuda a los desarrolladores a mantenerse alineados para completar tareas, alcanzar hitos y lograr sus objetivos.

Pasos previos

Para instalar Focalboard necesitamos tener configurado un Nginx. Para este tutorial usaremos Ubuntu 22.04.

Instalación y configuración de Nginx

Lo primero será instalar Nginx en nuestro servidor y luego deberemos de configurar un Nginx Proxy para el puerto 8000, pero con algo más de configuración de lo normal.

apt install nginx

Creamos un fichero de configuración para FocalBoard:

touch /etc/nginx/sites-available/focalboard.conf

Dentro del fichero añadimos lo siguiente:

upstream focalboard {
   server localhost:8000;
   keepalive 32;
}

server {
   listen 80 default_server;

   server_name tudominio.com;

   location ~ /ws/* {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       client_body_timeout 60;
       send_timeout 300;
       lingering_timeout 5;
       proxy_connect_timeout 1d;
       proxy_send_timeout 1d;
       proxy_read_timeout 1d;
       proxy_pass http://focalboard;
   }

   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://focalboard;
   }
}

Habilitamos el servidor:

ln -s /etc/nginx/sites-available/focalboard.conf /etc/nginx/sites-enabled/focalboard.conf

Y reiniciamos Nginx:

systemctl reload nginx

Configuración de SSL

Para configurar el certificado SSL con Let's Encrypt, deberás de seguir este otro tutorial que explica como crearlo:

Cómo utilizar Certbot para configurar un SSL de Let’s Encrypt en GNU/Linux
Certbot es una maravillosa herramienta que puedes utilizar para generar un certificado SSL con Let’s Encrypt e instalarlo y configurar automáticamente en tu servidor web.

Instalación de PostgreSQL

Aunque FocalBoard se puede utilizar con SQLite o MySQL/MariaDB, es altamente recomendable hacerlo con PostgreSQL, para ello deberemos de seguir estos pasos:

apt install postgresql postgresql-contrib

Accedemos como usuario postgres:

sudo --login --user postgres
psql

Y creamos la base de datos y el usuario:

CREATE DATABASE boards;
CREATE USER boardsuser WITH PASSWORD 'contraseña-segura';
\q

Salimos de la sesión de postgres:

exit

Instalación de FocalBoard

Ahora que tenemos prácticamente todo configurado, nos tocará descargar el repositorio y realizar la configuración apropiada.

wget https://github.com/mattermost/focalboard/releases/download/v7.2.1/focalboard-server-linux-amd64.tar.gz
📢
Para cuando se ha escrito este tutorial, la versión disponible en Github es la v7.2.1, revisa si hay una versión nueva disponible para poderla instalar directamente esa.

Descomprimimos directamente en /opt:

tar zxf focalboard-server-linux-amd64.tar.gz -C /opt/

Editaremos el fichero de configuración para añadir la configuración de la base de datos, si hemos instalado PostgreSQL, deberemos de configurar lo siguiente:

nano /opt/focalboard/config.json
"dbtype": "postgres",
"dbconfig": "postgres://boardsuser:contraseña-segura@localhost/boards?sslmode=disable&connect_timeout=10",
📢
Recuerda de modificar el usuario y la contraseña de la dbconfig.

Configurar un servicio de SystemD

Para poder levantar o reiniciar la aplicación crearemos un servicio especifico, para ello crearemos el fichero:

nano /lib/systemd/system/focalboard.service

Con el siguiente contenido:

[Unit]
Description=Focalboard server

[Service]
Type=simple
Restart=always
RestartSec=5s
ExecStart=/opt/focalboard/bin/focalboard-server
WorkingDirectory=/opt/focalboard

[Install]
WantedBy=multi-user.target

Actualizamos los demonios, arrancamos al arranque e iniciamos el servicio:

systemctl daemon-reload
systemctl start focalboard.service
systemctl enable focalboard.service

En este paso, el servicio debería de estar levantado y ya podemos acceder con nuestro dominio y crearnos una cuenta nueva.

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación