Nextcloud em casa, do zero
Como montar sua própria nuvem privada com hardware encostado, instalar o Nextcloud em menos de três minutos via ZimaOS e configurar tudo que o Google Drive faz — backup automático de fotos, share links, edição online — sem pagar mensalidade nem entregar seus arquivos pra Big Tech.
Sumário
Por que ter sua nuvem
Eu pagava R$ 95 por mês no plano de 2 TB do Google Drive. Em doze meses isso vira R$ 1.140 jogados fora por algo que você pode construir em casa com hardware que já tá encostado. Em cinco anos é quase seis mil reais — o suficiente pra comprar três HDs de 6 TB novos.
Mas o dinheiro é só metade do argumento. A outra metade é posse. Quando você clica em "aceitar os termos" de uma Big Tech, está entregando a chave da sua casa. Eles escaneiam suas fotos, leem seus documentos pra treinar IA, e se um algoritmo decidir que você violou uma regra obscura, sua conta inteira pode ser banida sem aviso. Você perde contatos, e-mail, histórico de vida em um segundo e depois é "você que lute" — tem casos documentados de gente que perdeu décadas de arquivos por um falso positivo.
Com o Nextcloud rodando em casa, os dados são cem por cento seus. Não tem rastreador invisível, não tem IA lendo as coisas, e ninguém aperta um botão em outro continente pra apagar seus arquivos. E como bônus, a nuvem fica mais rápida dentro de casa: o tráfego não vai pra internet, vai direto pelo roteador, de um dispositivo pro outro. Numa rede de 2.5 Gb com internet de 250 Mb de upload, mover arquivos localmente é literalmente dez vezes mais rápido que mandar pro Google.
O hardware que serve
Você não precisa de NAS de cinco mil reais. Pra uso pessoal, isso é burrice financeira. O coração da minha nuvem é um ZimaBoard 2: minúsculo, consome menos que uma lâmpada e roda 24/7 sem barulho. Mas dá pra usar coisa ainda mais simples — qualquer computador ou notebook abandonado por aí serve.
| Hardware | Custo aprox. | RAM | Consumo | Quando faz sentido |
|---|---|---|---|---|
| ZimaBoard 2 | R$ 1.500–2.500 | 8–16 GB | ~10 W | Setup limpo, silencioso, 24/7 sem culpa de conta de luz |
| Mini-PC (N100/N305) | R$ 1.200–2.000 | 8–32 GB | 10–15 W | Mais RAM, melhor pra rodar Plex + Nextcloud juntos |
| Notebook velho | R$ 0 (você já tem) | 4–16 GB | 15–30 W | Pra testar sem investir nada. Bateria vira UPS de graça. |
| Raspberry Pi 5 | R$ 800–1.200 | 4–8 GB | ~7 W | Performance ok pra 1–2 usuários, ideal pra quem quer brincar |
Pros HDs, mesma lógica: pegue o que você tem encostado. Aqui em casa o sistema roda na memória interna de 64 GB do ZimaBoard, e pros arquivos eu plug um HD antigo de 1 TB num SATA e um HD externo de 2 TB no USB 3.0. São 3 teras de equipamento sem uso virando ativo real.
Se sua rede local é 2.5 Gb, o teto de transferência é ~300 MB/s. HDs mecânicos modernos saturam isso de boa. Trocar pra NVMe só faz sentido se você for migrar pra rede de 10 Gb — antes disso, é rasgar dinheiro.
Pré-requisitos
O tutorial assume que você vai pelo caminho mais fácil — ZimaOS, a distro Linux com interface gráfica feita pra homelab. Mas dá pra rodar em Ubuntu/Debian puro com Docker, se preferir.
O que você precisa antes de começar:
- O hardware ligado, com rede via cabo (Wi-Fi serve, mas cabo é mais estável)
- Pelo menos um disco extra pra dados (não precisa ser novo)
- ZimaOS instalado (siga o guia oficial — boota por USB, formata o disco do sistema)
- O IP do ZimaOS na sua rede (descubra pelo painel do roteador ou no display do dispositivo)
- Reserva de DHCP no roteador pro IP do servidor não mudar (ou IP fixo manual)
Em qualquer Linux com Docker instalado, você pode rodar o Nextcloud All-in-One: docker run -d --restart=unless-stopped --publish 8080:8080 --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config --volume /var/run/docker.sock:/var/run/docker.sock:ro nextcloud/all-in-one:latest. Os passos a partir da seção 5 valem igual.
Instalação via ZimaOS
Aqui mora o "uau" da história. No ZimaOS, instalar o Nextcloud é mais parecido com
instalar app no celular do que com administrar servidor. Esqueça terminal, esqueça
apt, esqueça config file. Cinco passos:
Abra o ZimaOS no navegador
Digite o IP do seu ZimaBoard (ex: http://192.168.1.50) em qualquer navegador da sua rede. Faça login com o usuário que você criou na primeira inicialização.
Acesse a loja de aplicativos
No painel principal, clica em App Store. Busca por Nextcloud no campo de pesquisa. Vai aparecer o card oficial — clica nele.
Configure a pasta de dados
Antes de clicar em "Install", o ZimaOS pergunta onde guardar os arquivos. Mapeia a pasta interna /var/www/html/data pro seu HD externo ou disco extra (ex: /DATA/Storage). É aqui que seus arquivos vão viver de verdade.
Você também pode mudar a porta padrão (8080) se ela já estiver ocupada por outro app.
Clica em Install e espera
O ZimaOS baixa a imagem Docker do Nextcloud, configura volumes, sobe o container. Demora 1–2 minutos. Quando o status mudar pra Running, terminou.
Abre o Nextcloud
Clica no ícone do Nextcloud no painel — ele abre numa nova aba em http://IP-DO-ZIMA:8080. Tela de boas-vindas pra criar o usuário admin. Pronto, sua nuvem tá no ar.
Em ZimaOS 1.2 e anteriores, há um bug intermitente em que o container reinicia em loop nas primeiras 24h. O fix é simples — após a instalação, acessa Settings → Docker → Update Engine e atualiza pra última versão estável. Threads no r/selfhosted confirmam que isso resolve o problema em 100% dos casos reportados.
Primeira configuração
Com o Nextcloud aberto, três coisas pra fazer antes de subir o primeiro arquivo:
1. Criar o usuário admin (e um segundo "user")
Na primeira tela, cria um login admin com senha forte — esse é só pra
administração. Não use ele no dia a dia. Depois, em
Configurações → Usuários, cria um segundo login pra você
mesmo (ex: viktor) e marca como usuário normal, sem privilégios admin.
É boa prática separar — se você comprometer a sessão do dia a dia, o admin tá
intacto.
2. Configurar o domínio confiável
Se você só vai acessar pelo IP local, pula. Se quiser acessar por nome (ex:
nuvem.casa.local), edita o config.php dentro do container
ou pelo painel do ZimaOS. Adiciona seu domínio em
trusted_domains:
'trusted_domains' => array(
0 => '192.168.1.50',
1 => 'nuvem.casa.local',
2 => 'nuvem.viktorkav.com.br',
),
3. Ativar HTTPS (importante)
HTTP puro só na rede interna. Pra qualquer coisa que sair de casa, HTTPS. Você tem três caminhos:
- Cloudflare Tunnel — gratuito, cuida do certificado, expõe sem abrir porta no roteador. Mais simples se você tem domínio.
- Tailscale + HTTPS — gera certificado interno via
tailscale cert. Cobre acesso remoto seguro sem expor pra internet (ver tutorial do Tailscale). - Nginx Proxy Manager + Let's Encrypt — pra quem quer expor diretamente. Mais setup, mais controle.
O caminho que eu uso e recomendo é Tailscale.
App mobile + auto-backup
O app oficial do Nextcloud (iOS e Android) faz o que o Google Fotos faz, gratuito, e os arquivos ficam na sua casa. Configuração leva 2 minutos.
Instala o app
Procura por Nextcloud na App Store ou Play Store. App oficial verde, ~80 MB.
Conecta no servidor
Na tela inicial, cola a URL completa (ex: http://192.168.1.50:8080). O app abre uma página de autenticação web — loga com o usuário que você criou e autoriza o token.
Ativa o auto-upload de fotos
Em Configurações → Upload automático, liga as pastas de Câmera e Screenshots. Define a pasta destino no servidor (ex: /Photos/iPhone). Marca Apenas no Wi-Fi se não quiser estourar plano de dados.
Testa o background
Fecha o app, tira uma foto, espera 30 segundos. Volta no app — deve aparecer "1 upload pendente" e completar. No iOS, o background do app é restrito; você precisa abrir o app de vez em quando pra ele sincronizar (ou usar atalho do iOS Shortcuts pra forçar).
Vídeos 4K do iPhone podem ter 2–4 GB cada. Se você grava muito, considera desativar upload automático de vídeos e fazer manual quando estiver em casa, no Wi-Fi.
Acesso de fora de casa
Aqui mora a maior dúvida — e a maior pegadinha. A reação natural é abrir uma porta no roteador (port forwarding) e mapear pro IP do servidor. Não faça isso. Expor diretamente a porta 80/443 do seu home server é convite pra scan automático, brute force e malware. Tem alternativas melhores, mais seguras e sem complexidade.
Caminho A: Tailscale (o que eu uso)
Instala o Tailscale no servidor e no seu celular/notebook. Cada dispositivo entra numa rede privada (mesh VPN) com IP estável. Você acessa o Nextcloud usando o IP do Tailscale do servidor — funciona em qualquer rede, criptografado de ponta a ponta, sem mexer no roteador. Cobre CGNAT, IP dinâmico, tudo.
Tutorial completo do Tailscale aqui. Cinco minutos pra configurar.
Caminho B: Cloudflare Tunnel
Pra quando você precisa que outras pessoas acessem seu Nextcloud
(compartilhar pasta com cliente, por exemplo). O Cloudflare Tunnel expõe seu
servidor via nuvem.seudominio.com, com HTTPS gratuito, sem abrir
porta. Setup leva 10 minutos e o plano grátis cobre uso pessoal de boa.
Se você expõe via Cloudflare Tunnel e também acessa pelo Tailscale, o Nextcloud pode confundir os domínios e exigir HTTPS em ambos. Decide qual é o caminho principal e configura overwrite.cli.url no config.php pra ele.
Troubleshooting
Espaço em disco mostra errado
Você copiou arquivos diretamente pro disco (via SSH ou montagem externa) e o Nextcloud não enxerga. Solução: rodar o scan manual. No terminal do container:
docker exec -u www-data nextcloud-aio-nextcloud php occ files:scan --all
App mobile não sincroniza no background
Quase sempre é otimização de bateria do sistema. No Android, vai em Configurações → Bateria → Otimização → Nextcloud e marca como Sem restrição. No iOS, abre o app a cada 1–2 dias pra forçar sincronização — o iOS limita background de apps de terceiros e não tem jeito.
Performance lenta em pasta grande
Se sua pasta tem mais de 10 mil arquivos, o Nextcloud fica lento sem cache de
memória. Ativa o APCu editando o config.php:
'memcache.local' => '\OC\Memcache\APCu',
Pra usuários múltiplos com acesso concorrente, vale subir um Redis no mesmo
ZimaOS e configurar memcache.distributed.
Login funciona local mas não pelo Tailscale
Erro clássico de trusted_domains. Adiciona o IP/hostname do Tailscale
ao array (ver seção 5). Sem isso, o Nextcloud rejeita o request por segurança.
Atualização travada
Acontece quando o container fica em modo manutenção e não sai. Força a saída:
docker exec -u www-data nextcloud-aio-nextcloud php occ maintenance:mode --off
Próximos passos
Com a nuvem rodando, dois movimentos naturais: liberar acesso remoto seguro e encarar storage de verdade.