Nextcloud - Ejercicios (1) - Soluciones

En esta lección se proponen soluciones detalladas de los ejercicios (1) de Nextcloud. Se recomienda intentar realizarlos primero sin recurrir a estas soluciones.

Nextcloud (1) 1 - Nextcloud con base de datos SQLite

  1. Si se va a utilizar SQLite, es suficiente con crear un único contenedor:
    sudo docker run -d --name=nc-sqlite -p 8080:80 nextcloud
  2. Obtenga la dirección IP de la máquina virtual:
    ip addr | grep 192.168
        inet 192.168.1.5/24 brd 192.168.1.255 scope global dynamic enp0s3
  3. Abra la página inicial de Nextcloud y rellene los datos:

    Nextcloud. Instalación

  4. Para cerrar la sesión de Nextcloud, haga clic en el icono de la rueda dentada y elija la opción Cerrar sesión:

    Nextcloud. Instalación

  5. Para eliminar el contenedor, detenga el contenedor y bórrelo:
    sudo docker stop nc-sqlite
    sudo docker rm nc-sqlite
    

Nextcloud (1) 1 - Actualizar Nextcloud con base de datos SQLite

  1. Cree el contenedor:
    sudo docker run -d --name=nc-17-sqlite -p 8081:80 --mount type=volume,source=nc-vol,target=/var/www/html nextcloud:17.0.0
  2. Detenga el contenedor y bórrelo:
    sudo docker stop nc-17-sqlite
    sudo docker rm nc-17-sqlite
    
  3. Cree de nuevo el contenedor:
    sudo docker run -d --name=nc-17-sqlite -p 8081:80 --mount type=volume,source=nc-vol,target=/var/www/html nextcloud:17.0.3

Nextcloud (1) 3 - Nextcloud con base de datos MariaDB

  1. Las instrucciones se encuentran en el repositorio https://github.com/nextcloud/docker.
  2. Si va a utilizar MariaDB, ejecute los comandos siguientes:
    • Cree una red:
      sudo docker network create nc-network
    • Cree el contenedor de MariaDB:
      sudo docker run -d --name=nc-mariadb -e ALLOW_EMPTY_PASSWORD=yes --net=nc-network bitnami/mariadb
    • Cree el contenedor de phpMyAdmin:
      sudo docker run -d --name=nc-pma -e DATABASE_HOST=nc-mariadb -p 8082:80 --net=nc-network bitnami/phpmyadmin
    • Abra en el navegador del host la página http://AAA.BBB.CCC.DDD:8082 (usuario root sin contraseña) y con phpMyAdmin cree un usuario nextcloud, que pueda acceder desde cualquier servidor, con contraseña nextcloud y base de datos única.

      phpMyAdmin. Creación de usuario nextcloud

    • Cree el contenedor de Nextcloud:
      sudo docker run -d --name=nextcloud -p 80:80 -p 443:443 --net=nc-network nextcloud

Nextcloud (1) 4 - Completar instalación

Si va a utilizar MariaDB:

Nextcloud (1) 5 - Habilitar https en el servidor

Nextcloud (1) 6 - Acceder siempre mediante https

Para configurar el servidor Apache del contenedor de manera que fuerce conexiones seguras:

  1. Entre en la shell del contenedor de Nextcloud:
    sudo docker exec -it nextcloud /bin/bash
  2. Busque el directorio en el que se encuentra el fichero apache2.conf:
    find / -name apache2.conf
  3. Salga de la shell del contenedor de Nextcloud:
    exit
  4. Copie el fichero apache2.conf del contenedor al anfitrión:
    sudo docker cp nextcloud:/etc/apache2/apache2.conf /tmp/apache2.conf
  5. Haga una copia de seguridad del fichero original:
    sudo cp /tmp/apache2.conf /tmp/apache2.conf.original
  6. Edite el fichero de configuración:
    sudo nano /tmp/apache2.conf
  7. Añada en el fichero de configuración una directiva VirtualHost que redirija las peticiones http a https, en la que AAA.BBB.CCC.DDD es la IP de la máquina virtual:
    <VirtualHost *:80>
      Servername AAA.BBB.CCC.DDD
      Redirect permanent / https://AAA.BBB.CCC.DDD/
    </VirtualHost>
    

    Nota: Creo que el valor de Servername no es importante, pero debe haber Servername.

  8. Guarde el fichero de configuración modificado.
  9. Copie el fichero apache2.conf del anfitrión al contenedor:
    sudo docker cp /tmp/apache2.conf nextcloud:/etc/apache2/apache2.conf
  10. Entre de nuevo en la shell del contenedor de Nextcloud:
    sudo docker exec -it nextcloud /bin/bash
  11. Reinicie el servicio Apache:
    service apache2 restart
  12. Reinicie el contenedor de Nextcloud:
    sudo docker restart nextcloud

Nextcloud (1) 7 - Cambio de IP

Para cambiar la IP de la máquina virtual:

  1. Consulte la dirección IP de la máquina virtual:
    ip addr
  2. Consulte la dirección IP de la puerta de enlace (pasarela, gateway):
    route -n
  3. Edite el archivo /etc/network/interfaces:
    sudo vi /etc/network/interfaces
  4. Establezca un IP fija distinta a la anterior. Por ejemplo, cambie la configuración de IP de dinámica ...:
    # The primary network interface
    auto enp0s3
    iface enp0s3 inet dhcp

    ... a fija:

    # The primary network interface
    auto enp0s3
    #iface enp0s3 inet dhcp
    iface enp0s3 inet static
      address 192.168.1.8
      netmask 255.255.255.0
      gateway 192.168.1.1
    dns-nameservers 8.8.8.8

Para modificar el valor de la IP en el archivo apache2.conf, siga los pasos explicados en el ejercicio 5.

Nextcloud (1) 8 - Cambio de contraseña

Para cambiar la IP de la máquina virtual:

  1. Entre en el contenedor como usuario www-data:
    sudo docker exec -u www-data -it nextcloud /bin/bash
  2. En el contenedor, ejecute el comando occ:
    php /var/www/html/occ user:resetpassword admin

Para modificar la Política de contraseñas, elija el menú Configuración > Administración > Seguridad > Política de contraseñas, modifique la longitud mínima y desmarque la casilla "Prohibir contraseñas comunes":

Nextcloud. Instalación