Página inicial Empreendimento O guia definitivo do servidor Nextcloud

O guia definitivo do servidor Nextcloud

by André Waag

Este artigo demonstra como criar um servidor de armazenamento em nuvem personalizável e de alto desempenho usando o Ubuntu Server 24.04.1 e o Nextcloud Hub 9. Ele requer algum conhecimento de administração de servidores Linux e linha de comando.

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

Se os prompts pedirem para você digitar Y ou N para continuar ou parar a instalação, digite Y e pressione enter. Finalmente, digite “wget https://download.nextcloud.com/server/releases/latest.zip” para obter a versão mais recente do Nextcloud e usar “sudo apt install unzip” para instalar a ferramenta de descompactação, precisaremos extrair esses arquivos.

Agora que temos todo o software necessário para configurar nossa instância Nextcloud, vamos examinar o servidor web que instalamos.

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

Agora você deve ter um servidor web acessível e em execução no seu Ubuntu Server! Em outro computador conectado à mesma rede que sua máquina Nextcloud, digite o endereço IP do seu servidor em uma janela do navegador e pressione enter. Se você não consegue lembrar qual é o endereço IP do servidor, use o “nome do host -I” comando no seu servidor para exibi-lo. Se sua instalação foi bem-sucedida, você deve ver a página padrão do Apache2 exibida em toda sua glória!

Embora alguns possam dizer que esta página do servidor web padrão é bem legal, nós a substituiremos por algo ainda melhor na parte dois. Vamos fazer um desvio rápido e configurar o MariaDB agora!

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!

Felizmente, o MariaDB vem pré-embalado com um utilitário de configuração seguro, então não precisamos fazer muito trabalho pesado. Use “sudo mysql_secure_installation” para iniciá-lo e responder às perguntas feitas pelo assistente.

  • 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

O MariaDB agora está seguro e podemos começar a criar um banco de dados para atender nossa instância Nextcloud.

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;

Estamos chegando mais perto! Agora temos um servidor web e um banco de dados funcionais (mas não finalizados).

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

Agora que as extensões corretas foram habilitadas, precisamos ajustar algumas configurações do PHP para melhor atender às nossas necessidades. O arquivo de configuração do PHP que vamos editar está localizado em “/etc/php/8.3/apache2/php.ini” e pode ser modificado colocando “sudo nano” na frente do caminho e pressionando enter. Se você instalou uma versão diferente do PHP, altere o "8.3" para o número de lançamento principal da sua versão instalada, que pode ser obtido colocando “php -v” no console.

Uma vez que você abriu o “php.ini” arquivo usando nano, o editor de texto integrado do Ubuntu, segure a tecla control (ctrl) e toque na tecla “W” no seu teclado. Quando a barra de pesquisa aparecer, digite “tempo_máx_de_execução”, e pressione enter. O Nano então pulará para a primeira correspondência que encontrar com o valor que você inseriu. Usando as teclas de seta para navegar e a tecla backspace para remover caracteres, altere o “30” para “360”. Repita esse truque para alterar os valores para as seguintes configurações do PHP:

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.

Em seguida, habilite mais módulos necessários do Apache digitando “sudo a2enmod dir env cabeçalhos mime reescrever ssl” no console. Você não precisa reiniciar o Apache usando o comando sugerido pela mensagem do console neste momento.

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!

A “mais recente.zip” O arquivo ZIP agora é extraído para uma pasta chamada “próxima nuvem” no mesmo diretório de onde foi baixado. Esta nova pasta contém todos os materiais necessários para o site Nextcloud. Agora começaremos a mover esta pasta para seu lar apropriado, “/var/www/html”.

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.

Agora que o “dados-www” usuário é dono da pasta, podemos movê-la sem demora. Use “sudo mv ./nextcloud /var/www/html” para mover a pasta para o diretório correto.

Agora podemos desabilitar a página padrão do servidor web Apache digitando “sudo a2dissite 000-default.conf” no console. Ignore o aviso para recarregar o servidor Apache novamente e crie um arquivo de host virtual para o novo site digitando “sudo nano /etc/apache2/sites-available/nextcloud.conf” e apertando enter. O conteúdo do arquivo do host virtual deve ser digitado exatamente como segue:

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

Substituir “nextcloud-demo.moose.local” com o nome de domínio totalmente qualificado (FQDN) do servidor em que você instalou o Nextcloud. A primeira parte do FQDN é o nome do host do servidor que você criou anteriormente, que pode ser mostrado usando o “nome do host” comando no console. A segunda e terceira partes do nome são o domínio e o domínio de nível superior, respectivamente. Por exemplo, se seu domínio era “revisãodearmazenamento.com” e o nome do host do seu servidor era “próxima nuvem”, então o FQDN do seu servidor seria “nextcloud.storagereview.com”.

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.

Configuração inicial do NextcloudNa seção “Armazenamento e banco de dados” da página de configuração, insira “/var/www/html/nextcloud/data” no campo “Pasta de dados”, e o nome de usuário da conta, senha e nome do banco de dados que você usou ao criar o banco de dados MariaDB. Para o campo “Host do banco de dados”, insira “host local” e clique no botão instalar quando terminar.

Nextcloud configura o banco de dados

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.

Aplicativos recomendados pela NextcloudDepois que os aplicativos forem instalados ou a próxima página aparecer, você poderá ler o menu introdutório, se desejar.

Parece que o servidor Nextcloud está pronto, mas temos mais uma etapa para fazê-lo funcionar: configurar uma tarefa cron para executar tarefas agendadas regularmente no servidor.

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.

Quando o “dados-www” o crontab do usuário for aberto, adicione a seguinte linha no final do arquivo:

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

Quando terminar, segure a tecla control (ctrl) e pressione a tecla “O” para salvar o arquivo, e segure control (ctrl) e pressione a tecla “X” para sair. Parabéns! Agora você tem um servidor Nextcloud funcionando disponível na sua rede local! Você pode começar a carregar e baixar arquivos de e para o seu servidor Nextcloud na sua rede doméstica agora, mas para fazê-lo brilhar, precisamos melhorar sua 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

Agora que habilitamos o módulo Apache SSL (também conhecido como TLS) e criamos o certificado autoassinado, precisamos instruir o site a ativar o TLS e usar o certificado. Digite “sudo nano /etc/apache2/sites-available/nextcloud.conf” e pressione Enter para começar a editar o arquivo host virtual mais uma vez.

Adicione as seguintes linhas ao final do seu arquivo de host virtual exatamente como segue, mas substitua o campo “ServerName” pelo nome de domínio totalmente qualificado do seu servidor:

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

Segure control (ctrl) e pressione a tecla “O” para salvar o arquivo, e segure control (ctrl) e pressione a tecla “X” para sair do nano. Para aplicar essas alterações ao servidor web Apache, use o comando “sudo systemctl reiniciar apache2” comando. Agora você deve ter habilitado HTTPS usando um certificado autoassinado!

Na próxima vez que você visitar seu site digitando o nome de domínio totalmente qualificado do servidor ou endereço IP, você verá um aviso informando que a autoridade de certificação do site não é válida. Continue após esse erro (o método variará dependendo do seu navegador da web) e visualize o site. O navegador da web se conectou automaticamente usando HTTPS e enviará dados usando criptografia TLS.

Painel Nextcloud

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.

Execute o comando “sudo certbot –apache” (novamente, dois hifens antes de “apache”) para iniciar o certbot e siga todos os prompts para criar e baixar seu certificado web.

O processo de criação do certificado exigirá informações como um endereço de e-mail usado para entrar em contato com o proprietário do domínio e solicitará que você concorde com os termos e condições exigidos pelo Let's Encrypt. Insira ou selecione o nome de domínio para o qual você está adquirindo um certificado quando solicitado e conclua o processo interativo. Se você encontrar erros ao usar o Certbot, talvez seja necessário habilitar o encaminhamento de porta no seu roteador para as portas 80 e 443 para o endereço IP privado do seu servidor Nextcloud ou configurar os registros DNS do seu domínio para apontar para o endereço IP público do seu roteador. O processo de encaminhamento de porta e configuração do registro DNS depende muito do seu roteador, registrador de domínio e provedor de serviços de Internet e, portanto, não são abordados neste guia.

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:

Agora você deve ter configurado um certificado confiável de uma autoridade de certificação válida e criptografia HTTPS pronta para a web!

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”.

Clique no botão “Download and enable” na seção “Antivirus for files” para instalá-lo em sua instância Nextcloud. Em seguida, precisamos instalar o ClamAV e habilitar o scanner e o sistema de atualização de assinatura de malware. Use “sudo apt instalar clamav clamav-daemon” para obter todos os pacotes ClamAV necessários.

Quando os pacotes estiverem instalados, execute “sudo dpkg-reconfigure clamav-daemon” no console para abrir um menu de configuração interativo. Usaremos isso para personalizar o comportamento de escaneamento da nossa configuração ClamAV.Insira as seguintes respostas para as perguntas listadas abaixo:

  • 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
  • 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.

Role para baixo até a seção “Antivirus for Files” e altere o campo “Mode” para “ClamAV Daemon (Socket)”. Altere o campo “When infected files are found during a background scan” para “Delete file” e clique no botão “Save”. O ClamAV verificará periodicamente os arquivos enviados para o Nextcloud em busca de malware e excluirá os arquivos que correspondem às assinaturas de malware conhecidas.

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.

Na página “Configurações de administração”, selecione a seção “Configurações básicas” no lado esquerdo e role para baixo até o módulo “Servidor de e-mail”.

Nesta página, você pode configurar as configurações de criptografia, endereçamento e autenticação do seu servidor de e-mail. Você pode escolher alguns métodos de criptografia e autenticação para atender às suas necessidades de segurança ou compatibilidade.

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 protegido] 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.

Adicione a seguinte linha ao seu arquivo de configuração PHP, mantendo a consistência com o padrão de espaçamento criado pelas linhas anteriores e inserindo antes do colchete final “);”:

'default_phone_region' => 'EUA',

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.

Use “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.

Após salvar o arquivo usando control (ctrl) + “O” e control (ctrl) + “X”, aplique a janela de manutenção usando “sudo systemctl reiniciar apache2”.

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”.

Agora que o aplicativo foi habilitado, precisamos conectar o Nextcloud a um servidor LDAP. Certifique-se de ter uma conta pronta para autorizar essa conexão. Normalmente, uma conta de serviço criada especificamente para essa conexão é recomendada, mas qualquer conta do Active Directory ou LDAP com a capacidade de pesquisar o diretório pode ser usada. Entenda que, embora este exemplo use uma conta de domínio "Administrador" interna em um domínio do Active Directory, esta não é uma prática segura. Se o servidor Nextcloud for comprometido e as credenciais da conta “Administrador” forem roubadas, um invasor terá permissões totais para ler, modificar e até mesmo excluir qualquer objeto no domínio.

Navegue até a página “Administration settings” mais uma vez clicando na foto do perfil do seu usuário administrador e selecionando-a no menu suspenso. Clique no “LDAP/AD integration module” para começar.

Nesta página, comece a preencher as informações necessárias para seu servidor LDAP/Active Directory:

  • 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.
  • 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.

Após concluir a primeira página do módulo “Integração LDAP/AD”, clique no botão “Continuar” e reserve um segundo para visualizar e estudar a seção “Usuários”.

Embora o layout da página possa parecer confuso no início, sua função é filtrar os usuários disponíveis para login no servidor Nextcloud por atributos como classes de objetos e grupos. Recomendamos criar um grupo exclusivo para usuários que farão login no servidor Nextcloud para que a filtragem possa ser feita pela associação desse grupo. Selecione as classes de objetos e/ou grupos desejados aos quais deseja dar acesso e clique no botão “>” para adicionar o grupo ao filtro. Este exemplo usa um grupo chamado “família”. Clique no botão “Verificar configurações e contar usuários” para exibir uma mensagem mostrando quantos usuários se encaixam na descrição que você inseriu. Se a contagem parecer incorreta, verifique novamente seus filtros de classe de objeto e grupo.

Depois de ter o número correto de usuários, clique no botão “Continue” para prosseguir para a seção “Login Attributes”. Marque as caixas para os campos “LDAP/AD Username:” e “LDAP/AD Email Address” e verifique se o atributo de login está correto inserindo um nome de usuário e endereço de e-mail (se desejado) na caixa “Test Loginname” e clicando em “Verify settings”.

Se o nome de usuário/endereço de e-mail puder ser usado para efetuar login, uma notificação aparecerá informando "Usuário encontrado e configurações verificadas". Clique no botão "Continuar" uma última vez para passar para a página final, "Grupos". Semelhante à página "Usuários", a seção "Grupos" restringe quem pode efetuar login no servidor Nextcloud usando critérios de classe de objeto e grupo. Faça as mesmas seleções que você fez na página "Usuários" ou reduza o número de usuários que podem efetuar login inserindo critérios mais específicos aqui no campo "Pesquisar classes de objeto" e "Pesquisar grupos". Este exemplo seleciona o grupo "família" da lista na página e usa o botão ">" para limitar o acesso somente a esse grupo. Por fim, clique em "Verificar configurações e contar os grupos" para exibir o número de grupos válidos para login.

Agora você concedeu a capacidade de efetuar login no servidor Nextcloud para os grupos LDAP ou Active Directory selecionados nas etapas anteriores. Clique na foto do perfil do seu usuário administrador e selecione “Sair”. Quando solicitado um nome de usuário e senha para efetuar login novamente, teste a capacidade de login para um dos usuários aos quais você concedeu acesso. Se o usuário não conseguir efetuar login, revisite a seção “Usuários” e “Grupos” desta página para revisar seus critérios e solucionar o erro.

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.

Quando o aplicativo estiver habilitado, você poderá adicionar armazenamento externo acessando “Configurações de administração” e clicando no módulo “Armazenamento externo”. Nessa página, você pode se conectar ao armazenamento externo selecionando o tipo de armazenamento no menu suspenso e preenchendo os detalhes da configuração.

Para adicionar um compartilhamento SMB, selecione a opção “SMB/CIFS” na lista e preencha os detalhes de configuração da seguinte forma:

  • 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
  • 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.

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.

Se você quiser que os usuários consigam montar seu próprio armazenamento externo, clique na marca de seleção abaixo da seção de montagem de armazenamento da página. Se você escolher habilitar essa opção, você pode restringir adicionalmente os tipos de armazenamento disponíveis para automontagem.

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.

Nesta página, os usuários podem inserir seu nome de usuário e senha e clicar no botão de seleção para desbloquear o compartilhamento SMB para armazenar e recuperar arquivos.

Depois que o usuário inserir suas credenciais, o compartilhamento poderá ser acessado clicando no ícone de pasta na parte superior do menu do site Nextcloud e navegando pela lista de pastas e arquivos do usuário.

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.

Use “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

Adicionar essas duas linhas permitirá que o sistema use APCu como cache e defina o tamanho do cache para 128 megabytes em vez do valor padrão de 32. Quando terminar, pressione control (ctrl) + “O” e control (ctrl) + “X” para salvar o arquivo e sair do nano.

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.

Habilitamos o PHP para usar o APCu, mas agora precisamos instruir o Nextcloud a utilizá-lo.

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.

Depois que o arquivo de configuração do PHP for salvo, use “sudo systemctl reiniciar apache2” para reiniciar o servidor web Apache e aplicar suas alterações.

Se você seguiu todos os passos para configurar corretamente o APCu para cache de memória local, o desempenho do seu servidor Nextcloud deve aumentar substancialmente! Vamos dar um passo adiante e configurar o Redis para mais alguns benefícios do cache de memória.

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”.

Na parte inferior do arquivo de configuração do Nextcloud PHP, antes do colchete final “);”, adicione estas linhas, prestando muita atenção ao espaçamento e às vírgulas:

'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:

Antes de reiniciar o servidor web Apache e o Redis para aplicar as alterações, use “sudo usermod -a -G redis www-data” para adicionar o “dados-www” usuário para o “redis” grupo, concedendo ao servidor web acesso ao soquete Redis Unix. Finalmente, digite “sudo systemctl reiniciar apache2 && sudo systemctl reiniciar redis-server” no console e pressione Enter para aplicar as alterações e reiniciar os serviços afetados.

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
  • 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

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:

A verdadeira estrela do show de armazenamento de dados é o HPE ProLiant MicroServer Gen10 Plus de Andrew, que comporta quatro discos rígidos WD Red Plus de 4 TB e é conectado aleatoriamente via USB 3.2 Gen2 (10 Gbps) e Gen1 (5 Gbps) a um Micron SSD para inicialização do TrueNAS, uma unidade WD Red Pro de 14 TB para armazenamento de backup e mais dois SSDs Samsung 860 EVO para cache. Para ser claro, Andrew não recomenda fazer isso, mas gosta de forçar o que é possível com o hardware que possui. Cinco noves de confiabilidade não são absolutamente garantidos aqui em nenhuma circunstância, pessoal.

Outros dispositivos notáveis ​​incluem um PC Dell OptiPlex 7040 SFF reaproveitado, que executa o pfSense para fornecer serviços de roteamento para as várias sub-redes de seu homelab, e o modem Netgear CM1200, que surpreendentemente suporta agregação de links por algum motivo. Já mencionamos que cada conexão de dados do servidor, 1 ou 10 GBps, é redundante de falhas? Isso permitiria que o sistema de armazenamento de Andrew teoricamente compartilhasse dados a uma taxa de 20 Gbps bidirecionalmente, sob condições específicas, com várias conexões ocorrendo simultaneamente. Se ao menos ele tivesse os drives certos para chegar perto disso!

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:

Envolva-se com a StorageReview

Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | TikTok | RSS feed