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
rootou um usuário com permissõessudo. - 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.
- Crie um nome de usuário e senha fortes.
- O sistema criará automaticamente um espaço de trabalho inicial.
- 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.
- 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
- 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.
- 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
- 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, utilizepg_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.