Nextcloud es una solución de nube de código abierto y un fork de ownCloud, fundada en 2016 por Frank Karlitschek, el exfundador de ownCloud. Con Nextcloud puedes gestionar tu propia nube privada para archivos, calendarios, contactos, chat y videollamadas, todo bajo tu control, sin depender de un proveedor externo.
Para garantizar un rendimiento, estabilidad y funcionalidad óptimos, recomendamos la siguiente configuración para alojar un servidor Nextcloud. El servidor Nextcloud no es compatible con Windows ni macOS, al menos no sin virtualización adicional o soluciones similares.
Los siguientes requisitos se basan en los requisitos oficiales del sistema de Nextcloud y en nuestra propia experiencia. Si no cumples estos requisitos, podrías tener problemas.
| Componentes | Mínimo | Recomendado |
|---|---|---|
| CPU | 1x 2 GHz | 4x 2+ GHz |
| RAM | 1 GB | 4+ GB |
| Almacenamiento | 10 GB | 50+ GB (depende de la cantidad de datos almacenados) |
| Ancho de banda | 100 Mbit/s (subida y bajada) | 500 Mbit/s (subida y bajada), recomendado si varios usuarios usan la nube |
| Plataforma | Opciones |
|---|---|
| Sistema operativo | Ubuntu (22.04, 24.04), Debian (12, 13) |
| Base de datos | MariaDB 10.11+ (recomendado), PostgreSQL 14+, MySQL 8.0+, SQLite (solo para pruebas y entornos mínimos) |
| Servidor web | Apache 2.4 con mod_php o php-fpm (recomendado), o Nginx con php-fpm |
| PHP | 8.3, 8.4, 8.5 (recomendado) |
Para los requisitos más actuales, consulta la documentación oficial de Nextcloud. Nextcloud actualiza regularmente sus requisitos de PHP y base de datos con cada nueva versión mayor.
Para instalar la nube en un servidor Linux, necesitas conectarte mediante un cliente SSH. Si no sabes cómo usar SSH, aquí tienes una guía: Primer acceso (SSH)
Una vez establecida la conexión, puedes instalar los paquetes necesarios para la instalación de Nextcloud. Esto incluye un servidor web y PHP con las extensiones que Nextcloud requiere (como gd, curl, mbstring, xml, zip, intl, bcmath, gmp, apcu).
Apache (servidor web) y PHP
🗄️ Ubuntu 24.04 (incluye PHP 8.3 directamente):
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 estándar es 8.1, demasiado antiguo para versiones actuales de Nextcloud, por lo que se necesita un PPA):
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” (incluye PHP 8.3 directamente):
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 estándar es 8.2, demasiado antiguo para versiones actuales de Nextcloud, por lo que se necesita un repositorio externo):
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
Para comprobar la versión de PHP:
php -v
Nextcloud requiere memory_limit = 512M o superior. Ajusta este valor en el archivo php.ini correspondiente (por ejemplo, /etc/php/8.3/apache2/php.ini o /etc/php/8.3/fpm/php.ini) y reinicia Apache o PHP-FPM después.
El siguiente paso es elegir un tipo de base de datos para almacenar los datos de Nextcloud. Elige una de las siguientes opciones y sigue solo los pasos correspondientes.
Instalación del paquete:
sudo apt-get install mariadb-server
Durante la instalación se te pedirá establecer una contraseña para root. Si no aparece esta solicitud, la contraseña por defecto está vacía, lo cual es inseguro y debe cambiarse inmediatamente.
Luego, conéctate al servidor de base de datos y crea la base de datos necesaria:
mysql -u root -p
CREATE DATABASE nextcloud;
Después crea un usuario con acceso a la base de datos de Nextcloud:
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'TU_CONTRASEÑA_AQUÍ';
No omitas este paso usando el usuario root para Nextcloud. Es inseguro y pone en riesgo tus datos.
Finalmente, asigna los permisos al nuevo usuario:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Cuando termines, sal con exit y continúa con los siguientes pasos.
Instalación del paquete:
sudo apt-get install mysql-server
Durante la instalación se te pedirá establecer una contraseña para root. Si no aparece esta solicitud, la contraseña por defecto está vacía, lo cual es inseguro y debe cambiarse inmediatamente.
Luego, conéctate al servidor de base de datos y crea la base de datos necesaria:
mysql -u root -p
CREATE DATABASE nextcloud;
Después crea un usuario con acceso a la base de datos de Nextcloud:
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'TU_CONTRASEÑA_AQUÍ';
No omitas este paso usando el usuario root para Nextcloud. Es inseguro y pone en riesgo tus datos.
Finalmente, asigna los permisos al nuevo usuario:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Cuando termines, sal con exit y continúa con los siguientes pasos.
Instalación del paquete:
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
Luego, conéctate al servidor de base de datos y crea la base de datos y el usuario:
sudo -u postgres psql
CREATE USER nc_user WITH ENCRYPTED PASSWORD 'TU_CONTRASEÑA_AQUÍ';
CREATE DATABASE nextcloud OWNER nc_user;
No uses el superusuario postgres para Nextcloud. Es inseguro y pone en riesgo tus datos.
Cuando termines, sal con \q. Los datos de conexión de PostgreSQL los puedes introducir en el instalador web o directamente en el archivo config.php:
<?php
$CONFIG = array(
'dbtype' => 'pgsql',
'dbname' => 'nextcloud',
'dbuser' => 'nc_user',
'dbpassword' => 'TU_CONTRASEÑA_AQUÍ',
'dbhost' => 'localhost',
'dbtableprefix' => '',
);
SQLite es adecuado solo para pruebas o para instancias muy pequeñas de un solo usuario. Los desarrolladores de Nextcloud desaconsejan su uso en entornos multiusuario productivos debido a la falta de concurrencia en accesos paralelos.
Instalación del paquete:
sudo apt-get install sqlite3 php8.3-sqlite3
Nextcloud crea automáticamente el archivo de base de datos SQLite durante la instalación, no es necesario crearla manualmente. La configuración en config.php es:
<?php
$CONFIG = array(
'dbtype' => 'sqlite3',
'dbname' => 'nextcloud',
'dbtableprefix' => '',
);
