Kanboard é uma ferramenta de gerenciamento de projetos visual baseada no método Kanban, conhecida por sua leveza, simplicidade e foco na automação de fluxos de trabalho. Diferente de plataformas SaaS pesadas que exigem assinaturas mensais e compartilham seus dados em servidores de terceiros, hospedar o Kanboard em sua própria VPS Ubuntu oferece controle total sobre a infraestrutura, privacidade absoluta para projetos sensíveis e custos operacionais previsíveis.
Neste tutorial técnico, demonstraremos como instalar e configurar o Kanboard utilizando Docker. Essa abordagem garante isolamento de dependências, facilita atualizações via imagem oficial e simplifica o backup do banco de dados e dos arquivos anexos. O foco é criar um ambiente robusto para gerenciamento de projetos self-hosted, ideal para equipes que buscam automatização ágil sem a complexidade de ferramentas corporativas excessivas.
Pré-requisitos e Planejamento da Infraestrutura
Antes de iniciar a instalação, certifique-se de que sua VPS atenda aos requisitos mínimos para rodar o Docker e o banco de dados SQLite (padrão do Kanboard) ou PostgreSQL. Para pequenas e médias equipes, uma instância com 1 vCPU e 512MB a 1GB de RAM é suficiente.
Você precisará de:
- Uma VPS Ubuntu (versões 20.04 LTS ou 22.04 LTS recomendadas) com acesso root ou usuário com privilégios sudo.
- Docker Engine e Docker Compose instalados na máquina.
- Um domínio apontando para o IP da sua VPS (opcional, mas recomendado para uso profissional) ou acesso direto via IP.
- Conhecimento básico de linha de comando Linux.
Se você ainda não possui o Docker instalado, execute os comandos abaixo para preparar o ambiente. Este passo é crucial para garantir que a instalação do Kanboard na VPS seja limpa e reproduzível.
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Verifique a instalação executando docker --version e docker compose version. Ambos devem retornar números de versão recentes.
Estrutura de Diretórios para Docker Kanboard
A boa prática em administração de sistemas recomenda manter os dados persistentes separados dos contêineres efêmeros. Criaremos uma estrutura de diretórios dedicada para armazenar o banco de dados SQLite, uploads de arquivos e a configuração do Docker Compose.
sudo mkdir -p /opt/kanboard/data
sudo mkdir -p /opt/kanboard/uploads
sudo chown -R $USER:$USER /opt/kanboard
A pasta /opt/kanboard/data armazenará o arquivo data.db, que contém todas as informações do projeto. A pasta /opt/kanboard/uploads guardará os arquivos anexados às tarefas. Isso permite que você faça backup apenas dessas pastas para restaurar seu sistema em caso de falha, um aspecto crítico para quem busca um Kanban privado e seguro.
Criação do Arquivo Docker Compose
O coração da nossa instalação será o arquivo docker-compose.yml. Ele define os serviços necessários: a aplicação Kanboard e, opcionalmente, um serviço de proxy reverso (como Nginx ou Traefik) para gerenciar certificados SSL. Para este tutorial, focaremos na configuração básica do contêiner Kanboard, que pode ser acessada via porta exposta ou integrada a um proxy existente.
Crie o arquivo no diretório criado:
cd /opt/kanboard
nano docker-compose.yml
Insira o seguinte conteúdo. Note a utilização de volumes para persistência de dados e a configuração de variáveis de ambiente para segurança inicial.
version: '3.8'
services:
kanboard:
image: kanboard/kanboard:v1.2.40
container_name: kanboard_app
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./data:/var/www/app/data
- ./uploads:/var/www/app/uploads
environment:
- PHPCFG_OVERRIDES_database_driver=sqlite
# Defina uma senha forte e complexa para o admin inicialmente
- KANBOARD_AUTH_METHOD=form
networks:
- kanboard-net
networks:
kanboard-net:
driver: bridge
Explicação técnica:
image: kanboard/kanboard:v1.2.40: Utilizamos a imagem oficial da Docker Hub, garantindo segurança e atualizações mantidas pela comunidade.volumes: Mapeamos as pastas locais para dentro do contêiner. Se você excluir o contêiner, os dados permanecem no disco host.ports: "8080:80": Expõe a porta 80 interna do Kanboard para a porta 8080 da sua VPS. Isso evita conflitos com outros serviços web que possam usar a porta 80 padrão.
Inicialização e Verificação dos Contêineres
Agora, inicie os serviços definidos no arquivo docker-compose.yml. O Docker baixará a imagem se ela não estiver presente localmente e iniciará o contêiner.
cd /opt/kanboard
sudo docker compose up -d
Aguarde alguns segundos e verifique o status do contêiner:
sudo docker ps
Você deve ver o kanboard_app listado como "Up". Se houver erros, verifique os logs com sudo docker logs kanboard_app.
Acesse http://SEU_IP:8080 no navegador. Você será redirecionado para a tela de login. As credenciais padrão são:
- Login: admin
- Senha: admin
Importante: Após o primeiro login, altere imediatamente a senha e crie um novo usuário administrador se necessário. A credencial padrão é um risco de segurança conhecido.
Configuração de Segurança e Proxy Reverso (Nginx)
Acessar via porta não é ideal para produção. Para transformar sua instalação em uma solução profissional de gerenciamento de projetos self-hosted, configure um proxy reverso com Nginx e SSL/HTTPS. Isso criptografa a comunicação entre o navegador da equipe e a VPS.
Instale o Nginx:
sudo apt install -y nginx certbot python3-certbot-nginx
Crie um bloco de servidor no Nginx. Substitua kanboard.seudominio.com pelo seu domínio real.
sudo nano /etc/nginx/sites-available/kanboard
server {
listen 80;
server_name kanboard.seudominio.com;
location / {
proxy_pass http://127.0.0.1:8080;
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;
}
}
Ative a configuração e teste o Nginx:
sudo ln -s /etc/nginx/sites-available/kanboard /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Agora, obtenha o certificado SSL gratuito via Let's Encrypt:
sudo certbot --nginx -d kanboard.seudominio.com
Siga as instruções do Certbot. Ao finalizar, seu Kanboard estará acessível via https://kanboard.seudominio.com, garantindo que seus dados de automatização ágil trafeguem seguros.
Configuração de Automação e Fluxos Ágeis
Com a plataforma rodando, o próximo passo é configurar a lógica de trabalho. O Kanboard brilha em cenários onde processos repetitivos podem ser automatizados. Vamos configurar uma regra simples: quando uma tarefa for movida para a coluna "Concluído", ela deve ser automaticamente atribuída ao último usuário que a editou e um comentário deve ser adicionado.
- Faça login no Kanboard.
- No menu superior direito, clique em Configurações > Automatização do Projeto.
- Selecione a ação:
Mova uma tarefa para uma coluna específica. - Defina a condição:
Coluna atual é "Concluído". - Adicione a ação associada:
Adicionar um comentário com o conteúdo.... - No campo de conteúdo, insira:
A tarefa foi finalizada automaticamente pelo sistema. - Clique em Salvar.
Essa configuração básica demonstra o poder do Kanboard na VPS: você cria regras personalizadas que se adaptam ao fluxo da sua equipe, sem depender de plugins pagos ou limitações de interface.
Habilitando Integração com Git/GitHub
Para desenvolvedores e equipes de TI, a integração com repositórios é essencial. O Kanboard permite vincular tarefas a commits do Git.
- Vá em Configurações > Integração de Repositório.
- Selecione
GitHub,GitLabouGitea. - Insira o Token de Acesso Pessoal (PAT) gerado na plataforma de hospedagem de código.
- Salve e teste a conexão.
Com isso, ao fazer push no seu repositório com uma referência à tarefa (ex: #123 Fix bug), a tarefa no Kanboard será atualizada automaticamente. Isso reduz o atrito entre o desenvolvimento e o gerenciamento de projetos.
Backup Automatizado da Instância
A responsabilidade pelo backup recai sobre você ao optar por Kanban privado self-hosted. Não podemos depender do suporte técnico de uma plataforma externa para recuperar seus dados. Vamos criar um script simples de backup usando cron.
Crie o arquivo /opt/kanboard/backup.sh:
#!/bin/bash
# Configurações
BACKUP_DIR="/opt/kanbackups"
DATA_DIR="/opt/kanboard/data"
UPLOADS_DIR="/opt/kanboard/uploads"
DATE=$(date +"%Y%m%d_%H%M%S")
# Cria o diretório de backup se não existir
mkdir -p $BACKUP_DIR
# Compacta os dados essenciais
tar czf $BACKUP_DIR/kanboard_backup_$DATE.tar.gz -C /opt kanboard/data kanboard/uploads
# Remove backups antigos (mantém últimos 7 dias)
find $BACKUP_DIR -name "kanboard_backup_*.tar.gz" -mtime +7 -delete
echo "Backup realizado em $(date)"
Torne o script executável e configure o cron para rodar diariamente às 3 da manhã:
chmod +x /opt/kanboard/backup.sh
crontab -e
Adicione a linha:
0 3 * * * /opt/kanboard/backup.sh >> /var/log/kanboard-backup.log 2>&1
Este script garante que seu banco de dados SQLite e arquivos anexos sejam preservados. Para restauração, basta descompactar o arquivo .tar.gz nas pastas correspondentes e reiniciar o contêiner Docker.
Otimização de Desempenho e Manutenção
O Kanboard é extremamente leve, mas em ambientes com centenas de usuários ativos ou milhares de tarefas, algumas otimizações podem ser úteis.
Uso de Banco de Dados Externo (Opcional)
Embora o SQLite funcione bem para a maioria dos casos, se você planeja escalar para uma equipe grande ou múltiplos projetos simultâneos com alta concorrência, considere migrar para PostgreSQL. Isso requer alterar o docker-compose.yml para incluir um serviço postgres e ajustar as variáveis de ambiente database_driver e credenciais.
Monetização de Logs do Docker
Para evitar que os logs do contêiner ocupem todo o disco da VPS, configure o driver de log no docker-compose.yml:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
Isso limita cada arquivo de log a 10MB e mantém apenas os 3 arquivos mais recentes.
Conclusão e Próximos Passos
Instalar o Kanboard em uma VPS Ubuntu com Docker é um processo direto que oferece retornos significativos em termos de controle, privacidade e personalização. Você agora possui uma plataforma de gerenciamento de projetos self-hosted pronta para uso, segura e automatizada.
As vantagens desta abordagem incluem:
- Privacidade Total: Seus dados nunca saem da sua infraestrutura.
- Custos Baixos: Sem mensalidades por usuário ou recurso.
- Personalização Ilimitada: Altere regras de automação, integre com qualquer API e estenda funcionalidades.
- Controle da Equipe: Defina quem tem acesso ao que, essencial para controle tarefas equipe em ambientes corporativos sensíveis.
Para expandir suas capacidades, explore o repositório de plugins do Kanboard ou desenvolva seus próprios scripts de integração via API REST. A plataforma é modular e projetada para ser o centro nervoso da produtividade da sua equipe.
Lembre-se sempre de manter seu Docker e a imagem do Kanboard atualizados para garantir a segurança contra vulnerabilidades conhecidas. Use sudo docker compose pull seguido de sudo docker compose up -d regularmente para aplicar patches.
Agora, invite sua equipe, configure seus quadros e comece a implementar uma cultura de automatização ágil verdadeiramente sob seu controle.