Nextcloud no lugar do Office 365: meu plano antes de migrar

Quero trocar o Office 365 por um Nextcloud em casa. O que ele substitui, onde instalar, requisitos, o limite de 100 MB do Cloudflare e a ordem da migração.

Publicado
Leitura
5 min
Lista de pastas e arquivos na interface web do Nextcloud
Arquivos na interface web do Nextcloud. Foto: Gmoran6, CC BY-SA 4.0 (original).
Neste post

Um dos planos do meu homelab é sair do Office 365 e montar um Nextcloud em casa, junto com um NAS. Ainda não fiz. Antes de mexer nos arquivos, quero entender o que muda, o que o Nextcloud pede e onde estão as armadilhas.

Este post é esse planejamento, com o que dizem as documentações oficiais. Quando eu montar, volto para contar como foi na prática.

O que o Nextcloud substitui #

O Nextcloud é uma plataforma de arquivos self-hosted, com apps para muita coisa além disso. Pensando no que se usa do Office 365 numa casa:

  • OneDrive vira o Nextcloud Files, com cliente de sincronização para computador e celular;
  • Word, Excel e PowerPoint no navegador viram o Nextcloud Office, que é baseado no Collabora Online;
  • Calendário e contatos viram os apps Calendar e Contacts, com sincronização por CalDAV e CardDAV;
  • Teams, se for o caso, vira o Nextcloud Talk.

E-mail é outra conversa. Hospedar e-mail em casa é um problema à parte, e não está no meu plano.

Antes de tudo: o backup que hoje vai para o OneDrive #

Esse ponto é específico do meu homelab, mas vale para quem está na mesma situação. Hoje a cópia fora de casa dos meus backups vai para o OneDrive, com rclone. Se o OneDrive sair junto com o Office 365, perco justamente a cópia que me protege de perder a casa inteira.

E o Nextcloud não resolve isso sozinho: se ele roda no meu homelab, ele está dentro de casa. Guardar o backup do homelab no Nextcloud do homelab não é cópia fora de casa.

Então, antes de cancelar qualquer coisa, a cópia externa precisa ter um destino garantido. Eu já perdi tudo uma vez e conto como reorganizei o backup no post sobre backup com vzdump. Não quero repetir.

Onde instalar #

Pesquisei três caminhos:

Nextcloud All-in-One (AIO). É o caminho oficial em Docker. Um container principal cria os outros e cuida das atualizações. Pela documentação, ele inclui como opcionais o Nextcloud Office, o backend do Talk e uma solução de backup baseada no BorgBackup. A interface do AIO fica na porta 8080; com um domínio apontado para o servidor, usa as portas 80 e 8443. Há documentação própria para rodar atrás de um proxy reverso.

NextcloudPi pelo community-scripts. O script cria um container LXC Debian unprivileged com 2 núcleos, 2 GB de RAM e 8 GB de disco por padrão. Como contei no post sobre o community-scripts, leio o script antes de rodar como root.

Instalação manual. O Nextcloud num LXC com servidor web, PHP e banco de dados configurados à mão. Mais trabalho e mais controle.

Como quase tudo aqui roda em LXC e uso pouco o Docker, a escolha não é óbvia. O AIO é o mais completo e o mais documentado, mas exige Docker.

O que o Nextcloud pede #

A documentação oficial traz os requisitos. Os que pesam no planejamento:

  • Memória: mínimo de 128 MB por processo, recomendado 512 MB por processo. O consumo real depende de quantas pessoas usam, de quantos apps estão ligados e da quantidade de arquivos.
  • Banco de dados: MariaDB ou PostgreSQL são os recomendados. O SQLite só é indicado para testes e instalações mínimas.
  • Armazenamento: é aqui que entra o NAS. Não quero os arquivos no mesmo SSD de 1 TB que hoje guarda o sistema e todos os containers.

O ThinkCentre tem 24 GB de RAM, então a memória não deve ser o gargalo. O disco é.

O acesso de fora e o limite de upload #

Hoje publico as aplicações pelo Cloudflare Tunnel. Para o Nextcloud, há um detalhe que encontrei na pesquisa: no plano grátis da Cloudflare, o corpo de cada requisição é limitado a 100 MB. Upload maior que isso recebe erro 413.

O Nextcloud divide uploads grandes em pedaços. Pela documentação, o cliente de sincronização não é afetado pelos limites de upload, porque já envia em pedaços menores. O tamanho do pedaço no servidor é de 100 MiB por padrão, que é um pouco mais que 100 MB. A documentação mostra como reduzir:

sudo -E -u www-data php occ config:system:set --type int --value 20971520 files.chunked_upload.max_size

Esse exemplo deixa o pedaço em 20 MB. Ainda vou testar se isso basta para os uploads pelo navegador através do tunnel.

A migração, em ordem #

O plano que montei:

  1. Resolver a cópia fora de casa dos backups, antes de qualquer outra coisa.
  2. Comprar o NAS e definir onde ficam os arquivos.
  3. Instalar o Nextcloud e testar com uma conta só, a minha.
  4. Copiar os arquivos do OneDrive para o Nextcloud e conferir.
  5. Colocar o Nextcloud no backup da noite: os dados e o banco.
  6. Testar uma restauração completa do Nextcloud.
  7. Passar os outros usuários, uma pessoa por vez, com o cliente no computador e no celular.
  8. Só então, cancelar o Office 365.

Resumindo #

  • Nextcloud cobre arquivos, documentos, agenda, contatos e conversa. E-mail fica fora.
  • Backup fora de casa primeiro: o Nextcloud de casa não serve de cópia externa.
  • AIO é o caminho oficial em Docker; NextcloudPi pelo community-scripts é a opção em LXC.
  • 512 MB por processo, MariaDB ou PostgreSQL, e um NAS para os arquivos.
  • Cloudflare grátis limita requisições a 100 MB. Ajuste o tamanho dos pedaços de upload.
  • Migre devagar e cancele por último.

Sair do Office 365 é mais uma questão de ordem do que de tecnologia. Com o backup resolvido primeiro, o resto é paciência.

Fontes e documentação