Voltar ao blog

Auto-hospede o Rocket.Chat e o Nextcloud no DigitalOcean: Guia Passo a Passo

1 de março de 20265 min
Apps de nuvem gerenciadas

Um Guia Prático para Infraestrutura Open Source Segura e Econômica

Para negócios em crescimento, assinaturas de SaaS podem silenciosamente se tornar um dos maiores itens do orçamento de tecnologia. Uma equipe pagando por Slack e Dropbox pode facilmente gastar centenas ou milhares de dólares por usuário por ano — antes mesmo de excedentes de armazenamento ou complementos empresariais. Existe uma forma melhor.


Implantando as Aplicações

O marketplace de 1-Click Apps do DigitalOcean pré-configura dependências e definições básicas. Lançar um Droplet leva apenas alguns minutos — o 1-Click é um ponto de partida, não um deploy finalizado.

🚀 Rocket.Chat — Mensagens de Equipe Auto-Hospedadas

  • Alternativa completa em recursos ao Slack e ao Microsoft Teams
  • Canais, DMs, videoconferência (Jitsi), compartilhamento de arquivos, bots e uma API REST completa
  • Um Droplet de $24/mês (4GB RAM) atende equipes com menos de 50 usuários
  • Configure o SMTP (Admin → Settings → Email) para que redefinições de senha e notificações cheguem aos usuários
  • Restrinja o registro aberto (Admin → Settings → Accounts → Registration → Disabled)
  • Para equipes maiores: mova o MongoDB para um DigitalOcean Managed Database

☁️ Nextcloud — Sincronização, Compartilhamento e Colaboração de Arquivos

  • Plataforma de arquivos auto-hospedada mais amplamente implantada
  • Colaboração em documentos (Collabora ou OnlyOffice), calendário, contatos, chamadas de vídeo e um rico ecossistema de aplicativos
  • Aponte o armazenamento de arquivos para o DigitalOcean Spaces desde o início — migrar depois é complexo
  • Mude os jobs em segundo plano de AJAX para cron do sistema (Admin → Basic Settings → Background Jobs)

Configuração de Produção

Aplique estas configurações a cada deploy antes de colocá-lo em produção. Elas estão ordenadas por prioridade.

Regras de Firewall e SSL

  • Droplets do DigitalOcean têm todas as portas abertas por padrão
  • Criar um Cloud Firewall é o passo de hardening mais importante — faça isso imediatamente após o lançamento
  • Proteja cada aplicação com um certificado Let's Encrypt via Certbot antes de colocá-la em produção
▶ show code
# Firewall Configuration
# 1. Create a Cloud Firewall in the DigitalOcean control panel:
#    Networking → Firewalls → Create Firewall
#    Inbound rules: TCP 80, TCP 443, TCP <your-ssh-port>

# 2. Harden SSH on the Droplet
sudo nano /etc/ssh/sshd_config
# Set:  Port 2222          (or any non-default port)
# Set:  PasswordAuthentication no
# Set:  PubkeyAuthentication yes

sudo systemctl restart ssh

# 3. Assign the firewall to your Droplet in the control panel

# 4. Install Certbot (Ubuntu + Nginx)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com

# Verify auto-renewal
sudo certbot renew --dry-run
sudo systemctl status certbot.timer

Backups

  • Ative os backups semanais do Droplet — desativados por padrão, custam ~20% do preço mensal do Droplet
▶ show code
# Backups Configuration
# Enable backups: DigitalOcean control panel → Droplet → Backups → Enable
# Cost: ~20% of the Droplet monthly price

Monitoramento e Uptime

  • Instale o agente de métricas do DigitalOcean para habilitar alertas de CPU, memória e disco
  • Adicione verificações de uptime antes que os usuários dependam do serviço — gratuito dentro do painel de controle
  • O UptimeRobot fornece verificações multirregião e uma página pública de status
▶ show code
# Monitoring Configuration
# Install the DigitalOcean metrics agent
curl -sSL https://repos.insights.digitalocean.com/install.sh | sudo bash

# Set alert policies in the control panel:
#   Droplet → Monitoring → Create Alert Policy
#   Thresholds: CPU > 80%, Memory > 85%, Disk > 80%
#   Notify via: email or Rocket.Chat webhook

# Enable Uptime Checks (free):
#   Monitoring → Uptime → Create Check → HTTP/HTTPS
# Add UptimeRobot (uptimerobot.com) for multi-region checks + status page

Rede, Banco de Dados e Logging

  • Use um Reserved IP para que o endereço sobreviva a redimensionamentos e reconstruções do Droplet
  • Coloque todos os Droplets em uma VPC para manter o tráfego interno fora da internet pública
  • Envie os logs para um serviço gerenciado para que sobrevivam a uma reconstrução do Droplet e sejam pesquisáveis entre servidores
  • Limite o tamanho dos arquivos de log locais com o logrotate para evitar o esgotamento do disco
▶ show code
# Networking, Database & Logging Configuration
# Reserved IP — survives Droplet resizes and rebuilds
#   Networking → Reserved IPs → Create → Assign to Droplet

# VPC — keeps internal traffic off the public internet
#   Networking → VPCs → Create VPC
#   Move all Droplets for this project into the same VPC

# Managed Database (Rocket.Chat — MongoDB)
#   Databases → Create → MongoDB → Select plan ($15/mo base)
#   Update Rocket.Chat: set MONGO_URL env var to the managed DB connection string

# Managed Database (Nextcloud — MySQL or PostgreSQL)
#   Update config.php with the new managed DB host, user, and password

# Spaces for Nextcloud file storage (start here — migrating later is complex)
#   Spaces → Create Space → copy endpoint URL and access keys
#   Nextcloud admin panel → External Storage → Add S3-compatible storage

# Centralized logging — forward logs to Papertrail via rsyslog
sudo apt install rsyslog -y
echo "*.* @logs.papertrailapp.com:XXXXX" | sudo tee -a /etc/rsyslog.conf
sudo systemctl restart rsyslog

# Cap local log file sizes with logrotate
sudo nano /etc/logrotate.d/apps
# weekly / rotate 4 / compress / missingok

# Monitor Rocket.Chat MongoDB logs (database errors surface here first)
sudo tail -f /var/log/mongodb/mongod.log

Economia Drástica de Custos em Relação a Alternativas SaaS

Cost Comparison — 25-Person Team

SaaS subscriptions vs. self-hosted stack on DigitalOcean

💸SaaS Subscriptions

Slack Pro

$7.25/user/month × 25

$181/mo

Dropbox Business

$15/user/month × 25

$375/mo
Total

$556/mo

$6,672/yr

🖥️Self-Hosted on DigitalOcean

Rocket.Chat Droplet

4 GB RAM

$24/mo

Nextcloud Droplet + Spaces

2 GB RAM + object storage

$18–30/mo
Total

~$42–54/mo

$504–$648/yr

🎯

~$6,000

saved per year for 25 people — savings that scale as headcount grows

Entre em contato

Interessado em um tema? Deixe uma mensagem e escolha uma categoria. Também estou disponível para uma reunião de consultoria gratuita — entre em contato e combinamos.