Ninguém gosta de ficar sem armazenamento gratuito na nuvem. Ver aquela notificação do Google Fotos ou iCloud avisando que você ficou sem espaço pode estragar sua viagem exótica para ver preguiças na América do Sul. No entanto, para nós, do tipo faça você mesmo e labradores domésticos, há uma solução se você estiver disposto a sujar as mãos.
Apresentando o Nextcloud
Nextcloud é uma plataforma de armazenamento em nuvem gratuita e de código aberto que coloca o poder e a flexibilidade da nuvem em suas mãos. Ela suporta várias distribuições Linux populares, como Red Hat Enterprise Linux 9 e Ubuntu 24.04 LTS. Neste artigo, usaremos o Ubuntu Server 24.04.1 e o Nextcloud Hub 9 (30.0.0) para construir um servidor de armazenamento em nuvem de alto desempenho e completamente personalizável. Algumas das etapas mostradas aqui podem exigir algum conhecimento prévio de administração de servidores Linux e da interface de linha de comando, então coloque seu boné de pensamento e prepare-se para ficar técnico!
Configurando o servidor
Para começar a configurar um servidor Nextcloud, você precisará de uma instalação nova do Ubuntu Server em um sistema de sua escolha. Uma máquina virtual no seu computador principal ou qualquer hardware extra que você tenha por aí provavelmente resolverá o problema! Recomendamos um computador com pelo menos 2-4 núcleos de CPU, 8 gigabytes de RAM e 500 GB de armazenamento. Quando seu sistema estiver pronto, obtenha o Ubuntu Server visitando este link: https://ubuntu.com/download/server .
Se você nunca instalou o Ubuntu Server antes, confira o guia antes de começar: https://ubuntu.com/tutorials/install-ubuntu-server . Tenha cuidado para não selecionar a opção de pré-instalar o Nextcloud na página de software recomendado, pois cuidaremos disso nós mesmos.
Depois de ter seu servidor na rede, dado a ele um nome de host e efetuado login com o nome de usuário e senha que você criou durante a configuração inicial, obtenha as últimas atualizações de software para o Ubuntu Server digitando “sudo apt update && sudo apt upgrade -y” no console e pressione enter. Reinicie o servidor após as atualizações serem concluídas usando “sudo reiniciar”.
Observação: talvez seja necessário digitar sua senha novamente para executar comandos sudo.
Instalando o software
Em seguida, precisamos pegar alguns dos softwares pré-requisitos dos quais nossa instância Nextcloud depende. Digite (ou de preferência copie e cole) os seguintes comandos na sua interface de linha de comando para baixar e instalar o servidor web Apache e alguns pacotes que você precisará mais tarde para configurações mais avançadas do Nextcloud:
sudo apt install apache2 servidor mariadb php libapache2-mod-php servidor redis libmagickcore-6.q16-7-extra
sudo apt install php-apcu php-bcmath php-bz2 php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-ldap php-mbstring php-memcached php-mysql php-redis php-smbclient php-zip php-xml


Configurando o Apache Web Server – Parte 1
Antes de começarmos a mexer com o Apache, precisamos garantir que podemos nos conectar corretamente ao servidor primeiro. Para permitir conexões de navegador da web (HTTP e HTTPS) à instância do Nextcloud, use os seguintes comandos:
sudo ufw allow em "Apache Full"
sudo ufw enable


Configurando o MariaDB
Nosso servidor Nextcloud precisará de um banco de dados sempre online para armazenar a configuração do servidor e as informações do perfil do usuário. Para configurar o MariaDB para ser executado após a reinicialização do sistema, digite “sudo systemctl enable mariadb” e aperte enter. Agora, estamos prontos para preparar o banco de dados para nossa instalação Nextcloud!

- Digite a senha atual para a raiz (insira para nenhum): clique em entrar
- Mudar para autenticação unix_socket [S/N] n
- Alterar a senha do root? n
- Remover usuários anônimos? [Y / n] y
- Não permite o login root remotamente? [Y / n] y
- Remover o banco de dados de teste e acessá-lo? [Y / n] y

Formato “sudo mysql -u root” e digite esses comandos quando a interface de linha de comando do MySQL aparecer (e certifique-se de usar “;” no final de cada linha!):
CRIAR USUÁRIO 'nextcloud'@'localhost' IDENTIFICADO POR 'P@$$w0rd';
Nota: Substitua “nextcloud” e “P@$$w0rd” por um nome de usuário e senha de sua escolha.
CRIAR BANCO DE DADOS SE NÃO EXISTIR nextcloud CONJUNTO DE CARACTERES utf8mb4 COLLATE utf8mb4_general_ci;
CONCEDER TODOS OS PRIVILÉGIOS NO nextcloud.* PARA 'nextcloud'@'localhost';
Nota: Novamente, substitua “nextcloud” antes do símbolo @ pelo nome de usuário que você usou anteriormente.
PRIVILEGES FLUSH;
Sair;

Habilitando as extensões PHP e melhorando o desempenho do PHP
Lembra de todas aquelas extensões PHP que instalamos? Precisamos habilitá-las para garantir que o Nextcloud possa usá-las corretamente. Use este comando para habilitar as extensões PHP necessárias:
sudo phpenmod apcu bcmath bz2 curl gd gmp imagick intl ldap mbstring memcached mysql redis smbclient zip xml


memory_limit = 512M
- Pode ser aumentado opcionalmente para dar ao PHP mais memória, se necessário (1024M, 2048M, etc.)
tamanho_máximo_do_post = 100G
upload_max_filesize = 100G
- Este valor e o valor anterior representam o tamanho máximo de arquivo que você pode carregar no seu servidor Nextcloud. Altere-os para o tamanho máximo de arquivo desejado. (1G = 1 gigabyte, 10G = 10 gigabytes, 100G = 100 gigabytes, etc.) Tenha cuidado para colocar apenas tamanhos em K (quilobytes), M (megabytes) e G (gigabytes).
date.timezone = América/Nova_Iorque
- Remova “;” antes da linha e use este guia para ajudar a determinar seu fuso horário correto: https://www.php.net/manual/en/timezones.php
opcache.enable=1
- Remova “;” antes da linha.
opcache.memory_consumption = 128
- Remova “;” antes da linha. Este valor, em megabytes, pode ser personalizado para se adequar à quantidade de memória que você tem no seu servidor Nextcloud (128 = 128 megabytes, 1024 = 1024 megabytes/1 gigabyte, 2048 = 2048 megabytes/2 gigabytes).
opcache.interned_stringers_buffer=16
- Remova “;” antes da linha. Representa a quantidade de memória alocada para strings internadas em megabytes, o valor recomendado é 16.
opcache.max_accelerated_files = 10000
- Remova “;” antes da linha. Este valor pode ser ajustado para qualquer número entre 200 e 1000000 para se adequar às capacidades de cache e memória do seu sistema.
opcache.revalidate_freq=1
- Remova “;” antes da linha e altere para 1.
opcache.save_comments=1
- Remova “;” antes da linha e valide se o valor está definido como 1.
Após concluir todas as alterações necessárias no arquivo php.ini, salve o arquivo segurando a tecla control (ctrl) e pressionando a tecla “O”. Pressione enter para confirmar, segure control (ctrl) novamente e toque na tecla “X” para sair do nano.

Configurando o Apache Web Server – Parte 2
Embora tenhamos baixado o Nextcloud e configurado muitos dos seus pré-requisitos de software, ainda precisamos substituir a página da web padrão do Apache pelo Nextcloud. Digite “cd ~” no console e pressione enter, retornando ao diretório home do nosso usuário. É aqui que o arquivo ZIP do Nextcloud foi baixado. Agora, digite “descompacte o arquivo latest.zip” pressione enter e observe o utilitário de descompactação rugir!

Antes que a pasta possa ser transportada, precisamos ter certeza de que o built-in “dados-www” o usuário é o proprietário do novo diretório. Isso é extremamente importante, pois o “dados-www” o usuário manipula todas as operações do servidor web realizadas pelo servidor web Apache e pelo próprio Nextcloud. Digite “sudo chown -R www-data:www-data ./nextcloud” no console e pressione enter.


DocumentRoot /var/www/html/nextcloud/ Nome do servidor nextcloud-demo.moose.local Exigir todas as opções AllowOverride All concedidas FollowSymLinks MultiViews Dav fora

Se você não possui um domínio, pode comprar um de um registrador como o Cloudflare usando https://www.cloudflare.com/products/registrar/ ou use um nome de host gratuito disponível publicamente em sites como https://www.noip.com/ . Se você não quiser comprar um domínio ou usar um nome de host gratuito, você pode colocar um FQDN fictício neste campo, com a ressalva de que você só pode usar o endereço IP do servidor (público e privado) para se conectar à instância do Nextcloud.
Observação: para usar o FQDN do servidor para acessar localmente sua instância do Nextcloud, você deve ter um servidor DNS configurado corretamente em execução na sua rede doméstica. Caso contrário, você deve usar o endereço IP local do servidor ao acessá-lo da sua rede doméstica.
Quando você terminar de escrever o arquivo do host virtual e substituir o FQDN de exemplo pelo FQDN do seu servidor (legítimo ou não), você pode finalmente habilitar o site Nextcloud usando “sudo a2ensite nextcloud.conf” e “sudo systemctl reiniciar apache2” para reiniciar o servidor web com o novo site. Navegue até sua instância Nextcloud usando um navegador web em outro computador que resida na mesma rede por meio do FQDN do servidor ou seu endereço IP local.
Configuração inicial do Nextcloud
Se você seguiu os passos anteriores corretamente, você será recebido com uma página pedindo para criar um usuário administrador para o site e preencher alguns detalhes sobre seu servidor Nextcloud. Dê ao usuário administrador seu nome desejado, como Administrator ou Superadmin, e uma senha forte.

O site carregará por um breve período e então apresentará a você a opção de instalar vários aplicativos recomendados para seu servidor Nextcloud. Esteja ciente de que adicionar mais aplicativos à sua instância Nextcloud aumentará a carga de processamento do servidor, o uso de memória e o uso total do disco. Escolha se deseja instalar os aplicativos recomendados ou, opcionalmente, pular esta etapa.


Criando um Cron Job
Um cron job é um comando executado regularmente sem intervenção do usuário. Nosso servidor Nextcloud precisa de um cron job para chamar o servidor “cron.php” script a cada 5 minutos para desempenho e funcionalidade ideais.
Para configurar este cron job, digite o comando “sudo crontab -u www-data -e” no console do servidor.

*/5 * * * * php -f /var/www/nextcloud/cron.php

Parabéns! Agora você tem um servidor Nextcloud funcional disponível na sua rede local! Você pode começar a enviar e baixar arquivos de e para o seu servidor Nextcloud na sua rede doméstica agora mesmo, mas para que ele funcione bem, precisamos melhorar a segurança, adicionar alguns aplicativos favoritos do HomeLab, configurar um sistema de cache de memória extremamente rápido e torná-lo acessível pela internet pública.
Melhorando a segurança do seu servidor Nextcloud
Uma das melhores maneiras de aumentar a postura de segurança do seu servidor web é atualizar para HTTPS em vez de HTTP não criptografado e inseguro. Quando habilitado, as solicitações serão atendidas por TLS 1.3, o mais novo e seguro padrão de criptografia para conexões web. Esta é uma etapa necessária sempre que você planeja expor um site à Internet pública e é um excelente primeiro passo ao proteger informações confidenciais.
Depois de decidir criptografar seu tráfego Nextcloud, há duas opções para configurar HTTPS para escolher: usar um certificado autoassinado ou usar um certificado de uma autoridade de certificação válida. Se você não possui um domínio no momento ou não pretende configurar um para uma instância temporária do Nextcloud, recomendamos usar um certificado autoassinado ou um de um provedor de nome de host. Se você estiver planejando ter uma configuração Nextcloud mais permanente, recomendamos fortemente obter um certificado publicamente confiável de uma autoridade de certificação como a Let's Encrypt.
HTTPS com um certificado autoassinado
Para habilitar e criar um certificado autoassinado, você precisa emitir alguns comandos simples:
sudo a2enmod SSL
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nextcloud-selfsigned.key -out /etc/ssl/certs/nextcloud-selfsigned.crt


DocumentRoot /var/www/html/nextcloud/ Nome do servidor nextcloud-demo.moose.local SSLEngine em SSLCertificateFile /etc/ssl/certs/nextcloud-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/nextcloud-selfsigned.key Exigir todas as opções AllowOverride All concedidas FollowSymLinks MultiViews Dav fora


HTTPS com um certificado confiável
Para usar um certificado confiável para o Nextcloud, você deve primeiro possuir um domínio ou ter um certificado assinado de um provedor de nome de host. Se você estava usando um certificado autoassinado anteriormente e seguiu as etapas na seção anterior para habilitar HTTPS, remova a parte do texto adicionada ao final do arquivo e execute os comandos “sudo a2dismod ssl” e “sudo systemctl reiniciar apache2”. Lembre-se de usar control + “O” e control + “X” para salvar e sair do nano quando terminar.

Configuração HTTPS para proprietários de domínio (via Certbot)
Agora que o arquivo de host virtual está de volta a uma configuração HTTP padrão, podemos começar os preparativos para usar um certificado confiável de uma autoridade de certificação. Se você possui um domínio, siga estas etapas para adquirir e implementar um certificado. Se não, pule para a próxima seção, que detalhará o uso de um certificado adquirido de um provedor de nome de host. Para adquirir um certificado usado com seu próprio domínio, usaremos o Certbot da Let's Encrypt, uma organização sem fins lucrativos que fornece certificados gratuitos para uso em servidores web.
Para baixar o Certbot, primeiro instale e atualize o Snap usando “sudo snap install core && sudo snap refresh core”. Em seguida, digite “sudo snap install –classic certbot” (dois hifens seguidos antes de “classic”) para instalar o pacote.


Após o Certbot terminar, reabra o arquivo do host virtual digitando “sudo nano /etc/apache2/sites-available/nextcloud.conf” e pressionando enter. Adicione as seguintes linhas logo acima do cabeçalho para permitir a reescrita de URLs HTTP como HTTPS e substituir “nextcloud-demo.moose.local” com o nome de domínio totalmente qualificado do seu servidor:
RewriteEngine em RewriteCond %{SERVER_NAME} = nextcloud-demo.moose.local RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanente]
O arquivo de host virtual concluído deverá ficar assim quando concluído:

Configuração HTTPS usando um certificado de um provedor de nome de host
As etapas para usar um certificado de um provedor de nome de host para habilitar HTTPS no seu servidor Nextcloud são idênticas às abordadas na seção “HTTPS com um certificado autoassinado” encontrada neste artigo, com a única exceção de que você deve substituir o caminho para as chaves autoassinadas por um caminho para as chaves do seu provedor de nome de host. Comandos como “pegue” e “mv” pode ser usado para baixar e mover os arquivos de certificado para os diretórios apropriados (/etc/ssl/certs para o arquivo de certificado e /etc/ssl/private para o arquivo de chave). Certifique-se de habilitar o módulo Apache SSL com o “sudo a2enmod ssl” comando e uso “sudo systemctl reiniciar apache2” quando terminar de aplicar suas alterações. O arquivo de host virtual concluído para usar arquivos de certificado deve ser semelhante a este (com os campos SSLCertificateFile e SSLCertificateKeyFile substituídos por caminhos para seus arquivos de certificado e chave personalizados):
Instalando o aplicativo Antivirus for Files
Embora o Nextcloud possa transmitir dados com segurança por HTTPS, isso não significa que tudo o que você ou seus usuários carregam é seguro. Sejam intencionais ou não, infecções por malware em servidores da web podem causar danos massivos e se espalhar como fogo para outros sistemas se não forem tratadas rapidamente. Para outra camada de proteção contra atores mal-intencionados na internet, um programa antivírus é essencial para servidores acessíveis pela internet.
O ClamAV é um conjunto antivírus gratuito e de código aberto que pode ser integrado ao Nextcloud para escanear arquivos enviados por usuários em busca de malware. A loja de aplicativos do Nextcloud apresenta um aplicativo chamado “Antivírus para arquivos” que usa o ClamAV como backend para escanear arquivos de usuários e proteger seu servidor. Este aplicativo pode ser baixado navegando até a aba “Aplicativos” clicando na foto do perfil da sua conta de administrador e selecionando a categoria “Segurança”.



- Manipular o arquivo de configuração automaticamente? Sim
- Tipo de soquete: UNIX
- O soquete local (UNIX) clamd escutará em: /var/run/clamav/clamd.ctl
- Proprietário do grupo do soquete local (UNIX) clamd: clamav
- Modo de criação para soquete local clamd (UNIX): 666
- Lidar com arquivos de soquete UNIX restantes de forma elegante? Sim
- Você deseja habilitar a verificação de e-mail? Não
- Você deseja habilitar a digitalização de arquivos? Não
- Você pode selecionar “Sim” para este prompt, mas configuração adicional é necessária se você escolher fazer isso. Veja a documentação do ClamAV para mais informações: https://docs.clamav.net/manual/Installing/Packages.html#the-packages
- Profundidade máxima de diretório que será permitida: 15
- Você quer que o daemon siga links simbólicos de arquivos regulares? Sim
- Tempo limite para parar o thread-scanner (segundos): 180
- Número de threads para o daemon: 2
- Subtraia 2 do número de núcleos/vCPUs que seu servidor Nextcloud tem e insira esse número neste campo.
- Número de conexões pendentes permitidas: 15
- Você quer usar o registrador do sistema? Não
- Arquivo de log para clamav-daemon (digite none para desabilitar): /var/log/clamav.log
- Você deseja registrar informações de tempo com cada mensagem? Não
- Se uma grande quantidade de gravações na unidade não for prejudicial ao seu sistema, escolha “Sim”.
- Você deseja habilitar a rotação de log? Sim
- Atraso em segundos entre autoverificações do daemon: 3600
- Usuário para executar clamav-daemon como: clamav
- Grupos para clamav-daemon (separados por espaços): www-dados
- Você quer carregar o bytecode do banco de dados? Sim
- Nível de segurança a ser aplicado ao bytecode: Confiança assinada
- Tempo limite de execução do bytecode em milissegundos: 60000
Uau! Foi muita configuração! Felizmente para nós, só precisamos fazer isso uma vez. Use “systemctl habilitar clamav-freshclam” e “systemctl habilitar clamav-daemon” para permitir que o ClamAV seja iniciado após o sistema ter inicializado, e podemos começar a configurar o aplicativo Nextcloud “Antivirus for files”.
Usando um navegador da web em outro computador conectado à mesma rede e sub-rede do seu servidor Nextcloud, faça login no Nextcloud e clique na foto do perfil do seu usuário administrador. Clique na opção “Configurações de administração” no menu suspenso e selecione a seção “Segurança” após a página terminar de carregar.

Integrações Nextcloud e melhorias gerais
Agora que construímos um servidor de nuvem funcional e seguro para armazenar dados, podemos expandir suas capacidades e adicionar novos recursos. Vamos começar cuidando de algumas coisas fáceis: conectar o Nextcloud a um servidor de e-mail e definir a região padrão do telefone.
Conectando um servidor de e-mail
Para enviar notificações por e-mail, alertas de atividade e links de redefinição de senha (para usuários não LDAP), o Nextcloud precisa estar conectado a um servidor de e-mail em funcionamento. Se você hospedar seu próprio servidor de e-mail, a configuração será tão fácil quanto inserir o endereço correto do servidor e as informações de autenticação. Você também pode usar um servidor de e-mail de terceiros com um endereço de e-mail que você já tenha, como o servidor SMTP do Gmail.
Navegue até o nome de domínio totalmente qualificado ou endereço IP do seu servidor Nextcloud usando um navegador da web em um computador na mesma rede e sub-rede do seu servidor. Clique na foto do perfil do seu usuário administrador e selecione “Configurações de administração” no menu suspenso.


Para usar o servidor SMTP do Gmail com uma conta do Google que você já possui, primeiro navegue até https://myaccount.google.com/apppasswords e crie uma senha de aplicativo seguindo as instruções no site. Dê à sua senha de aplicativo um nome associado ao seu servidor Nextcloud e armazene sua senha em um local seguro. Observe que a senha é exibida com espaços a cada quatro caracteres, mas na verdade não contém esses espaços. As senhas de aplicativo são sequências de dezesseis letras contínuas.
Preencha os seguintes campos do servidor de e-mail conforme listados abaixo:
- Modo de envio: SMTP
- Criptografia: Nenhum/STARTTLS
- Endereço de origem: johndoe @ storagereview.com
- Insira o endereço da sua conta do Gmail aqui.
- Endereço do servidor: smtp.gmail.com : 587
- Autenticação: Sim (caixa de seleção)
- Credenciais: [email protected] apppasswordaqui
- Insira o endereço da sua conta do Gmail e a senha do aplicativo que você criou aqui.
Quando terminar, clique no botão “Salvar” e use o botão “Enviar e-mail” para verificar se sua configuração é válida.
Se você ainda não tiver definido um endereço de e-mail para a conta de usuário administrador que está usando, receberá um aviso solicitando que o faça. Isso pode ser facilmente resolvido clicando na foto do perfil do seu usuário administrador, selecionando “Configurações pessoais” no menu suspenso e digitando seu endereço de e-mail no campo “E-mail”. Depois de terminar, retorne ao módulo “Servidor de e-mail” em “Configurações básicas” na página “Configurações de administração” e insira novamente a configuração, se necessário.
Definindo a região padrão do telefone
Uma mudança muito rápida, mas bastante útil, que podemos fazer para que o Nextcloud lide melhor com números de telefone é definir uma região de telefone padrão para a instância. Quando os usuários preenchem seus perfis nas configurações de "Informações pessoais" encontradas em "Configurações pessoais", eles são solicitados a incluir opcionalmente um número de telefone para fins de contato. Sem uma região de telefone padrão, o Nextcloud força os usuários a inserir um código de país com esse número. Definir a região de telefone padrão permite que os usuários excluam esse prefixo.
No console do servidor Nextcloud, use “sudo nano /var/www/html/nextcloud/config/config.php” para editar o arquivo de configuração PHP do site Nextcloud.

'default_phone_region' => 'EUA',
-
- O código ISO 3166-1 exclusivo do seu país usado para este campo pode ser encontrado na seguinte página da Wikipedia: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
Por motivos de segurança, você não deve mostrar a ninguém o conteúdo da sua instância Nextcloud “config.php” arquivo. Ele contém informações confidenciais, como senhas e segredos do sistema, que somente você ou o(s) administrador(es) do sistema devem saber. Depois de terminar de adicionar a linha de região telefônica padrão ao seu arquivo de configuração, salve o novo conteúdo segurando control (ctrl) e tocando em “O” e, em seguida, segurando control e tocando em “X” para sair. Para aplicar as alterações, digite “sudo systemctl reiniciar apache2” no console e pressione enter.
Configurando uma janela de manutenção
Outra pequena melhoria que podemos fazer no arquivo de configuração PHP do site Nextcloud é definir uma janela de manutenção para o servidor executar tarefas mais intensivas e possivelmente impactantes para o usuário. A janela é definida usando o horário UTC, então você precisará converter o horário de início da janela de manutenção desejada em um horário UTC equivalente (expresso como um inteiro entre 1 e 24). A janela de manutenção dura quatro horas, então uma janela de manutenção que começa às 3:00 AM UTC terminará às 7:00 AM UTC.
Uso “sudo nano /var/www/html/nextcloud/config/config.php” para começar a editar o arquivo de configuração do PHP mais uma vez, e adicione esta linha antes do colchete final “);”, seguindo as convenções de espaçamento usadas pelas linhas já no arquivo:
'maintenance_window_start' => 1,
-
- Lembre-se de substituir “1” pelo horário de início da janela de manutenção desejado, traduzido para o horário UTC.

Integração LDAP/Servidor Active Directory
Se você planeja dar a vários usuários acesso à sua instância Nextcloud, um dos recursos mais poderosos que você pode adicionar ao Nextcloud é a capacidade de se conectar e autenticar um servidor LDAP ou Active Directory. Muitas organizações e homelabbers usam o Active Directory ou LDAP para organizar e controlar o acesso do usuário aos recursos de rede de forma centralizada, e o Nextcloud não é exceção. Com o aplicativo “LDAP user and group backend”, os usuários do seu domínio do Active Directory ou servidor LDAP podem ser importados para o seu servidor Nextcloud e fazer login usando seu nome de usuário ou endereço de e-mail e sua senha. Esse recurso se torna ainda mais poderoso quando combinado com armazenamento externo (como um compartilhamento SMB em um NAS), fornecendo pastas 'home' individuais para usuários com permissões específicas para esse usuário.
Para instalar o aplicativo “LDAP user and group backend”, primeiro clique na foto do perfil quando estiver conectado à página da web do Nextcloud com sua conta de usuário administrador. Selecione “Apps” no menu suspenso que aparece e clique no módulo “Featured apps”. Role para baixo até encontrar o aplicativo “LDAP user and group backend” e clique no botão “Enable”.

Navegue até a página "Configurações de administração" novamente clicando na foto do perfil do seu usuário administrador e selecionando-a no menu suspenso. Clique no módulo "Integração LDAP/AD" para começar.

- host: 192.168.1.102
- Substitua pelo endereço IP/nome do host do seu servidor LDAP ou controlador de domínio do Active Directory.
- port: 389
- Se você estiver usando o Active Directory, use a porta 389. Se estiver usando outro tipo de servidor LDAP ou tiver personalizado a porta em que seu servidor AD escuta para solicitações LDAP, insira o número específico aqui.
- DN do usuário: CN=Administrador,CN=Usuários,DC=alce,DC=local
- Insira o nome distinto para a conta que está sendo usada para conectar o Nextcloud ao seu servidor LDAP/AD. Se estiver usando o Active Directory, isso pode ser facilmente encontrado executando este comando usando uma janela CMD, com “Administrador” substituído pelo nome de usuário da conta que você está usando para a conexão:
- dsquery usuário -nome “Administrador”
- Clique no botão “Salvar credenciais” após preencher este campo.
- Insira o nome distinto para a conta que está sendo usada para conectar o Nextcloud ao seu servidor LDAP/AD. Se estiver usando o Active Directory, isso pode ser facilmente encontrado executando este comando usando uma janela CMD, com “Administrador” substituído pelo nome de usuário da conta que você está usando para a conexão:
- Um DN base por linha: DC=alce,DC=local
- Clique no botão “Detectar DN base” depois de salvar as credenciais anteriores para determinar automaticamente o DN base para o servidor LDAP/AD.
- Opcionalmente, clique no botão “Testar DN base” para verificar se a configuração até o momento é válida.





Integração de armazenamento externo
Outra adição poderosa ao seu servidor Nextcloud é a capacidade de se conectar e usar pools de armazenamento externos. Colocar arquivos de usuário diretamente no próprio servidor pode levar a problemas relacionados ao gerenciamento do armazenamento do servidor e ter que aumentar constantemente a capacidade para atender à demanda do usuário. Se você não estiver constantemente vigilante na aplicação de cotas e na remoção de dados desnecessários criados pelos usuários, isso pode levar à frustração e ao tempo de inatividade inesperado. A separação dos componentes do servidor web e do armazenamento de uma configuração Nextcloud é altamente recomendada e crítica quando se pretende criar um sistema de armazenamento em nuvem escalável e uma experiência agradável para o usuário.
O aplicativo “Suporte de armazenamento externo” para Nextcloud permite que você monte pastas dos seguintes tipos de armazenamento:
- Amazon S3
- FTP
- Nextcloud
- Sim, é isso mesmo, você pode se conectar e usar o armazenamento disponível em outros servidores Nextcloud!
- Armazenamento de objetos OpenStack
- SFTP
- SMB / CIFS
- WebDAV
Como você pode ver, há várias opções diferentes para conectar o Nextcloud a matrizes de armazenamento externas, nuvens e outros sistemas. Como exemplo, conectaremos uma instância do Nextcloud a um compartilhamento SMB que controla o acesso a diferentes pastas usando permissões concedidas a usuários importados do domínio do Active Directory ao qual nos conectamos anteriormente.
Para habilitar o aplicativo “Suporte a armazenamento externo”, clique na foto do perfil do seu usuário administrador quando estiver logado no site e selecione “Aplicativos”. Navegue até “Aplicativos em destaque” mais uma vez e encontre o módulo rotulado “Suporte a armazenamento externo”. Clique no botão “Habilitar” para tornar o aplicativo disponível.


- Autenticação: Inserido manualmente, armazenado no banco de dados
- Para que os usuários insiram manualmente seu próprio nome de usuário e senha para autenticação, escolha esta opção. Para usar um conjunto de credenciais estáticas para dar aos usuários acesso a um compartilhamento SMB, escolha “Login e senha”. Caso contrário, selecione a opção que melhor atende às suas necessidades no menu suspenso.
- Nome da pasta: família
- Este nome pode ser definido como qualquer nome que você queira usar para descrever o armazenamento que está montando. Exemplos: “SMB” ou o nome do compartilhamento que está montando.
- host: 192.168.1.140
- Substitua este valor pelo endereço IP ou FQDN do servidor que hospeda o compartilhamento SMB ao qual você deseja se conectar.
- Compartilhar família
- Substitua este valor pelo nome do compartilhamento que você gostaria de montar que está presente no servidor inserido no campo “Host”.
- Subpasta remota: \
- Para montar a pasta de nível superior do compartilhamento (a própria pasta compartilhada), use “\”. Caso contrário, insira o caminho para uma subpasta dentro do compartilhamento desejado desta forma:
- \subpasta\outra_subpasta\ainda_outra_subpasta
- Para montar a pasta de nível superior do compartilhamento (a própria pasta compartilhada), use “\”. Caso contrário, insira o caminho para uma subpasta dentro do compartilhamento desejado desta forma:
- Domínio: MOOSE
- Substitua esse valor pelo nome NetBIOS de um domínio se o acesso ao compartilhamento for controlado usando LDAP ou Active Directory. Esse campo não é obrigatório se o compartilhamento não for controlado por um servidor LDAP/AD.
- Mostrar arquivos ocultos: Verifique
- Marque esta caixa se os usuários quiserem visualizar arquivos ocultos (aqueles que começam com um caractere “.”).
- Sistema de arquivos com distinção entre maiúsculas e minúsculas: Verifique
- Verifique o acesso ACL ao listar arquivos: Verifique
- Esta opção é extremamente importante para que o controle de acesso funcione corretamente. Caso contrário, se dois usuários tiverem o mesmo compartilhamento montado e tiverem pastas configuradas para que o outro não tenha acesso, eles ainda poderão visualizar os arquivos um do outro.
- Todas as pessoas: Verifique
- Marque esta opção se quiser que todos os usuários do Nextcloud possam inserir credenciais e se conectar ao compartilhamento SMB; caso contrário, escolha um grupo local na instância do Nextcloud para disponibilizar o compartilhamento usando o campo abaixo.
- Infelizmente, no momento da redação deste artigo, não é possível selecionar um grupo LDAP/Active Directory usando o campo abaixo desta opção quando não selecionada.
- Marque esta opção se quiser que todos os usuários do Nextcloud possam inserir credenciais e se conectar ao compartilhamento SMB; caso contrário, escolha um grupo local na instância do Nextcloud para disponibilizar o compartilhamento usando o campo abaixo.
Depois de terminar de inserir os detalhes de configuração do compartilhamento SMB específicos para sua configuração, clique no botão de marca de seleção para salvá-lo e disponibilizá-lo aos usuários.

Para concluir a configuração do compartilhamento SMB, os usuários devem navegar até o módulo “Armazenamento externo” em “Configurações pessoais” após clicar na foto do perfil e selecioná-la no menu suspenso.


Transformando o Nextcloud em um servidor Web real
Agora, sua instância Nextcloud rica em recursos está quase pronta para se tornar um servidor web poderoso e disponível publicamente! Antes de abrirmos as comportas, precisamos garantir que o servidor possa lidar com solicitações intensivas de vários usuários acessando arquivos. Já aumentamos o desempenho fazendo várias edições importantes na configuração PHP do sistema, e adicionar suporte para cache de memória pode amplificar isso.
Configurando o cache de memória – APCu
ACPu é um cache PHP que ajuda a acelerar os tempos de acesso de objetos usados com frequência. Nós o usaremos como o primeiro cache para nossa instância Nextcloud. Antes de habilitar o cache APCu, precisamos fazer algumas alterações no arquivo “php.ini” do nosso sistema.
Uso “sudo nano /etc/php/8.3/apache2/php.ini” para começar a editar o arquivo. Role até o final do arquivo segurando a tecla de seta para baixo por um longo período de tempo. Em uma nova linha no final do arquivo, adicione as seguintes linhas:
apc.enable_cli=1
apc.shm_size=128M

Para terminar de ligar o cache APCu, use “sudo nano /etc/php/8.3/mods-available/apcu.ini” e adicione “apc.enable_cli=1” para o final do arquivo de configuração como fizemos para o “php.ini” arquivo. Use control (ctrl) + “O” e control (ctrl) + “X” novamente para salvar e sair do arquivo de configuração.

Formato “sudo nano /var/www/html/nextcloud/config/config.php” no console e pressione enter. No arquivo de configuração PHP do Nextcloud, adicionaremos uma linha para fazer o Nextcloud usar APCu para cache de memória local:
'memcache.local' => '\OC\Memcache\APCu',
Coloque esta linha antes do colchete final “);”, seguindo as convenções de espaçamento das linhas anteriores do arquivo de configuração. Novamente, segure control (ctrl) e pressione “O” e então control (ctrl) e “X” para salvar e sair.


Configurando o cache de memória – Redis
Você pode estar se perguntando: "Por que meu servidor web precisa de dois caches de memória diferentes? Um não é o suficiente?" A resposta para essa pergunta é bem simples. Assim como cada ferramenta em uma loja tem seu próprio uso, o APCu e o Redis também têm. O APCu é um excelente cache de memória local e supera significativamente o último nessa categoria, enquanto o Redis brilha em cache distribuído e bloqueio de arquivo transacional.
Para começar a usar o Redis, editaremos o arquivo de configuração do sistema Redis inserindo
“sudo nano /etc/redis/redis.conf” no console e pressionando enter. Por padrão, o serviço Redis escuta uma porta TCP para cache e tráfego de bloqueio de arquivo de transação, mas para uma configuração de servidor único, um soquete Unix é o método de comunicação preferido. Usar uma porta TCP faria sentido se estivéssemos fornecendo o serviço Redis por uma rede, mas um soquete Unix é muito mais eficiente para comunicações entre os processos do servidor web Redis e Nextcloud.
Depois de digitar nano, segure a tecla control (ctrl) e pressione “W” para ativar a função de busca do nano. Digite “soquete unix” na barra de pesquisa e pressione Enter, e o nano irá pular para o “Soquete Unix” seção de configuração do arquivo. Na “Soquete Unix” seção, remova o "#" caracteres e espaços vazios na frente de “unixsocket /run/redis/redis-server.sock” e “unixsocketperm 700”. Mudar o "700" para "770", e role para cima até encontrar a linha que diz “porta 6379”. Alteraremos esse valor para "0", efetivamente dizendo ao servidor Redis para não escutar em uma porta TCP para conexões. Veja as imagens abaixo para validar seu arquivo de configuração antes de usar control (ctrl) + “O” e control (ctrl) + “X” para salvar e sair do arquivo.
Com essas modificações feitas no arquivo de configuração do sistema Redis, agora podemos especificar que queremos usar o Redis para cache distribuído e bloqueio de arquivo transacional no arquivo de configuração PHP do Nextcloud. Abra esse arquivo no nano usando “sudo nano /var/www/html/nextcloud/config/config.php”.

'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => '/run/redis/redis-server.sock', 'porta' => 0, ],
Se você inseriu as linhas corretamente, a seção de cache de memória do seu arquivo de configuração PHP deverá ficar parecida com este trecho:


Expondo o Nextcloud à Internet
Estamos tão perto de terminar! A última etapa na implantação do seu servidor Nextcloud é torná-lo acessível à internet pública. Esta etapa requer que você configure o encaminhamento de porta no seu roteador e pode envolver um pouco de pesquisa de sua parte. Use o catálogo de guias de encaminhamento de porta em https://portforward.com/router.htm para tentar encontrar o fabricante do seu roteador e ler a solução. Se você não encontrar o fabricante do seu roteador na lista ou estiver usando um roteador empresarial/caseiro, talvez seja necessário fazer algumas pesquisas na web até descobrir o método adequado.
Ao configurar o encaminhamento de porta, encaminhe as portas 80 e 443 do endereço IP privado do seu servidor Nextcloud (que pode ser encontrado usando o “nome do host -I” comando) para o endereço IP público do roteador. Se o seu provedor de serviços de internet não fornecer um endereço IP público, você tem que usar um serviço como o Cloudflare's Tunnels, que permite que você crie um túnel seguro entre seu servidor web e os servidores do Cloudflare, que encaminham o tráfego dos visitantes do site de volta para você.
Se você possui um domínio ou usa um nome de host de um provedor de nome de host, certifique-se de que seus registros DNS estejam definidos para apontar para o endereço IP público do seu servidor. Opcionalmente, alguns provedores de serviço oferecem a capacidade de ofuscar completamente seu endereço IP de visitantes do site e transportar com segurança esses dados de seus servidores de volta para o seu.
Manutenção e atualização do Nextcloud
Garantir que seu servidor Nextcloud tenha as últimas atualizações e patches de segurança é uma parte importante para manter seu armazenamento em nuvem rápido e seguro. Antes de terminarmos, vamos dar uma olhada em algumas maneiras de manter seu servidor funcionando como novo!
Comandos pós-implantação
Após implantar seu servidor Nextcloud, você pode ter notado alguns avisos na página “Visão geral” após clicar em “Configurações de administração” no menu da imagem do perfil. Ocasionalmente, esses avisos também incluem comandos que podem ser executados para corrigir imediatamente o problema do qual o aviso se trata. Normalmente, os comandos precisam ser executados como “dados-www” usuário e executar a partir do “/var/www/html/nextcloud” diretório. Tipo “cd /var/www/html/nextcloud” e pressione Enter para alterar o diretório de trabalho atual para a pasta apropriada e insira “sudo -u www-dados” antes de cada um dos comandos.
Podemos executar alguns desses comandos agora para corrigir esses avisos antes que eles se tornem problemas:
sudo -u www-data php occ db:adicionar-colunas-ausentes
sudo -u www-data php occ db:adicionar-indices-ausentes
sudo -u www-data php occ db:adicionar-chaves-primárias-ausentes
Esses comandos garantirão que o banco de dados esteja configurado corretamente e não esteja faltando nenhuma informação crítica. Banco de dados feliz, vida feliz! Certo?
Mantendo o Ubuntu Server atualizado
Atualizar regularmente o sistema operacional e os pacotes de software do seu servidor é importante para mantê-lo seguro e rápido. Encontre um intervalo de tempo em que o uso do seu servidor seja baixo a cada uma ou duas semanas e execute os seguintes comandos:
sudo apt update && sudo apt upgrade -y
reiniciar
Esses comandos atualizarão o sistema operacional e os pacotes de software do servidor e reinicializarão o servidor para que as alterações sejam aplicadas quando ele for reiniciado.
Atualizando o Nextcloud
Como o Nextcloud não foi instalado usando um gerenciador de pacotes, atualizar os pacotes de software do servidor usando “apto” não enviará automaticamente o Nextcloud para a próxima versão. Para começar a atualizar nosso servidor Nextcloud, precisamos clicar na foto do perfil do usuário administrador no canto superior direito da página da web e selecionar “Configurações de administração” no menu suspenso. Na página “Visão geral”, podemos ver que uma atualização está disponível – neste caso, a versão 30.0.1. Se uma opção de atualização não aparecer na página “Visão geral”, não se preocupe, você já tem a versão mais recente! Volte aqui de vez em quando para ver quando uma nova versão estiver disponível.
Depois de determinar que uma atualização está disponível e atingir uma janela de atualização adequada, volte para o console do servidor e digite este comando:
sudo chown -R www-data: www-data / var / www
Este comando irá definir recursivamente o “dados-www” usuário como proprietário do “Www” diretório e todos os subdiretórios e arquivos, garantindo que o processo de atualização possa acessar e modificar qualquer arquivo necessário.
Depois que esse comando for concluído, volte para a página “Overview” no menu “Administration settings” e clique no botão “Open updater”. Isso o levará ao menu “Updater”.
A partir daqui, você pode clicar no botão “Iniciar atualização” para começar o processo de verificação e download da atualização do Nextcloud. Se tudo funcionar corretamente, você deverá ver marcas de seleção verdes ao lado de cada etapa antes de “Continuar com o atualizador baseado na web”.
Nota: Se o processo de atualização falhar na etapa “Downloading”, tente baixar novamente até que funcione. Pode levar várias tentativas.
Depois que todas as marcas de verificação verdes aparecerem no menu “Updater”, clique no botão rotulado “Disable maintenance mode and continue in the web based updater”. Na tela que aparece depois de fazer isso, clique em “Start update” para finalizar o processo de atualização e começar a aplicá-lo.
Alternativamente, conforme sugerido pela página para servidores maiores ou mais lentos, você pode navegar até o “próxima nuvem” diretório e execute a atualização manualmente usando os seguintes comandos:
cd / var / www / html / nextcloud
sudo -u www-data php occ atualização
Assim que a atualização for concluída, você será redirecionado para a página “Dashboard” no site do seu servidor Nextcloud. Seu servidor agora está executando a versão mais recente e melhor do Nextcloud!
Parabéns! Você fez isso!
Agora você é o orgulhoso proprietário e operador de um servidor Nextcloud totalmente funcional, reforçado e de alto desempenho. Agora você pode convidar familiares ou amigos para usar seu servidor para armazenamento em nuvem, se desejar. Lembre-se, o Nextcloud é uma plataforma altamente modular, então não tenha medo de experimentar novos aplicativos ou alterar sua configuração para atender às suas necessidades! Certifique-se de configurar backups regulares do servidor o mais rápido possível e fique de olho nas coisas para garantir que tudo esteja funcionando bem.
Um tour pela configuração do Nextcloud do autor
Uau, você conseguiu passar por tudo isso e ainda quer ler mais? Considere-nos impressionados! Aqui está um tour rápido e algumas fotos da configuração Nextcloud do autor, se você estiver procurando um pouco de inspiração:
- Hardware:
- Servidor de virtualização:
- SO: Ambiente de Virtualização Proxmox
- Chassi: Supermicro SC216 com compartimento de unidade de inicialização redundante traseiro opcional
- CPU: Intel Xeon E5-2683
- RAM: 4x 32 GB DDR4 2400 MHz ECC RDIMMs
- Placa-mãe: Gigabyte MU70-SU0 (LGA 2011-3)
- HBA: Broadcom SAS 9305-24i
- NIC: Adaptador Intel X520-DA2 2 portas 10 GbE SFP+
- GPU: NVIDIA Quadro K1200
- Unidades de inicialização: 2x Samsung 850 EVO 120 GB SATA SSDs
- Unidades de dados: 24 SSDs Samsung 860 EVO 250 GB SATA
- NAS:
- SO: TrueNAS SCALE
- Chassi: HPE ProLiant MicroServer Gen10 Plus
- CPU: Intel Xeon E-2224
- RAM: 2x 16 GB DDR4 2666 MHz ECC UDIMMs
- HBA: Controlador HPE Smart Array E208i-p SR Gen10 integrado
- NIC: Adaptador HPE Ethernet 560SFP+ 2 portas 10 GbE SFP+
- Unidade de inicialização: Micron M600 256 GB SATA SSD (conectado via USB)
- Unidades de cache: 2x Samsung 860 EVO 250 GB SATA SSDs (conectados via USB)
- Unidades de dados: 4x WD Red Plus 4 TB 5400 RPM HDDs
- Unidade de backup: WD Red Pro 14 TB 7200 RPM HDD (conectado via USB)
- Modem:
- Netgear CM1200
- DOCSIS 3.1
- 4 portas WAN RJ1 de 45 GbE (compatível com agregação de link de 2 portas)
- Router:
- SO: pfSense
- Chassi: Dell OptiPlex 7040 SFF
- CPU: Intel Core i5 6500
- RAM: 8 GB DDR4
- NIC: Adaptador Intel E1G44ET 4 portas 1 GbE RJ45
- Unidades de inicialização: 2x Samsung 860 EVO 250 GB SATA SSDs
- Interruptor principal:
- Rede Dell N4032F
- 24 portas SFP+ 10 GbE
- 2 portas QSFP+ de 40 GbE
- 1 porta de gerenciamento GbE
- Chave de acesso:
- Rede Dell X1052
- 48 portas RJ1 de 45 GbE
- 4 portas SFP+ 10 GbE
- Pontos de acesso:
- SO: OpenWRT
- Linksys EA8300 Max-Stream
- AC2200
- MU-MIMO
- Wi-Fi 5 (802.11ac)
- 1x porta LAN RJ1 45 GbE
- 4 portas LAN RJ1 45 GbE
- UPS:
- CyberPower CP1500AVRLCD3
- 1500VA
- 900W
- Servidor de virtualização:
- Máquinas virtuais:
- Ambiente de virtualização Proxmox:
- 2 controladores de domínio do Windows Server 2022 Datacenter
- Servidor web Ubuntu Server 24.04.1 Nextcloud
- Servidor de jogos Windows Server 2022
- Verdadeiro ESCALA NAS:
- Destino de backup do servidor de backup Proxmox
- Ambiente de virtualização Proxmox:
Andrew usa seu servidor Nextcloud para hospedar serviços de armazenamento de dados para seus entes queridos. Usando uma combinação de um domínio do Active Directory com controladores de domínio redundantes, um NAS para armazenar todos os dados do usuário e um servidor de virtualização, Andrew otimizou sua configuração para fornecer serviços de armazenamento de alto desempenho em casa e em qualquer lugar com uma conexão de internet.
A espinha dorsal de sua configuração é o Dell Networking N4032F, que fornece conexões de 10 gigabits por segundo entre seu servidor Proxmox VE e o array de armazenamento TrueNAS SCALE. O tráfego de dados, gerenciamento e armazenamento foi separado em três VLANs, que fornecem segurança adicional em caso de violação. Seu switch de acesso fornece conexões padrão de 1 gigabit por segundo para seu PC de jogos, pontos de acesso e outros vários dispositivos. Todos os servidores e máquinas virtuais são monitorados por um Raspberry Pi Modelo 3B+ executando o Ubuntu Server e uma instância Uptime Kuma. Assim que um servidor/VM cai, Andrew é notificado por e-mail e, no caso de uma queda de energia, os servidores são desligados graciosamente assim que o UPS relata um nível baixo de carga.
Andrew também construiu seu servidor de virtualização personalizado usando um chassi Supermicro 24-bay 2U e peças obtidas no eBay e outras fontes "duvidosas". Em um arranjo ZFS RAIDZ2, essa matriz de 24 SSDs de meros drives de nível de consumidor pode fornecer uma taxa de transferência de aproximadamente 8.2 gigabytes por segundo para operações de leitura e 2.7 gigabytes por segundo para operações de gravação em máquinas virtuais, conforme medido aqui em uma VM do Windows Server 2022:


Conclusão
Esperamos que você tenha encontrado algum valor neste longo, mas detalhado guia de configuração do Nextcloud. Fazer as coisas da maneira mais difícil geralmente tem benefícios, e saber mais sobre o funcionamento do seu armazenamento em nuvem é sempre bom. Se você ainda não fez isso, assine o Boletim informativo StorageReview para obter mais artigos sobre servidores, sistemas de armazenamento e homelab, visite-nos no YouTube, TikTok, X (antigo Twitter) ou Instagram!
Referências/Fontes:
- https://www.linode.com/docs/guides/how-to-install-nextcloud-on-ubuntu-22-04/
- https://docs.nextcloud.com/server/latest/admin_manual/installation/example_ubuntu.html
- https://docs.nextcloud.com/server/latest/admin_manual/contents.html
- Várias páginas
- https://www.php.net/manual/en/ini.core.php
- https://nextcloud.com/
- https://ubuntu.com/download/server
- https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04
- https://snapcraft.io/install/core/ubuntu
- https://docs.clamav.net/manual/Usage
- Várias páginas
- https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_auth_ldap.html
- https://docs.nextcloud.com/server/30/admin_manual/configuration_files/external_storage/smb.html
- https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html
- https://www.php.net/manual/en/intro.apcu.php
- https://www.php.net/manual/en/apcu.configuration.php
- https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/














Conclusão

Amazon