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:
- Nextcloud
- 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.
- 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.
- Imaginary – para procesamiento y conversión de imágenes de alto nivel.
- ClamAV – para protección contra virus y malware.
- Borgbackup – proporciona una función integrada de copia de seguridad y restauración.
- 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 compose
y 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:8443
y obtendrás la siguiente pantalla.
Copia la contraseña que aparece en la pantalla y haz clic en el botón Abrir acceso a Nextcloud AIO.
Introduce la contraseña y haz clic en el botón Iniciar sesión para continuar.
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.
Te llevará a la siguiente página.
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.
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.
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.
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.
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.
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
.
Introduce el directorio para las copias de seguridad y pulsa el botón Enviar para crear una copia de seguridad. Aparecerá la siguiente pantalla.
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 Sí para iniciar el proceso. Esto detendrá todos los contenedores en ejecución e iniciará el contenedor de copia de seguridad.
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.
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.
Pulsa el botón Enviar para proceder a la restauración.
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.
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.
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.
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.