O Twake Workspace é uma plataforma colaborativa completa que combina chat, videoconferência, gerenciamento de projetos e armazenamento de arquivos em um único ambiente. Para equipes que priorizam a soberania dos dados, segurança e personalização, hospedar o Twake em sua própria infraestrutura é uma decisão estratégica. Este tutorial técnico detalha o processo de instalação do Twake Workspace em um servidor Linux (VPS), garantindo um ambiente self-hosted robusto, escalável e pronto para uso profissional.
O gerenciamento de projetos moderno exige ferramentas que não apenas organizem tarefas, mas também integrem comunicação e documentação. Ao optar pelo self-hosted, você elimina a dependência de terceiros, mantém os dados dentro do seu perímetro de segurança e otimiza custos operacionais a longo prazo. Este guia foca na instalação via Docker Compose, a metodologia mais recomendada para ambientes de produção devido à facilidade de gerenciamento de dependências e escalabilidade.
Pré-requisitos de Infraestrutura
Antes de iniciar o processo de instalar twake, é fundamental garantir que sua VPS atenda aos requisitos mínimos de hardware e software. O Twake é uma aplicação rica em recursos, especialmente quando habilitada para videoconferência e processamento de arquivos grandes.
Especificações Recomendadas:
- CPU: Mínimo de 4 vCPUs (recomendado: 8+ para múltiplos usuários simultâneos).
- RAM: Mínimo de 16 GB (recomendado: 32 GB para alta performance e armazenamento local).
- Armazenamento: SSD NVMe com pelo menos 100 GB livres. O disco deve ser rápido para lidar com operações de banco de dados e uploads de mídia.
- Sistema Operacional: Ubuntu 22.04 LTS ou Debian 11/12 (recomendados pela estabilidade e suporte a Docker).
- Banda Larga: Conexão estável com upload mínimo de 50 Mbps para videoconferências internas fluidas.
Além dos recursos de hardware, você precisará de um domínio DNS apontando para o IP público da sua VPS. O Twake requer HTTPS obrigatório para funcionar corretamente, especialmente para as APIs de mídia e notificações push.
Passo 1: Preparação do Servidor Linux
A primeira etapa envolve atualizar o sistema operacional e instalar as dependências básicas necessárias para a execução dos containers Docker. Acesse sua VPS via SSH utilizando um usuário com privilégios sudo.
sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
Com as ferramentas básicas instaladas, proceda com a instalação do Docker Engine. A versão estável mais recente garante compatibilidade com as imagens oficiais do Twake.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Após a instalação, adicione o usuário atual ao grupo docker para evitar a necessidade de usar sudo em todos os comandos do Docker e reinicie o serviço.
sudo usermod -aG docker $USER
newgrp docker
Instale também o Docker Compose (versão V2, integrada ao CLI do Docker). Verifique a versão instalada para confirmar que tudo está correto.
docker compose version
Passo 2: Configuração de Segurança e Firewall
A segurança é crítica em ambientes self-hosted. Configure o firewall UFW (Uncomplicated Firewall) para permitir apenas o tráfego essencial. Inicialmente, bloqueie todas as conexões exceto SSH.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
Para a instalação inicial do Twake, precisamos liberar as portas 80 (HTTP) e 443 (HTTPS), pois o processo de configuração inicial e obtenção de certificados SSL depende desses protocolos. No entanto, em produção final, todo o tráfego deve passar por um proxy reverso.
sudo ufw allow http
sudo ufw allow https
Passo 3: Estrutura de Diretórios e Configuração do Docker Compose
Crie uma estrutura de diretórios dedicada para o projeto Twake. Isso facilita backups e atualizações futuras.
mkdir -p ~/twake/workspace
cd ~/twake/workspace
Dentro deste diretório, crie o arquivo docker-compose.yml. Este arquivo define os serviços necessários: o servidor principal do Twake, o banco de dados PostgreSQL e o armazenamento MinIO (para objetos/s3 compatível).
nano docker-compose.yml
Cole a seguinte configuração base. **Atenção:** Você deve substituir os valores de senha e variáveis de ambiente por senhas fortes e únicas geradas por um gerenciador de senhas.
version: '3.8'
services:
twake-server:
image: twake/twake-server:latest
container_name: twake-server
restart: unless-stopped
ports:
- "8080:80"
- "8443:443"
environment:
- APP_ENV=prod
- TWAKE_LICENSE_KEY=${TWAKE_LICENSE_KEY}
- DATABASE_URL=postgresql://twake_user:${DB_PASSWORD}@db:5432/twake_db
- REDIS_URL=redis://redis:6379/0
- MINIO_ENDPOINT=minio:9000
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY}
- MINIO_SECRET_KEY=${MINIO_SECRET_KEY}
volumes:
- ./data/twake:/app/data
- ./logs/twake:/app/logs
depends_on:
- db
- redis
- minio
db:
image: postgres:15-alpine
container_name: twake-db
restart: unless-stopped
environment:
- POSTGRES_DB=twake_db
- POSTGRES_USER=twake_user
- POSTGRES_PASSWORD=${DB_PASSWORD}
volumes:
- ./data/db:/var/lib/postgresql/data
redis:
image: redis:7-alpine
container_name: twake-redis
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- ./data/redis:/data
minio:
image: minio/minio:latest
container_name: twake-minio
restart: unless-stopped
command: server /data --console-address ":9001"
environment:
- MINIO_ROOT_USER=${MINIO_ACCESS_KEY}
- MINIO_ROOT_PASSWORD=${MINIO_SECRET_KEY}
volumes:
- ./data/minio:/data
# Opcional: MinIO Client para gerenciar buckets via CLI
mc:
image: minio/mc:latest
depends_on:
- minio
entrypoint: ["sh", "-c", "mc alias set myminio http://minio:9000 ${MINIO_ACCESS_KEY} ${MINIO_SECRET_KEY}; exit 0"]
Crie um arquivo .env na mesma pasta para armazenar as variáveis sensíveis, mantendo-as fora do versionamento de código.
TWAKE_LICENSE_KEY=sua_chave_de_licenca_aqui
DB_PASSWORD=senha_forte_do_banco
MINIO_ACCESS_KEY=admin
MINIO_SECRET_KEY=senha_forte_minio
Passo 4: Inicialização dos Serviços
Agora, baixe as imagens e inicie os containers. O Docker Compose baixará as imagens necessárias do repositório oficial.
docker compose up -d
Verifique o status dos containers para garantir que todos estão rodando sem erros.
docker compose ps
O comando deve retornar o status "Up" para todos os serviços (twake-server, db, redis, minio). Se houver erros, verifique os logs com docker compose logs -f twake-server.
Passo 5: Configuração do Proxy Reverso e SSL (Nginx)
O Twake não deve ser exposto diretamente na porta 8080/8443 em produção. Utilize o Nginx como proxy reverso para gerenciar o tráfego HTTPS e redirecionar as requisições para o container do Twake.
Instale o Nginx e o Certbot (para certificados Let's Encrypt).
sudo apt install nginx certbot python3-certbot-nginx -y
Crie um arquivo de configuração no Nginx:
sudo nano /etc/nginx/sites-available/twake
Insira a seguinte configuração, substituindo seu-dominio.com pelo seu domínio real.
server {
listen 80;
server_name seu-dominio.com www.seu-dominio.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;
# WebSocket support for chat and video
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
# Redirecionar HTTP para HTTPS automaticamente após obter o certificado
server {
listen 443 ssl http2;
server_name seu-dominio.com www.seu-dominio.com;
ssl_certificate /etc/letsencrypt/live/seu-dominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/seu-dominio.com/privkey.pem;
# Configurações de segurança SSL recomendadas
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
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;
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/twake /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Agora, obtenha o certificado SSL. Se o firewall estiver bloqueando a porta 80 (como recomendado após a instalação inicial), você pode precisar desbloqueá-lo temporariamente ou usar o modo standalone do Certbot.
sudo certbot --nginx -d seu-dominio.com -d www.seu-dominio.com
Passo 6: Acesso e Configuração Inicial da Interface Web
Com o Nginx e SSL configurados, abra seu navegador e acesse https://seu-dominio.com. A interface de configuração inicial do Twake será exibida.
- Criação do Super Admin: Insira um nome, email e senha fortes para a conta administrativa. Esta conta terá acesso total ao painel de controle.
- Configuração de Licença: Se você possui uma licença comercial, insira a chave aqui. Para versões de avaliação ou open-source (se aplicável), siga as instruções na tela.
- Detalhes da Empresa: Preencha o nome da organização e logo. Isso personalizará a interface de login e notificações.
Após finalizar o assistente, você será redirecionado para o painel administrativo. Aqui, você pode configurar as regras de acesso, integrar com LDAP/Active Directory (se necessário) e definir políticas de retenção de dados.
Passo 7: Otimização e Manutenção Contínua
Para garantir que o Twake Workspace funcione com máxima produtividade e estabilidade, adicione rotinas de manutenção.
Backup Automatizado:
O backup é a responsabilidade do administrador. Configure um script cron para fazer backup dos volumes de dados (PostgreSQL e MinIO) diariamente.
# Exemplo de script de backup simples
#!/bin/bash
BACKUP_DIR="/backups/twake"
DATE=$(date +%F)
mkdir -p $BACKUP_DIR
# Backup do Banco de Dados
docker exec twake-db pg_dump -U twake_user twake_db > $BACKUP_DIR/db_$DATE.sql
# Backup dos Arquivos (MinIO e Configurações)
tar -czf $BACKUP_DIR/files_$DATE.tar.gz -C /root/twake/workspace/data .
# Remover backups antigos (manter últimos 7 dias)
find $BACKUP_DIR -type f -mtime +7 -delete
Monitoramento:
Utilize ferramentas como Prometheus e Grafana para monitorar o uso de CPU, RAM e disco dos containers. A saúde do banco de dados e a latência das requisições são métricas críticas.
Conclusão
Instalar e configurar o Twake Workspace em uma VPS Linux é um processo que recompensa a equipe com uma plataforma de colaboração poderosa, segura e totalmente sob controle. Ao seguir este tutorial técnico, você estabeleceu uma base sólida para gerenciamento de projetos self-hosted, utilizando práticas modernas de DevOps como Dockerização e Proxy Reverso.
Lembre-se de que a manutenção contínua, incluindo atualizações de segurança do sistema operacional e backups regulares, é essencial para a longevidade da sua infraestrutura. Com o Twake em produção, sua equipe terá acesso a uma suite completa de ferramentas que impulsiona a produtividade sem comprometer a privacidade dos dados.