Cómo instalar Nextcloud AIO en Ubuntu 22.04

Nextcloud AIO son las siglas de Nextcloud All in One. Es un instalador basado en Docker que facilita el despliegue de Nextcloud. Incluye las siguientes funciones y aplicaciones:

  1. Nextcloud
  2. Nextcloud Office: se basa en Collabora Online Development Edition (CODE), que a su vez se basa en LibreOffice. Puedes utilizarlo para editar documentos en tiempo real con varios editores. Es compatible con todos los formatos de archivos ofimáticos populares.
  3. Nextcloud Talk – es un servicio de comunicación de audio/vídeo y chat. Admite llamadas cifradas, llamadas de grupo, pantalla compartida, WebRTC para soporte multiplataforma y alojamiento de seminarios web.
  4. Imaginary – para procesamiento y conversión de imágenes de alto nivel.
  5. ClamAV – para protección contra virus y malware.
  6. Borgbackup – proporciona una función integrada de copia de seguridad y restauración.
  7. ElasticSearch – para realizar búsquedas de texto completo en documentos y archivos.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04 con un mínimo de 1 GB de RAM y 1 vCPU. Si quieres utilizar ClamAV, necesitarás 1GB adicional de RAM. Necesitarás 1GB adicional de RAM para ElasticSearch (fulltextsearch), y también para Nextcloud Talk. Con todos los complementos activados, necesitarás un mínimo de 4 GB de RAM y 2vCPU.
  • Un nombre de dominio completo (FQDN) que apunte a tu servidor. Para nuestros propósitos, utilizaremos nextcloud.example.com como nombre de dominio.
  • Un usuario no root con privilegios sudo.
  • El cortafuegos sin complicaciones (UFW) está activado y en ejecución.
  • Asegúrate de que todo está actualizado.
    $ sudo apt update && sudo apt upgrade
    
  • Instala los paquetes de utilidades básicas. Puede que algunos ya estén instalados.
    $ sudo apt install wget curl nano unzip -y
    

Paso 1 – Configurar el Cortafuegos

Antes de instalar ningún paquete, el primer paso es configurar el cortafuegos para que permita conexiones HTTP y HTTPS.

Comprueba el estado del cortafuegos.

$ sudo ufw status

Deberías ver algo como lo siguiente

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Permitir puertos HTTP y HTTPs para la instancia Nextcloud real.

$ sudo ufw allow http
$ sudo ufw allow https

Abre el puerto 3478 para Nextcloud Talk. Puedes omitirlo si no vas a utilizarlo.

$ sudo ufw allow 3478

Abre los puertos 8080 y 8443 para proporcionar soporte HTTP y HTTPS para la interfaz AIO.

$ sudo ufw allow 8080/tcp
$ sudo ufw allow 8443/tcp

Comprueba de nuevo el estado para confirmarlo.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
8080/tcp                   ALLOW       Anywhere
8443/tcp                   ALLOW       Anywhere
3478                       ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)
8080/tcp (v6)              ALLOW       Anywhere (v6)
8443/tcp (v6)              ALLOW       Anywhere (v6)
3478 (v6)                  ALLOW       Anywhere (v6)

Paso 2 – Configurar el nombre de host y la zona horaria

Antes de seguir adelante, necesitamos configurar el nombre de host adecuado para el sistema.

Abre el archivo hostname para editarlo.

$ sudo nano /etc/hostname

Cambia el valor por tu nombre de dominio completo.

nextcloud.example.com

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.

Abre el archivo host para editarlo.

$ sudo nano /etc/hosts

Añade la siguiente línea después de la línea 127.0.0.1 localhost. Sustituye las líneas existentes con la IP 127.0.1.1 ubuntu-master si están presentes por lo siguiente.

<YourServerIP> nextcloud.example.com nextcloud	

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.

Comprueba la zona horaria actual del servidor.

$ timedatectl
Local time: Sun 2022-10-09 13:21:01 UTC
           Universal time: Sun 2022-10-09 13:21:01 UTC
                 RTC time: Sun 2022-10-09 13:21:01
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: no

Puedes ver la lista de zonas horarias disponibles utilizando el siguiente comando.

$ timedatectl list-timezones
...
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
...

Si no coincide con tus preferencias, cámbiala utilizando el siguiente comando.

$ sudo timedatectl set-timezone America/Chicago

Reinicia el servidor.

$ sudo reboot

Ahora puedes iniciar sesión en el servidor como se indica a continuación.

$ ssh [email protected]

Paso 3 – Instala Docker

Añade la clave GPG oficial de Docker.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg

Ejecuta el siguiente comando para añadir el repositorio de Docker.

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Actualiza el sistema para incluir el repositorio de Docker.

$ sudo apt update

Instala Docker y el plugin Docker compose.

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Este tutorial utilizará el plugin Docker Compose v2 en lugar del antiguo binario heredado. Por lo tanto, el comando para ejecutarlo ha cambiado de docker-compose a docker composey esto se refleja aquí.

Docker se ejecuta con privilegios elevados, por lo que tendrás que utilizar sudo con frecuencia para ejecutar comandos. La mejor opción es añadir tu cuenta de usuario Linux al grupo de usuarios docker.

$ sudo usermod -aG docker ${USER}

La variable ${USER} recoge la cuenta del sistema actualmente conectada. Si no has iniciado sesión con el usuario al que quieres dar privilegios, sustituye ${USER} por el nombre de usuario.

Para solicitar la pertenencia al nuevo grupo, sal del servidor y vuelve a entrar, o utiliza el siguiente comando. Se te pedirá la contraseña del usuario.

$ su - ${USER}

Paso 4 – Configurar el archivo Docker Compose

Crea un directorio para el archivo Docker Compose.

$ mkdir ~/nextcloud-aio

Cambia al directorio.

$ cd ~/nextcloud-aio

Crea y abre el archivo docker compose para editarlo.

$ nano docker-compose.yml

Pega en él el siguiente código.

version: "3.8"

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer # This line is not allowed to be changed

services:
  nextcloud:
    image: nextcloud/all-in-one:latest # Must be changed to 'nextcloud/all-in-one:latest-arm64' when used with an arm64 CPU
    restart: always
    container_name: nextcloud-aio-mastercontainer
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - 80:80
      - 8080:8080
      - 8443:8443

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.

Paso 5 – Ejecuta Nextcloud AIO

Crea e inicia el contenedor Docker.

$ docker compose up -d

Comprueba el estado del contenedor.

$ docker compose ps

Verás la siguiente salida.

NAME                            COMMAND                  SERVICE             STATUS              PORTS
nextcloud-aio-mastercontainer   "start.sh /usr/bin/s…"   nextcloud           running (healthy)   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp

También puedes utilizar el comando docker ps para obtener un estado más detallado. Para comprobar los registros del contenedor, utiliza el comando docker logs <container name>.

Paso 6 – Accede a Nextcloud AIO

Abre la URL https://nextcloud.example.com:8443y obtendrás la siguiente pantalla.

Página de configuración de Nextcloud AIO

Copia la contraseña que aparece en la pantalla y haz clic en el botón Abrir acceso a Nextcloud AIO.

Página de inicio de sesión de Nextcloud AIO

Introduce la contraseña y haz clic en el botón Iniciar sesión para continuar.

Panel Nextcloud AIO

Introduce el nombre de tu dominio nextcloud.example.com en la sección Nueva Instancia A IO y haz clic en el botón Enviar para iniciar la instalación de Nextcloud.

Nextcloud AIO Configuración de una nueva instancia

Te llevará a la siguiente página.

Página de contenedores Nextcloud AIO

Aquí puedes cambiar la zona horaria del servidor e iniciar una nueva instancia de Nextcloud. Selecciona los complementos que quieras instalar y haz clic en el botón Guardar cambios para guardar las opciones.

Instalación de Nextcloud Addons

Haz clic en los contenedores de Inicio para iniciar Nextcloud y sus contenedores de complementos. Este proceso generará automáticamente un certificado SSL utilizando Let’s Encrypt para el dominio que hayas elegido y ejecutará el contenedor del servidor Apache para exponer la instancia Nextcloud al público.

Este proceso puede tardar varios minutos dependiendo del número de complementos que estés instalando. Al cabo de un rato, podrás ver el progreso de los contenedores en la página.

Contenedores insalubres Nextcloud

El color amarillo delante de los contenedores puede significar que se están iniciando o que no funcionan correctamente. Pulsa el botón Recargar para volver a comprobarlo. Una vez que todos los contenedores se hayan iniciado correctamente, se te proporcionará el nombre de usuario y la contraseña de tu instancia Nextcloud.

Instalación correcta de Nextcloud

Pulsa el botón Abre tu Nextcloud para iniciar tu instalación Nextcloud. También puedes acceder directamente a través de la URL https://nextcloud.example.com. Accederás a la siguiente pantalla de inicio de sesión.

Pantalla de inicio de sesión de Nextcloud

Introduce tu nombre de usuario admin y la contraseña que obtuviste en la página anterior y pulsa Iniciar sesión para iniciar el panel de control de Nextcloud.

Panel Nextcloud

A partir de aquí, puedes empezar a utilizar Nextcloud.

Paso 7 – Copia de seguridad y restauración de Nextcloud

Antes de hacer una copia de seguridad, tienes que detener el contenedor Apache porque bloquea la instancia Nextcloud AIO. Necesitarás hacer esto para realizar cualquier operación en la interfaz AIO. Ejecuta el siguiente comando para detener el contenedor apache.

$ docker stop nextcloud-aio-apache

Accede a la interfaz AIO visitando https://nextcloud.example.com:8443.

Crear copia de seguridad de Nextcloud

Introduce el directorio para las copias de seguridad y pulsa el botón Enviar para crear una copia de seguridad. Aparecerá la siguiente pantalla.

Detalles de Nextcloud Backup

Nextcloud AIO creará una copia de seguridad encriptada y te dará una contraseña para la misma. La misma contraseña se utilizará para todas las copias de seguridad de la carpeta. La contraseña será necesaria para restaurar la instancia. Haz clic en Crear copia de seguridad para empezar a crearla. El proceso te pedirá confirmación. Pulsa para iniciar el proceso. Esto detendrá todos los contenedores en ejecución e iniciará el contenedor de copia de seguridad.

Contenedor en ejecución Nextcloud AIO Backup

Pulsa el botón Recargar para actualizar la página. Pulsa la flecha pequeña para mostrar todas las opciones de copia de seguridad y restauración.

Opciones de copia de seguridad y restauración de Nextcloud AIO

Aquí puedes restaurar una copia de seguridad existente, añadir directorios adicionales de los que realizar copias de seguridad y establecer una hora para que la tarea cron realice copias de seguridad y actualizaciones programadas.

Restaurar Nextcloud

Para una nueva instalación, puedes hacer una copia de seguridad utilizando la copia de seguridad existente.

Si la copia de seguridad está almacenada en el directorio /mnt/backup/borg entonces especifica la ruta de la copia de seguridad como /mnt/backup. La copia de seguridad real debe estar siempre en un subdirectorio. Introduce la ruta y la contraseña de tu copia de seguridad.

Ruta y contraseña de la copia de seguridad de Nextcloud AIO

Pulsa el botón Enviar para proceder a la restauración.

Ruta y contraseña de la copia de seguridad de prueba de Nextcloud AIO

Pulsa el botón Probar ruta y contraseña para verificar la ruta y la contraseña de la copia de seguridad antes de iniciar el proceso de restauración.

Copia de seguridad de Nextcloud AIO Restore

Aquí puedes comprobar la integridad del archivo de copia de seguridad. Elige la copia de seguridad correcta en el menú desplegable y haz clic en Restaurar el archivo de copia de seguridad seleccionado para iniciar el proceso.

Progreso del contenedor de copia de seguridad Nextcloud AIO

Puedes ver el contenedor de copia de seguridad ejecutándose en la página siguiente. Espera algún tiempo y pulsa el botón Recargar para ver si se ha completado el proceso. Aparecerá la siguiente pantalla confirmando que la restauración se ha realizado correctamente.

Restauración exitosa de Nextcloud AIO

Preparar la copia de seguridad para subidas remotas

En caso de que quieras sincronizar o subir copias de seguridad a una ubicación remota, tendrás que preparar el archivo de copia de seguridad.

Instala la herramienta BorgBackup.

$ sudo apt install borgbackup

Monta los archivos de copia de seguridad en la carpeta /tmp/borg.

$ sudo mkdir -p /tmp/borg && sudo borg mount "/mnt/backup/borg" /tmp/borg

Se te pedirá la contraseña de la copia de seguridad.

Enter passphrase for key /mnt/backup/borg:

Introduce la contraseña para montar el archivo. Comprueba los archivos montados en la carpeta.

$ sudo ls /tmp/borg -al
total 4
drwxr-xr-x  1 root root    0 Oct 10 19:13 .
drwxrwxrwt 13 root root 4096 Oct 10 19:13 ..
drwxr-xr-x  1 root root    0 Oct  9 23:15 20221010_041554-nextcloud-aio

Ahora puedes copiar o sincronizar el archivo 20221010_041554-nextcloud-aio en una ubicación remota.

Desmonta los archivos.

$ sudo umount /tmp/borg

Si quieres eliminar un archivo de copia de seguridad existente, puedes hacerlo utilizando el siguiente comando.

$ sudo borg delete --stats --progress "/mnt/backup/borg::20221010_041554-nextcloud-aio"

Paso 8 – Actualizar Nextcloud AIO / Nextcloud

Nextcloud AIO ejecuta un cronjob para comprobar si hay actualizaciones de Nextcloud AIO y de todos los contenedores restantes cada día.

Actualiza los contenedores Nextcloud

La interfaz de Nextcloud AIO mostrará cualquier actualización de cualquiera de los contenedores de la página. Para actualizar cualquiera de los contenedores, pulsa el botón Detener contenedores para detener todos los contenedores y luego inícialos de nuevo para realizar la actualización.

Asegúrate de hacer una copia de seguridad de los datos antes de iniciar los contenedores.

Actualizar el Contenedor Maestro AIO Nextcloud

Si se actualiza el Contenedor Maestro AIO, aparecerá un mensaje en la interfaz sobre la actualización. Haz clic en el botón Actualizar para realizar la actualización.

Conclusión

Con esto concluye nuestro tutorial sobre la instalación de Nextcloud AIO en un servidor Ubuntu 22.04. Si tienes alguna pregunta, publícala en los comentarios a continuación.

También te podría gustar...