
Nextcloud é uma solução de armazenamento de arquivos acessível via web, como Google Drive, que conta também com aplicativos de calendário, contatos, conversas e chamadas de vídeo, cliente de e-mail e suporte a compartilhamento de arquivos. Também tem suporte a integração de suíte office, através do ONLYOFFICE ou Nextcloud Office (baseado no LibreOffice).
Além disso, Nextcloud trás também o conceito de federação: instâncias distintas do Nextcloud podem se comunicar se assim os administradores quiserem, permitindo uma rede descentralizada de servidores, onde um usuário de uma instância pode se comunicar e compartilhar arquivos com um usuário de outra.
É software livre e aberto, licenciado sob a AGPLv3, e conta também com planos empresariais.
No momento os sistemas recomendados para o Nextcloud são Ubuntu 24.04 e RHEL 9, mas tem suporte também a outros como OpenSUSE, Debian e Alpine. Aqui vamos usar o Ubuntu 24.04.
O Nextcloud precisa de: um servidor web, um banco de dados e PHP. Eu segui a instalação com Apache pro servidor web e PostgreSQL pro banco de dados.
Outras alternativas suportadas são Nginx para o servidor web e MySQL e MariaDB para o banco de dados.
Instalação e configuração do Apache com PHP:
# apt install apache2 php
Caso tenha habilitado o firewall (Ubuntu traz o UFW desabilitado por padrão), permita o acesso por http:
# ufw allow http
Visite o seu servidor web via http e verifique que o Apache funciona. Coloque um arquivo como index.php na pasta do servidor web /var/www/html com o conteúdo
<?php phpinfo() ?>
e visite sua página no local /index.php para verificar que o Apache está processando PHP.
Instalando e configurando o banco de dados:
# apt install postgresql
# sudo -u postgres psql
Isso vai te levar à linha de comando do PostgreSQL, onde você pode criar o usuário e o banco de dados a ser usado no Nextcloud:
> CREATE USER nextcloud_operator WITH PASSWORD 'senhaNoPost-it';
> CREATE DATABASE nextcloud_db WITH OWNER nextcloud_operator TEMPLATE template0 ENCODING 'UTF8';
> \q
Baixe o arquivo do servidor em https://nextcloud.com/install/
Instale o utilitário unzip com
# apt install unzip
Extraia o arquivo .zip na pasta /var/www. Você vai ver uma pasta nextcloud. Mude o proprietário dela e dos arquivos e subpastas para o usuário www-data, que executa o Apache:
# chown -hR www-data:www-data /var/www/nextcloud
Edite o arquivo de configuração do Apache,
/etc/apache2/sites-enabled/000-default.conf
para alterar/adicionar as seguintes configurações:
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options Indexes FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
Instale outros módulos PHP necessário para o Nextcloud:
# apt install php-curl php-xml php-gd php-mbstring php-zip php-pgsql
Reinicie seu servidor web
# systemctl restart apache2.service
e dê sequência à instalação pela página web. O básico já está funcionando.
Agora existem alguns ajustes que podem ser feitos e você pode vê-los na seção de Configurações de administração > Visão geral
Um dos principais é o limite de memória usada na execução de scripts PHP. O recomendado é pelo menos 512mb mas a configuração padrão usa 128mb.
Outro é o limite do buffer do módulo OPcache, para o qual é sugerido um valor acima de 8mb.
Ajuste os seguintes valores no arquivo
/etc/php/8.3/apache2/php.ini
memory_limit = 512M
opcache.interned_strings_buffer=32
E no arquivo /etc/php/8.3/cli/php.ini
opcache.interned_strings_buffer=32
e reinicie o Apache.
Algumas mensagens de erro vão sugerir que você execute um script occ com algum argumento. Você pode fazer isso com
# sudo -u www-data php /var/www/nextcloud/occ argumento_sugerido
Sugestão de configuração adicional: os arquivos de usuários ficam na pasta /var/www/nextcloud/data, dentro da pasta raiz do Nextcloud. No caso de um bug num dos scripts PHP ou no servidor web, arquivos privados poderiam ser expostos. Então você pode querer configurar a pasta data em outro local, fora da raiz /var/www do servidor web, como por exemplo /var/nextcloud_data.
Essas e outras questões menos críticas de configuração são abordadas também na documentação oficial do Nextcloud.
O acesso via HTTPS será feito utilizando o servidor web Nginx atuando como proxy reverso, abordado em outra postagem.