Requisitos del servidor
Ubuntu 22.04 LTS con al menos 2 GB de RAM, 2 vCPU y espacio en disco acorde a los archivos que planeas alojar. Docker y Docker Compose deben estar instalados. Si aún no los tienes:
curl -fsSL https://get.docker.com | sudo bash
sudo apt install -y docker-compose-plugin
sudo usermod -aG docker $USER Cierra sesión y vuelve a entrar para que el grupo surta efecto.
Estructura del proyecto
Crea el directorio de trabajo:
mkdir -p ~/nextcloud && cd ~/nextcloud Archivo docker-compose.yml
Crea ~/nextcloud/docker-compose.yml:
services:
db:
image: mariadb:10.11
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpass_cambia_esto
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: ncpass_cambia_esto
volumes:
- db_data:/var/lib/mysql
redis:
image: redis:7-alpine
restart: always
app:
image: nextcloud:28-apache
restart: always
depends_on:
- db
- redis
ports:
- "8080:80"
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: ncpass_cambia_esto
NEXTCLOUD_ADMIN_USER: admin
NEXTCLOUD_ADMIN_PASSWORD: adminpass_cambia_esto
NEXTCLOUD_TRUSTED_DOMAINS: nube.tudominio.com
REDIS_HOST: redis
volumes:
- nc_data:/var/www/html
volumes:
db_data:
nc_data: Inicia los contenedores:
docker compose up -d Espera 30–60 segundos mientras Nextcloud inicializa la base de datos. Verifica el estado:
docker compose logs -f app Configurar Nginx como proxy inverso
sudo apt install -y nginx certbot python3-certbot-nginx Crea /etc/nginx/sites-available/nextcloud:
server {
listen 80;
server_name nube.tudominio.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 10G;
proxy_read_timeout 600s;
}
} sudo ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d nube.tudominio.com Verificar la instalación
Abre https://nube.tudominio.com en el navegador. Deberías ver el panel de Nextcloud con las credenciales de administrador definidas en el compose.
Configuraciones recomendadas post-instalación
Entra a Ajustes → Administración → Información básica y corrige los avisos que Nextcloud muestre. Los más comunes son:
- PHP memory limit: ajusta
memory_limit = 512Men el contenedor o monta unphp.inipersonalizado. - Directiva de caché de memoria: Redis ya está configurado en el compose; actívalo en
config.php:
docker exec -u www-data nextcloud-app-1 php occ config:system:set memcache.local --value='\OC\Memcache\Redis'
docker exec -u www-data nextcloud-app-1 php occ config:system:set memcache.locking --value='\OC\Memcache\Redis'
docker exec -u www-data nextcloud-app-1 php occ config:system:set redis --type=json \
--value='{"host":"redis","port":6379}' - Directiva de HSTS: Nginx la añade automáticamente con Certbot.
Instalar apps adicionales
Desde la interfaz de administración puedes instalar:
- Nextcloud Talk: videollamadas y chat interno
- Collabora Online o OnlyOffice: edición colaborativa de documentos
- Nextcloud Photos: galería de imágenes con reconocimiento facial
- Calendar y Contacts: sincronización CalDAV/CardDAV
Configurar la app móvil
- 1 Descarga Nextcloud desde tu tienda de apps.
- 2 Escribe
https://nube.tudominio.comen el campo de servidor. - 3 Inicia sesión con tu usuario y contraseña.
- 4 Activa la sincronización automática de fotos en Ajustes → Auto-upload.
Backup automático
Crea /usr/local/bin/nextcloud-backup.sh:
#!/bin/bash
DATE=$(date +%Y%m%d)
DEST=/backups/nextcloud
mkdir -p $DEST
# Modo mantenimiento ON
docker exec -u www-data nextcloud-app-1 php occ maintenance:mode --on
# Backup base de datos
docker exec nextcloud-db-1 mysqldump -u nextcloud -pncpass_cambia_esto nextcloud \
| gzip > $DEST/db_$DATE.sql.gz
# Backup datos
docker run --rm --volumes-from nextcloud-app-1 \
-v $DEST:/backup alpine \
tar czf /backup/data_$DATE.tar.gz /var/www/html/data /var/www/html/config
# Modo mantenimiento OFF
docker exec -u www-data nextcloud-app-1 php occ maintenance:mode --off
# Eliminar backups de más de 7 días
find $DEST -name "*.gz" -mtime +7 -delete chmod +x /usr/local/bin/nextcloud-backup.sh
echo "0 2 * * * root /usr/local/bin/nextcloud-backup.sh" | sudo tee /etc/cron.d/nextcloud-backup Actualizaciones
docker compose pull
docker compose up -d
docker exec -u www-data nextcloud-app-1 php occ upgrade Nextcloud en tu VPS te da almacenamiento, calendarios y colaboración en documentos con privacidad total. El stack con Docker Compose es sencillo de mantener y escala fácilmente añadiendo disco o aumentando recursos.
Terranode ofrece VPS con NVMe desde $6/mes en Ecuador, ideales para alojar tu instancia de Nextcloud con baja latencia para equipos locales.
Hosting con LiteSpeed, NVMe y soporte 24/7 desde $3/mes.