Passage de Trello à Focalboard

Découvrez Focalboard, une alternative open source à Trello, et déployez-la facilement sur un VPS Ubuntu avec Docker et Nginx.
Vous connaissez Focalboard ?
C'est l'équivalent de Trello, en opensource, fait par les équipes de Mattermost, ceux qui ont refait Slack en opensource.
Pourquoi ce passage soudain à Focalboard ?
Dernièrement je travaillais sur mes projets persos, j'étais en train de mettre à jour mes petits tableaux, et à un moment j'ai voulu en créer un nouveau pour des tâches spécifiques.
Mais voilà que je tombe sur ceci:

Quelle ne fut pas ma déception.
Et oui en même temps, il faut bien qu'ils gagnent leur vie, je comprends.
L'alternative à Trello
Il n'y en a pas qu'une !
- Taiga qui possède aussi une formule payante
- Focalboard, qui est opensource
- Wekan, opensource mais vieillo (Meteor 1.4 et Node 4)
Mon choix se porte donc sur Focalboard .
Ni une ni deux, je me lance.
Déploiement de Focalboard sur un serveur VPS
J'ai un VPS Ubuntu 24, donc je décide de le mettre à contribution, et je vais vous expliquer pas à pas comment déployer votre instance de Focalboard.
Serveur HTTP
J'ai déjà un Nginx d'installé, mais dans le cas où vous n'avez rien:
apt install nginx
Installation de Docker
Vous pouvez suivre la doc étape par étape sur cette url .
Si vous avez un Ubuntu aussi, vous pouvez juste faire ce qui suit:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Création de notre config Docker Focalboard
Sur le serveur, vais dans /var/www/docker/focalboard, je crée 2 fichiers:
- .env
- docker-compose.yml
mkdir -p /var/www/docker/focalboard
echo "EXCLUDE_ENTERPRISE=1" > /var/www/docker/focalboard/.env
touch /var/www/docker/focalboard/docker-compose.yml
Dans ce fichier docker-compose.yml:
version: "3.7"
services:
focalboard:
image: mattermost/focalboard
container_name: focalboard
ports:
- "8000:8000"
volumes:
- ./focalboard:/data
env_file:
- .env
restart: unless-stopped
Puis un coup de:
docker compose up -d
Et votre instance est up ! Si vous faites un docker ps, vous devriez avoir ceci:

N'hésitez pas à vous faire une redirection sous domaine depuis votre prestataire de domaine.
En bonus, je vous donne une config pour votre nginx:
Dans /etc/nginx/sites-available/focalboard, je mets ceci:
upstream focalboard {
#hash $remote_addr consistent;
server 127.0.0.1:8000;
}
server {
server_name <DOMAIN>;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://focalboard;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
error_page 404 /404.html;
location = /404.html {
internal;
}
}
server {
if ($host = <DOMAIN>) {
return 301 https://$host$request_uri;
}
server_name <DOMAIN>;
listen 80;
return 404; # managed by Certbot
}
server {
if ($host = <DOMAIN>) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name <DOMAIN>;
listen 80;
return 404;
}
Dans cette config il faudra remplacer <DOMAIN> par votre sous domaine: sousdomain.nomdedomain.com
Une fois que vous avez fait ça, il faut activer votre config avec un lien symbolique:
ln -s /etc/nginx/sites-available/focalboard /etc/nginx/sites-enabled/focalboard
Et enfin redémarrer Nginx:
systemctl restart nginx
Et pour le certifical SSL, rien de plus simple, vous installez certbot et vous l'exécutez:
sudo apt install certbot python3-certbot-nginx -y
certbot --nginx
Suivez les étapes... et TADA:

Enjoy !
FAQ
Pourquoi passer à Focalboard plutôt qu'à une autre alternative comme Taiga ?
Taiga propose une formule payante et Wekan repose sur des technologies très anciennes (Meteor 1.4, Node 4). Focalboard est maintenu par l'équipe de Mattermost, ce qui inspire davantage confiance en termes de pérennité et d'activité du projet.
Focalboard peut-il tourner sur n'importe quel serveur, pas seulement Ubuntu ?
L'installation repose sur Docker, ce qui le rend compatible avec la plupart des distributions Linux. La procédure décrite cible Ubuntu 24, mais il suffit d'adapter l'installation de Docker à votre distribution en suivant la documentation officielle.
Le conteneur Docker redémarre-t-il automatiquement en cas de reboot du serveur ?
Oui, la directive restart: unless-stopped dans le fichier docker-compose.yml garantit que le conteneur redémarre automatiquement après un redémarrage du serveur, sauf si vous l'avez arrêté manuellement.
Est-ce que la configuration Nginx fournie gère déjà le HTTPS ?
La config intègre des redirections HTTP vers HTTPS, mais le certificat SSL doit être généré séparément via Certbot. Une fois Certbot installé et exécuté, il complète automatiquement la configuration Nginx.
Où sont stockées les données de Focalboard avec cette configuration Docker ?
Les données sont persistées dans un dossier local nommé focalboard, créé dans le même répertoire que le fichier docker-compose.yml, grâce au volume monté sur /data dans le conteneur.

Alexandre P.
Développeur passionné depuis plus de 20 ans, j'ai une appétence particulière pour les défis techniques et changer de technologie ne me fait pas froid aux yeux.
Poursuivre la lecture


