Como Instalar o Focalboard no Linux Passo a Passo

11 min de leitura Gerenciamento de Projetos
Como Instalar o Focalboard no Linux Passo a Passo

Focalboard é uma ferramenta de gerenciamento de projetos open-source, muitas vezes descrita como uma alternativa robusta ao Trello, mas com foco em privacidade e controle total dos dados. Para profissionais de TI, desenvolvedores e equipes que priorizam a soberania de dados, instalar o focalboard self-hosted em um servidor Linux é a escolha ideal. Este tutorial guia você pela instalação completa, configuração do banco de dados SQLite (para ambientes leves) ou PostgreSQL (para escalabilidade), e acesso via navegador.

O objetivo aqui é fornecer um método estável para instalar focalboard linux, utilizando o binário oficial fornecido pela Mattermost (empresa por trás do projeto). Vamos configurar o serviço para rodar como um daemon systemd, garantindo que a ferramenta inicie automaticamente após reinicializações da VPS. Este guia é essencial para quem busca uma ferramenta trello alternativa moderna, com suporte a Kanban, Tabelas e Calendários, sem depender de serviços em nuvem terceirizados.

Pré-requisitos do Ambiente

Antes de iniciar o processo de instalação, certifique-se de que seu ambiente atenda aos seguintes requisitos mínimos:

  • Sistema Operacional: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, Debian 11 ou 12, ou CentOS/RHEL 8/9.
  • Permissões: Acesso com privilégios de root ou um usuário com permissões sudo.
  • Conexão: Conexão estável à internet para baixar os pacotes e o binário.
  • Recursos: Mínimo de 512MB de RAM (recomendado 1GB+) e 10GB de disco.

Para este tutorial, utilizaremos Ubuntu 22.04 como exemplo principal, mas os comandos são facilmente adaptáveis para outras distribuições baseadas em Debian/Ubuntu.

Passo 1: Atualização do Sistema e Instalação de Dependências

O primeiro passo é garantir que o sistema esteja atualizado e que as ferramentas necessárias estejam instaladas. Vamos precisar do curl para baixar os arquivos, wget como alternativa, e utilitários padrão do sistema.

sudo apt update && sudo apt upgrade -y
sudo apt install curl wget unzip sqlite3 -y

Se você planeja usar o PostgreSQL em vez do SQLite para maior escalabilidade futura, instale o servidor PostgreSQL agora:

sudo apt install postgresql postgresql-contrib -y

No entanto, para a maioria dos casos de uso de gerenciamento projetos linux em pequena e média escala, o SQLite é suficiente, mais leve e não requer configuração complexa de banco de dados. Vamos prosseguir com a instalação padrão que utiliza SQLite, mas mencionaremos a opção PostgreSQL ao final.

Passo 2: Criação do Usuário do Sistema

Por questões de segurança, o Focalboard nunca deve rodar como usuário root. Criamos um usuário dedicado e um grupo para isolar os processos e arquivos da aplicação.

sudo groupadd focalboard
sudo useradd -M -s /bin/nologin -g focalboard -d /opt/focalboard focalboard

Este comando cria o usuário focalboard, define seu diretório home como /opt/focalboard (onde instalaremos os arquivos) e impede login shell, aumentando a segurança do servidor.

Passo 3: Download e Extração dos Arquivos

Agora, vamos baixar a versão estável mais recente do Focalboard. Verifique sempre o repositório oficial no GitHub para a última versão disponível. Neste exemplo, usaremos a versão 7.0.0, mas substitua pelo número da versão mais recente se houver atualização.

cd /tmp
FOCALBOARD_VERSION="7.0.0"
wget https://github.com/mattermost/focalboard/releases/download/v${FOCALBOARD_VERSION}/focalboard-${FOCALBOARD_VERSION}-linux-amd64.tar.gz

Após o download, extraia os arquivos em um diretório permanente, como /opt:

sudo tar -xvzf focalboard-${FOCALBOARD_VERSION}-linux-amd64.tar.gz
sudo mv focalboard /opt/focalboard-server

Agora, defina as permissões corretas para que o usuário criado anteriormente possa acessar e modificar os arquivos necessários:

sudo chown -R focalboard:focalboard /opt/focalboard-server
sudo chmod -R 755 /opt/focalboard-server

Passo 4: Configuração do Banco de Dados SQLite

O Focalboard precisa de um local para armazenar seus dados. Vamos criar um diretório específico para o banco de dados e configurar o arquivo de ambiente.

sudo mkdir -p /opt/focalboard-server/data
sudo chown -R focalboard:focalboard /opt/focalboard-server/data

Crie ou edite o arquivo .env na raiz do diretório de instalação para definir as variáveis de ambiente. Este arquivo controla como o servidor se comporta.

cd /opt/focalboard-server
sudo nano .env

Adicione ou verifique as seguintes linhas no arquivo .env:

FOCALBOARD_SINGLE_USER_MODE=true
FOCALBOARD_DATA_DIR=/opt/focalboard-server/data
FOCALBOARD_CONFIG_FILE=/opt/focalboard-server/config.json

A configuração FOCALBOARD_SINGLE_USER_MODE=true é crucial para instalações simples onde você é o único usuário ou quando se usa SQLite. Ela simplifica a autenticação e evita a necessidade de configurar um servidor Mattermost completo.

Passo 5: Configuração do Serviço Systemd

Para que o Focalboard rode como um serviço em segundo plano (daemon), criaremos uma unidade systemd. Isso permite iniciar, parar e reiniciar o serviço facilmente, além de garantir a inicialização automática.

sudo nano /etc/systemd/system/focalboard.service

Cole o seguinte conteúdo no arquivo:

[Unit]
Description=Focalboard Server
After=network.target

[Service]
Type=simple
User=focalboard
Group=focalboard
ExecStart=/opt/focalboard-server/bin/focalboard-server -single-user-mode -config /opt/focalboard-server/config.json
Restart=on-failure
WorkingDirectory=/opt/focalboard-server

[Install]
WantedBy=multi-user.target

Explicação das diretivas:

  • User/Group: Especifica que o serviço rodará sob o usuário focalboard.
  • ExecStart: Define o comando para iniciar o servidor. O flag -single-user-mode é essencial para a instalação standalone.
  • WorkingDirectory: Define o diretório de trabalho padrão.

Salve o arquivo (Ctrl+O, Enter) e saia (Ctrl+X). Em seguida, recarregue o systemd e inicie o serviço:

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

Verifique se o serviço está rodando corretamente:

sudo systemctl status focalboard.service

Você deve ver uma mensagem indicando que o serviço está active (running). Se houver erros, verifique os logs com journalctl -u focalboard.service -e.

Passo 6: Configuração do Nginx como Reverse Proxy

Acessar o Focalboard diretamente pela porta padrão (8000) não é seguro nem prático. A melhor prática é instalar e configurar o Nginx como um proxy reverso, permitindo o uso de HTTPS e um domínio personalizado.

6.1 Instalação do Nginx e Certbot

sudo apt install nginx certbot python3-certbot-nginx -y

6.2 Configuração do Site no Nginx

Crie um novo arquivo de configuração para o seu domínio (substitua seu-dominio.com pelo seu domínio real):

sudo nano /etc/nginx/sites-available/focalboard

Insira a seguinte configuração:

server {
    listen 80;
    server_name seu-dominio.com www.seu-dominio.com;

    # Redirecionar HTTP para HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name seu-dominio.com www.seu-dominio.com;

    # Caminhos para os certificados SSL (serão gerados pelo Certbot)
    ssl_certificate /etc/letsencrypt/live/seu-dominio.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/seu-dominio.com/privkey.pem;

    # Segurança SSL
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # Tamanho máximo do upload (útil para anexos em cartões)
    client_max_body_size 50M;

    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $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;
        
        # WebSocket support (para atualizações em tempo real)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Ative a configuração e teste o Nginx:

sudo ln -s /etc/nginx/sites-available/focalboard /etc/nginx/sites-enabled/
sudo nginx -t

Se o teste for bem-sucedido, recarregue o Nginx:

sudo systemctl reload nginx

6.3 Configuração do SSL com Let's Encrypt

Agora, obtenha os certificados SSL gratuitos para criptografar a conexão:

sudo certbot --nginx -d seu-dominio.com -d www.seu-dominio.com

Siga as instruções no terminal. O Certbot irá modificar automaticamente a configuração do Nginx para usar os certificados e configurar o redirecionamento HTTPS.

Passo 7: Acesso e Configuração Inicial

Agora que tudo está configurado, abra seu navegador e acesse https://seu-dominio.com.

A primeira vez que você acessar, o Focalboard pedirá para criar uma conta de administrador. Como estamos em modo single-user, esta conta será sua credencial principal.

  1. Crie um nome de usuário e senha fortes.
  2. O sistema criará automaticamente um espaço de trabalho inicial.
  3. Você terá acesso ao painel Kanban padrão, onde pode criar cartões, listas e organizar tarefas.

A interface é intuitiva, permitindo arrastar e soltar cartões entre colunas (To Do, In Progress, Done), adicionar etiquetas, datas de vencimento, atribuições e comentários. Para equipes que buscam uma wiki colaborativa, o Focalboard também oferece páginas vinculadas a cards, facilitando a documentação de projetos dentro do próprio fluxo de trabalho.

Dica Avançada: Usando PostgreSQL para Escalabilidade

Se sua equipe crescer ou você precisar de maior robustez, o SQLite pode se tornar um gargalo. O Focalboard suporta nativamente PostgreSQL.

  1. Crie um banco de dados e usuário no PostgreSQL:
sudo -u postgres psql
CREATE USER focalboard WITH PASSWORD 'senha_forte';
CREATE DATABASE focalboarddb OWNER focalboard;
GRANT ALL PRIVILEGES ON DATABASE focalboarddb TO focalboard;
\q
  1. Instale a biblioteca driver do PostgreSQL no servidor Focalboard:
cd /opt/focalboard-server
sudo apt install libpq-dev
# Você pode precisar compilar o driver ou garantir que o binário suporte PG. 
# Na versão standalone, geralmente basta configurar o .env.
  1. Edite o arquivo .env:
FOCALBOARD_SINGLE_USER_MODE=false
FOCALBOARD_DATA_DIR=/opt/focalboard-server/data
# Configuração do banco de dados PostgreSQL
FOCALBOARD_DB_DRIVER=postgres
FOCALBOARD_DB_SOURCE=host=localhost user=focalboard password=senha_forte dbname=focalboarddb sslmode=require
  1. Reinicie o serviço:
sudo systemctl restart focalboard.service

Considerações Finais sobre Segurança e Manutenção

Manter uma instalação focalboard self-hosted exige atenção contínua à segurança. Aqui estão algumas dicas essenciais para sysadmins:

  • Firewall: Use UFW ou Iptables para bloquear a porta 8000, permitindo apenas acesso via Nginx (portas 80 e 443).
sudo ufw allow 'Nginx Full'
sudo ufw deny 8000
  • Atualizações: Monitore o GitHub para novas versões. A atualização geralmente envolve baixar o novo binário, parar o serviço, substituir os arquivos e reiniciar.
sudo systemctl stop focalboard.service
# Substitua os arquivos em /opt/focalboard-server pelo novo download
sudo systemctl start focalboard.service
  • Backups: O backup é crítico. Faça cópias regulares do diretório /opt/focalboard-server/data (que contém o banco SQLite) e do arquivo de configuração. Se usar PostgreSQL, utilize pg_dump.
sudo tar -czvf /backup/focalboard-backup-$(date +%F).tar.gz /opt/focalboard-server/data
sudo pg_dump -U focalboard focalboarddb > /backup/focalboard-db-$(date +%F).sql

Conclusão

Instalar o Focalboard em um Linux é um processo direto que oferece um controle total sobre seu fluxo de trabalho. Ao escolher esta ferramenta trello alternativa open-source, você investe em privacidade, personalização e integração com sua infraestrutura existente. Seja para uso pessoal como uma wiki colaborativa ou para gestão de sprints de desenvolvimento, o Focalboard rodando em sua própria VPS é uma solução madura e eficiente.

Com este tutorial, você agora possui as ferramentas necessárias para instalar focalboard linux, configurar um ambiente seguro com Nginx e SSL, e manter a operação estável. Aproveite o poder do Kanban open-source sem depender de plataformas externas.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000