Nextcloud é uma solução de nuvem open-source e um fork do ownCloud, fundada em 2016 pelo ex-fundador do ownCloud, Frank Karlitschek. Com o Nextcloud, você opera sua própria nuvem privada para arquivos, calendários, contatos, chat e videochamadas – totalmente sob seu controle, em vez de depender de um provedor externo.
Para garantir desempenho, estabilidade e funcionalidade ideais, recomendamos a seguinte configuração para hospedar um servidor Nextcloud. O servidor Nextcloud não é compatível com Windows ou macOS, pelo menos não sem virtualização adicional ou soluções alternativas semelhantes.
Os requisitos a seguir são baseados nos requisitos oficiais do sistema Nextcloud e em nossa própria experiência. Se você não atender a esses requisitos, podem ocorrer problemas.
| Componentes | Mínimo | Recomendado |
|---|---|---|
| CPU | 1x 2 GHz | 4x 2+ GHz |
| RAM | 1 GB | 4+ GB |
| Armazenamento | 10 GB | 50+ GB (dependendo da quantidade de dados armazenados) |
| Banda | 100 Mbit/s (upload e download) | 500 Mbit/s (upload e download), recomendado para múltiplos usuários |
| Plataforma | Opções |
|---|---|
| Sistema Operacional | Ubuntu (22.04, 24.04), Debian (12, 13) |
| Banco de Dados | MariaDB 10.11+ (recomendado), PostgreSQL 14+, MySQL 8.0+, SQLite (apenas para testes e instâncias mínimas) |
| Servidor Web | Apache 2.4 com mod_php ou php-fpm (recomendado), ou Nginx com php-fpm |
| PHP | 8.3, 8.4, 8.5 (recomendado) |
Para os requisitos mais atualizados, consulte a documentação oficial do Nextcloud – o Nextcloud atualiza regularmente suas exigências de PHP e banco de dados com novos lançamentos principais.
Para instalar a nuvem em um servidor Linux, você deve se conectar via cliente SSH. Se não souber como usar SSH, veja este guia: Primeiro acesso (SSH)
Com a conexão estabelecida, instale os pacotes necessários para a instalação do Nextcloud, incluindo servidor web e PHP com as extensões requeridas pelo Nextcloud (como gd, curl, mbstring, xml, zip, intl, bcmath, gmp, apcu).
Apache (servidor web) e PHP
🗄️ Ubuntu 24.04 (inclui PHP 8.3 diretamente):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 php php-cli php-fpm php-common php-mysql php-pgsql php-sqlite3 php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-gmp php-imagick php-apcu
🗄️ Ubuntu 22.04 (PHP padrão é 8.1, muito antigo para versões atuais do Nextcloud – PPA necessário):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt -y install php8.3 php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-imagick php8.3-apcu
🗄️ Debian 13 “trixie” (inclui PHP 8.3 diretamente):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 php php-cli php-fpm php-common php-mysql php-pgsql php-sqlite3 php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-gmp php-imagick php-apcu
🗄️ Debian 12 “bookworm” (PHP padrão é 8.2, muito antigo para versões atuais do Nextcloud – repositório de terceiros necessário):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 lsb-release apt-transport-https ca-certificates wget
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt -y install php8.3 php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-imagick php8.3-apcu
Verifique a versão do PHP:
php -v
O Nextcloud exige memory_limit = 512M ou superior. Ajuste esse valor no arquivo php.ini correspondente (ex.: /etc/php/8.3/apache2/php.ini ou /etc/php/8.3/fpm/php.ini) e reinicie o Apache ou PHP-FPM.
O próximo passo é escolher o tipo de banco de dados para armazenar os dados do Nextcloud. Escolha uma das opções abaixo e siga apenas os passos correspondentes.
Instalação do pacote:
sudo apt-get install mariadb-server
Durante a instalação, será solicitado que você defina uma senha para o root. Se não aparecer essa solicitação, a senha padrão está vazia, o que é inseguro e deve ser alterado imediatamente!
Em seguida, conecte-se ao servidor de banco de dados e crie o banco necessário:
mysql -u root -p
CREATE DATABASE nextcloud;
Depois, crie um usuário com acesso ao banco do Nextcloud:
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'SUA_SENHA_AQUI';
Não pule essa etapa usando o usuário root. Isso é inseguro e coloca seus dados em risco!
Por fim, conceda as permissões ao novo usuário:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Quando terminar, saia do banco com exit e continue com os próximos passos.
Instalação do pacote:
sudo apt-get install mysql-server
Durante a instalação, será solicitado que você defina uma senha para o root. Se não aparecer essa solicitação, a senha padrão está vazia, o que é inseguro e deve ser alterado imediatamente!
Em seguida, conecte-se ao servidor de banco de dados e crie o banco necessário:
mysql -u root -p
CREATE DATABASE nextcloud;
Depois, crie um usuário com acesso ao banco do Nextcloud:
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'SUA_SENHA_AQUI';
Não pule essa etapa usando o usuário root. Isso é inseguro e coloca seus dados em risco!
Por fim, conceda as permissões ao novo usuário:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Quando terminar, saia do banco com exit e continue com os próximos passos.
Instalação do pacote:
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
Em seguida, conecte-se ao servidor de banco de dados e crie o banco e o usuário:
sudo -u postgres psql
CREATE USER nc_user WITH ENCRYPTED PASSWORD 'SUA_SENHA_AQUI';
CREATE DATABASE nextcloud OWNER nc_user;
Não use o superusuário postgres para o Nextcloud. Isso é inseguro e coloca seus dados em risco!
Quando terminar, saia do banco com \q. Os dados de conexão do PostgreSQL devem ser inseridos no instalador web ou diretamente no arquivo config.php:
<?php
$CONFIG = array(
'dbtype' => 'pgsql',
'dbname' => 'nextcloud',
'dbuser' => 'nc_user',
'dbpassword' => 'SUA_SENHA_AQUI',
'dbhost' => 'localhost',
'dbtableprefix' => '',
);
SQLite é adequado apenas para testes ou instâncias muito pequenas de usuário único – para uso multiusuário em produção, os desenvolvedores do Nextcloud recomendam fortemente evitar devido à falta de concorrência em acessos paralelos.
Instalação do pacote:
sudo apt-get install sqlite3 php8.3-sqlite3
O Nextcloud cria automaticamente o arquivo do banco SQLite durante a instalação, não sendo necessária criação manual. A configuração no config.php é:
<?php
$CONFIG = array(
'dbtype' => 'sqlite3',
'dbname' => 'nextcloud',
'dbtableprefix' => '',
);
