Learning Center
Entorno Docker

Instalar Nextcloud con Docker

25 nov 2025
Hostman Team
Hostman Team

Para quienes desean tener control total sobre sus datos, Nextcloud ofrece una potente solución de código abierto para construir un sistema de almacenamiento en la nube privado. La plataforma no solo permite sincronizar archivos de forma segura entre dispositivos, sino también alojar el almacenamiento en tu propio servidor, evitando depender de proveedores externos.

En esta guía veremos cómo instalar Nextcloud utilizando contenedores Docker aislados, lo que simplifica enormemente el despliegue y la administración. También configuraremos el cifrado de tráfico automático mediante certificados SSL de Let’s Encrypt para garantizar una transmisión segura de los datos.

Requisitos previos
Copiar enlace

Necesitarás:

  • Un servidor en la nube de Hostman con Linux Ubuntu 24.04 preinstalado.

  • Un nombre de dominio.

  • Docker y Docker Compose instalados.

Para el servidor, se recomienda una configuración con 1 CPU, 2 GB de RAM y una dirección IPv4 pública, que puedes solicitar al crear el servidor o más tarde en la sección “Network”.

El servidor estará listo en pocos minutos. La dirección IPv4 y las credenciales de acceso SSH estarán disponibles en el Dashboard.

Instalar y ejecutar Nextcloud
Copiar enlace

Nextcloud requiere varios componentes fundamentales:

  • Base de datos: en este caso MariaDB, un sistema de gestión de bases de datos rápido y fiable.

  • Certificado SSL: utilizaremos certificados gratuitos de Let’s Encrypt.

  • Reverse proxy: añadiremos Nginx Proxy Manager, que se encargará de enrutar el tráfico HTTP y HTTPS hacia los contenedores correspondientes.

Paso 1: Crear un directorio de configuración
Copiar enlace

Primero, crea la carpeta donde se almacenarán los archivos de configuración y entra en ella:

mkdir nextcloud && cd nextcloud

Paso 2: Crear el archivo .env
Copiar enlace

Este archivo oculto almacenará variables con contraseñas:

nano .env

Contenido del archivo:

NEXTCLOUD_ROOT_PASSWORD=secure_root_password_123

NEXTCLOUD_DB_PASSWORD=secure_nextcloud_db_password_456

NPM_ROOT_PASSWORD=secure_npm_root_password_789

NPM_DB_PASSWORD=secure_npm_db_password_012

Recuerda reemplazar los valores por tus propias credenciales.

Paso 3: Crear el archivo docker-compose.yml
Copiar enlace

Crea el archivo:

nano docker-compose.yml

Agrega la siguiente configuración (no traducida por tu indicación):

volumes:

  nextcloud-data:

  nextcloud-db:

  npm-data:

  npm-ssl:

  npm-db:

 

networks:

  frontend:

  backend:

 

services:

  nextcloud-app:

    image: nextcloud:31.0.8

    restart: always

    volumes:

      - nextcloud-data:/var/www/html

    environment:

      - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}

      - MYSQL_DATABASE=nextcloud

      - MYSQL_USER=nextcloud

      - MYSQL_HOST=nextcloud-db

      - MYSQL_PORT=3306

    networks:

      - frontend

      - backend

 

  nextcloud-db:

    image: mariadb:12.0.2

    restart: always

    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW

    volumes:

      - nextcloud-db:/var/lib/mysql

    environment:

      - MYSQL_ROOT_PASSWORD=${NEXTCLOUD_ROOT_PASSWORD}

      - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}

      - MYSQL_DATABASE=nextcloud

      - MYSQL_USER=nextcloud

    networks:

      - backend

 

  npm-app:

    image: jc21/nginx-proxy-manager:2.12.6

    restart: always

    ports:

      - "80:80"

      - "81:81"

      - "443:443"

    environment:

      - DB_MYSQL_HOST=npm-db

      - DB_MYSQL_PORT=3306

      - DB_MYSQL_USER=npm

      - DB_MYSQL_PASSWORD=${NPM_DB_PASSWORD}

      - DB_MYSQL_NAME=npm

    volumes:

      - npm-data:/data

      - npm-ssl:/etc/letsencrypt

    networks:

      - frontend

      - backend

 

  npm-db:

    image: jc21/mariadb-aria:10.11.5

    restart: always

    environment:

      - MYSQL_ROOT_PASSWORD=${NPM_ROOT_PASSWORD}

      - MYSQL_DATABASE=npm

      - MYSQL_USER=npm

      - MYSQL_PASSWORD=${NPM_DB_PASSWORD}

    volumes:

      - npm-db:/var/lib/mysql

    networks:

      - backend

Paso 4: Iniciar los contenedores
Copiar enlace

Ejecuta:

docker compose up -d

Si aparece un error relacionado con los límites de descarga de Docker Hub:

  1. Inicia sesión en tu cuenta de Docker Hub o crea una nueva.

  2. Ve a Account settings → Personal access tokens.

  3. Haz clic en Generate new token.

  4. Añade una descripción, establece una fecha de expiración y selecciona permisos: Read, Write, Delete.

  5. Haz clic en Generate y copia el token (solo se muestra una vez).

  6. En el servidor, inicia sesión con:

docker login -u dockeruser

Sustituye dockeruser por tu nombre de usuario y usa el token como contraseña.

Reinicia los contenedores:

docker compose up -d

Comprueba su estado:

docker ps

Todos los contenedores deben mostrar Up.

Paso 5: Configurar HTTPS con Let’s Encrypt
Copiar enlace

Abre en el navegador:

http://<server-IP>:81

Inicia sesión con las credenciales predeterminadas:

  • Usuario: admin@example.com

  • Contraseña: changeme

Al iniciar sesión por primera vez:

  • Actualiza el nombre, apodo y correo electrónico del administrador.

  • Cambia la contraseña:

    • Current Password: changeme

    • New Password: tu nueva contraseña

    • Confirm Password: repetir contraseña

Paso 6: Añadir un Proxy Host
Copiar enlace

Entra en Hosts → Proxy Hosts.

Haz clic en Add Proxy Host y completa:

  • Domain Names: el dominio de tu instancia de Nextcloud

  • Scheme: http

  • Forward Hostname/IP: nextcloud-app

  • Forward Port: 80

En la pestaña SSL:

  • Selecciona Request a new SSL Certificate

  • Activa:

    • Force SSL

    • HTTP/2 Support

    • HSTS Enabled

Introduce tu email para Let’s Encrypt y acepta los términos. Guarda los cambios.

Paso 7: Iniciar sesión en Nextcloud
Copiar enlace

Ahora accede a tu dominio. Si todo está configurado correctamente, se abrirá la interfaz web de Nextcloud y se emitirá automáticamente un certificado SSL de Let’s Encrypt.

  • Crea una cuenta de administrador.

  • Opcionalmente instala aplicaciones recomendadas.

La instalación y configuración básica están completas.

Conclusión
Copiar enlace

En este artículo hemos mostrado cómo desplegar Nextcloud utilizando Docker y cómo obtener un certificado SSL gratuito de Let’s Encrypt.

Este método es uno de los más fiables, seguros y fácilmente escalables. Docker proporciona aislamiento limpio, simplifica las actualizaciones y facilita las migraciones. El uso de un certificado SSL no es solo una recomendación, sino una necesidad para proteger datos sensibles y garantizar tráfico cifrado.