Instal·lar Nextcloud en un servidor Linux: guia pràctica per a tenir el teu propi núvol personal
Nextcloud és una solució sòlida i funcional per als qui volen controlar les seves pròpies dades. No és l’única, però és una de les més mantingudes, completes i amb bona documentació. El problema és que moltes guies a internet o es queden en lo superficial o donen per sabudes coses que, en entorns reals, no són tan trivials.
Aquest article està dirigit als qui necessiten una instància funcional i segura de Nextcloud, ja sigui a casa seva, en una VPS o com a part d’un entorn de treball. La idea no és cobrir totes les possibilitats, sinó les que funcionen bé, són sostenibles a mig termini i et permeten resoldre problemes sense quedar-te bloquejat.
Abans de començar: què necessites i què has de decidir?
Requisits bàsics
- Un servidor Linux (recomano Debian 12 o Ubuntu 22.04 LTS).
- Accés com a root o usuari amb sudo.
- Un nom de domini (per exemple, cloud.domini.net).
- Un certificat TLS vàlid (farem servir Let’s Encrypt).
- Una base de dades (MySQL/MariaDB o PostgreSQL).
- PHP (versió ≥ 8.1).
- Almenys 2 GB de RAM si vols una experiència raonable amb diversos usuaris o arxius grans.
¿Instal·lació manual, Snap o Docker?
Nextcloud pot instal·lar-se de diverses formes:
- Snap: ràpid, però limitat. Útil per a provar o per a un servidor domèstic sense requisits especials. No ho recomano si necessites control detallat del sistema o rendiment ajustat.
- Docker: útil per a entorns que ja treballen amb contenidors. Però si no estàs familiaritzat amb Docker o no vols afegir una capa més de complexitat, no és la millor opció per començar.
- Instal·lació manual (recomanada aquí): permet ajustar el sistema segons necessitats reals. És més transparent i més fàcil de depurar quan alguna cosa falla.
Pas 1: preparar el servidor
1. Instal·lar els paquets necessaris
A Debian o Ubuntu:
sudo apt update
sudo apt install apache2 mariadb-server php php-cli php-fpm php-mysql \
php-gd php-curl php-mbstring php-xml php-zip php-intl php-bcmath php-imagick \
unzip curl wget openssl
Algunes extensions com php-imagick poden requerir repositoris extra en versions més velles.
Consell: Assegura’t que estàs usant PHP 8.1 o superior. A Debian 12 i Ubuntu 22.04 ve per defecte. Pots verificar amb:
php -v
2. Configurar PHP
Alguns paràmetres de PHP s’ han d’ ajustar per evitar errors a Nextcloud, especialment amb arxius grans.
Edita /etc/php/8.1/fpm/php.ini (o la versió que correspongui) i ajusta:
memory_limit = 512M
upload_max_filesize = 512M
post_max_size = 512M
max_execution_time = 360
Després reinicia PHP-FPM:
sudo systemctl restart php8.1-fpm
3. Configurar la base de dades
Llancem el client de MariaDB i creem la base de dades i l’usuari:
sudo mysql -u root -p
Un cop dins:
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'contrasenya_segura';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Fes servir una contrasenya segura i guarda-la en un lloc segur.
Pas 2: instal·lar Nextcloud
1. Descarregar Nextcloud
cd /var/www/
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo chown -R www-data:www-data nextcloud
Això deixa Nextcloud a /var/www/nextcloud.
2. Configureu Apache
Crea un nou arxiu de configuració per al lloc:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Contingut mínim:
<VirtualHost *:80>
ServerName cloud.domini.net
DocumentRoot /var/www/nextcloud/
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>
Habilita el lloc i els mòduls necessaris:
sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime
sudo systemctl reload apache2
Ara pots accedir a http://cloud.domini.net però encara sense HTTPS.
Pas 3: habilitar HTTPS amb Let’s Encrypt
Farem servir Certbot:
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d cloud.domini.net
Això ajustarà la configuració automàticament per redirigir a HTTPS i mantenir el certificat renovat.
Pas 4: finalitzar la instal·lació via web
Accedeix a https://cloud.domini.net.
L’instal·lador et demanarà:
- Crear un usuari admin.
- Dades de la base de dades:
- Tipus: MySQL/MariaDB
- Usuari: nextclouduser
- Contrasenya: la que vas posar abans
- Base de dades: nextcloud
- Servidor: localhost
Nextcloud completarà la instal·lació i generarà els arxius de configuració.
Pas 5: ajustos recomanats post-instal·lació
Configurar cron
El sistema de tasques programades de Nextcloud és vital per a notificacions, neteja d’ arxius temporals, etc.
Evita fer servir l’opció “AJAX” en la configuració web. Fes servir el cron del sistema:
sudo crontab -u www-data -e
I afegeix:
*/5 * * * * php -f /var/www/nextcloud/cron.php
Habilitar caching
Nextcloud funciona molt millor amb un sistema de caixet d’objectes. Usa Redis:
sudo apt install redis php-redis
sudo systemctl enable redis-server --now
Edita l’arxiu de configuració de Nextcloud (/var/www/nextcloud/config/config.php) i afegeix:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
Nota: Assegura’t que el mòdul apcu està habilitat:
sudo phpenmod apcu
sudo systemctl restart php8.1-fpm
Activar previsualitzacions
Això redueix la càrrega quan s’ hi accedeixen moltes imatges o vídeos:
sudo -u www-data php /var/www/nextcloud/occ config:app:set previewgenerator squareSizes --value="32 256"
sudo -u www-data php /var/www/nextcloud/occ config:app:set previewgenerator widthSizes --value="256 1024"
sudo -u www-data php /var/www/nextcloud/occ config:app:set previewgenerator heightSizes --value="256"
I crea una tasca cron a part per generar-les:
sudo crontab -u www-data -e
Afegeix (si no ho has fet ja):
*/15 * * * * php -f /var/www/nextcloud/occ preview:pre-generate
Solució de problemes comuns
Arxius grans que fallen en pujar
Verificació:
- upload_max_filesize i post_max_size en PHP.
- Límit de mida a Apache (LimitRequestBody).
- Timeout del navegador (si és molt gran).
Permisos trencats després d’una actualització
De vegades en actualitzar via web els permisos es trenquen. Assegura’t que tot pertany a www-data:
sudo chown -R www-data:www-data /var/www/nextcloud
Alerta que no està habilitat el cron
Si veus aquest avís en la interfície, probablement no has configurat el cron del sistema. Revisa amb:
sudo crontab -u www-data -l
I assegura’t que hi ha una entrada per cron.php.
Seguretat mínima recomanable
- Certificats vàlids i actualitzats.
- HTTPS forçat.
- Fail2ban actiu per a /login.
- Firewall bàsic amb només ports 80/443 oberts.
- Còpies de seguretat del directori data/ i de la base de dades.
Què convé automatitzar?
- Renovació de certificats (ja ho fa Certbot amb systemd).
- Backups regulars (rsync o borg per a arxius; mysqldump per a la base de dades).
- Tasques de manteniment amb cron.
Usuaris: què convé fer des del començament
Si només faràs servir Nextcloud tu, el compte d’administrador pot ser suficient. Però si hi haurà més usuaris (família, companys, clients interns), convé prendre algunes decisions abans que el sistema creixi.
1. Crea grups des del començament
Fer servir grups permet aplicar polítiques, compartir carpetes entre diversos usuaris o limitar l’accés a certes apps.
Des del panell d’ administració:
- Ves a Usuaris.
- Crea un o més grups segons el tipus d’usuaris (ex: equip, clients, privat).
En crear usuaris nous, assigna’ls al seu grup. Això t’evita haver de fer correccions després.
2. Limita l’ús d’espai per usuari si estàs en un servidor amb disc ajustat
Pots establir una quota d’emmagatzematge des del panell d’ Usuaris.
Exemple pràctic:
- Compte gratuït en una VPS amb disc de 25 GB.
- Reserva 5 GB per al sistema.
- Deixes 20 GB disponibles, amb quotes de 2 GB per usuari. És més fàcil de controlar.
Emmagatzematge extern: connectar Google Drive, S3 o un disc local
Nextcloud permet accedir a altres serveis com si fossin carpetes dins del sistema.
1. Habilita l’app “Suport d’emmagatzematge extern”
Des d ‘Apps > Integració.
Un cop habilitada, apareix un nou menú en Configuració > Emmagatzematge extern.
2. Connectar una carpeta local
Això és útil si muntes un disc addicional o una carpeta compartida en xarxa.
Exemple: tens un disc muntat a /mnt/arxius:
sudo chown -R www-data:www-data /mnt/archivos
Al panell de Nextcloud:
- Tipus: “Emmagatzemament local”.
- Ruta: /mnt/arxius.
- Assignat a: selecciona els usuaris o grups que l’ hagin de veure.
Precaució: el directori ha de tenir permisos adequats i no estar accessible des del web directament.
3. Connectar S3, Google Drive, Dropbox, etc.
Alguns serveis requereixen que configuris credencials d’API en les seves respectives consoles (AWS, Google Cloud, etc.). La majoria funcionen bé, però S3 amb compatibilitat MinIO o Wasabi sol donar millors resultats que Dropbox o Google Drive, que de vegades limiten el nombre de connexions.
Clients de sincronització: com evitar conflictes innecessaris
Els clients d’escriptori de Nextcloud funcionen bé, però no són infal·libles.
Recomanacions pràctiques:
- No sincronitzis carpetes del sistema operatiu. Res de sincronitzar /Documents o /Downloads directament. Crea una carpeta específica (ex: Nextcloud) i fes servir només aquesta.
- Evita sincronitzar arxius de bases de dades actives o màquines virtuals. Això genera conflictes o corrupcions (per exemple, arxius .sqlite, .vdi, etc.).
- No barregis carpetes sincronitzades amb discos muntats externament en mode no persistent. Si el disc desapareix per un moment, el client pot esborrar arxius creient que han estat eliminats.
- Configura exclusions: des del client pots ignorar alguns tipus d’arxiu. Afegeix patrons com *.tmp, *.part, ~*, etc.
Rendiment: quines coses l’ afecten
Tot i que Nextcloud funciona en entorns modestos, hi ha diversos factors que poden fer-ho anar lent si no s’ajusten.
1. Caching de previsualitzacions
Generar miniatures d’ imatges i vídeos consumeix CPU i RAM. Si puges moltes fotos (per exemple, d’un telèfon), l’experiència millora molt si ja estan generades.
Ja vam veure com configurar previewgenerator. Si vas a pujar centenars d’imatges:
sudo -u www-data php /var/www/nextcloud/occ preview:generate-all
Això pot trigar bastant, però es fa una sola vegada.
2. Indexació d’arxius externs
Si connectes discos grans o emmagatzematge en xarxa, Nextcloud els indexa. Això pot afectar el rendiment de tota la instància si no es limita.
Solució:
- No activis escaneig automàtic.
- Executa l’ escaneig manual fora de l’ horari d’ ús:
sudo -u www-data php /var/www/nextcloud/occ files:scan --path="usuario/files/NOMCARPETA"
Evita escanejar –all si no és estrictament necessari.
3. Opcache en PHP
Verifica que opcache estigui habilitat:
php -i | grep opcache.enable
I a /etc/php/8.1/fpm/php.ini, configura:
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
Reinicia PHP-FPM després dels canvis.
Actualitzacions: com fer-les sense trencar res
Mètode recomanat: via línia de comandaments
La interfície web té un actualitzador automàtic, però sol fallar en instal·lacions personalitzades o quan hi ha apps no compatibles.
Millor actualització de l’OCC:
sudo -u www-data php /var/www/nextcloud/updater/updater.phar
O en versions recents:
sudo -u www-data php /var/www/nextcloud/occ upgrade
Abans d’ actualitzar:
- Fes un backup de:
- La base de dades (mysqldump).
- El directori config/.
- El directori data/.
- Desactiva apps de tercers no crítiques.
- Verifica la compatibilitat de PHP i les extensions.
Còpies de seguretat: el mínim viable
No tenir còpies de seguretat és una de les raons més freqüents de pèrdua de dades. Nextcloud no té backup automàtic integrat. Hi ha moltes formes de fer-ho, però això és el mínim raonable:
1. Backup diari amb rsync i mysqldump
#!/bin/bash
DATA=$(date +%F)
DESTi="/backup/nextcloud/$DATA"
mkdir -p "$DESTI"
# Arxius
rsync -Aax /var/www/nextcloud/ "$DESTI/files/"
# Base de dades
mysqldump -u root -p'CONTRASENYA' nextcloud > "$DESTI/db.sql"
# Mantenir només els darrers 7 dies
find /backup/nextcloud/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
Automatitza-ho amb cron.
Check-list d’instal·lació i desplegament
- Servidor base configurat (Debian/Ubuntu actualitzat)
- Domini amb DNS apuntant correctament
- Certificat TLS Let’ s Encrypt actiu
- PHP ≥ 8.1 amb mòduls necessaris i ajustos en php.ini
- Base de dades creada amb usuari i permisos
- Arxius de Nextcloud descarregats i amb permisos correctes
- Apatxe configurat amb mod_rewrite i mod_headers actius
- Cron del sistema per cron.php cada 5 minuts
- Opcache i Redis funcionant
- Còpies de seguretat funcionals i provades
- Client de sincronització configurat i provat
Conclusió
Nextcloud no és difícil de posar en marxa, però sí que es pot tornar lent, inestable o insegur si no s’ajusta després d’instal·lar-lo. Les decisions que prenguis al començament(estructura d’usuaris, emmagatzematge, actualitzacions, backups) tenen molt més impacte que provar totes les apps del marketplace.
No necessites configurar tot d’una vegada, però sí entendre l’essencial abans de delegar dades reals en el sistema.
Si necessites estendre aquesta instal·lació a HA, alta disponibilitat, autenticació LDAP, o ús empresarial, aquesta és una altra capa amb decisions específiques, però aquesta base ja et permet treballar amb confiança.

