En esta lección se proponen soluciones detalladas de los ejercicios (1) de Nextcloud. Se recomienda intentar realizarlos primero sin recurrir a estas soluciones.
sudo docker run -d --name=nc-sqlite -p 8080:80 nextcloud
ip addr | grep 192.168
inet 192.168.1.5/24 brd 192.168.1.255 scope global dynamic enp0s3
sudo docker stop nc-sqlite
sudo docker rm nc-sqlite
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
sudo docker stop nc-17-sqlite
sudo docker rm nc-17-sqlite
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
sudo docker network create nc-network
sudo docker run -d --name=nc-mariadb -e ALLOW_EMPTY_PASSWORD=yes --net=nc-network bitnami/mariadb
sudo docker run -d --name=nc-pma -e DATABASE_HOST=nc-mariadb -p 8082:80 --net=nc-network bitnami/phpmyadmin
sudo docker run -d --name=nextcloud -p 80:80 -p 443:443 --net=nc-network nextcloud
Si va a utilizar MariaDB:
sudo docker network inspect nc-network
Docker muestra la información de todos los contenedores pertenecientes a la red en formato JSON. La dirección debe ser del tipo 172.XXX.YYY.ZZZ
...
"Containers": {
...
"b9ea0f79990ae629df9ca434ecbd3db972c76e008d98f9c51359ea2fcf3f122f": {
"Name": "nc-mariadb",
"EndpointID": "5752daa968e19f45b22dede29dffd9a0bbe8b986a2eac28defa9a15320a66dfe"
"MacAddress": "02:42:ac:13:00:03",
"IPv4Address": "172.18.0.2/16",
"IPvAddress": ""
...
},
...
sudo docker exec -it nextcloud /bin/bash
apt update
apt install dialog apt-utils
apt install ssl-cert
make-ssl-cert generate-default-snakeoil --force-overwrite
a2enmod ssl
a2ensite default-ssl
service apache2 restart
sudo docker restart nextcloud
Para configurar el servidor Apache del contenedor de manera que fuerce conexiones seguras:
sudo docker exec -it nextcloud /bin/bash
find / -name apache2.conf
exit
sudo docker cp nextcloud:/etc/apache2/apache2.conf /tmp/apache2.conf
sudo cp /tmp/apache2.conf /tmp/apache2.conf.original
sudo nano /tmp/apache2.conf
<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.
sudo docker cp /tmp/apache2.conf nextcloud:/etc/apache2/apache2.conf
sudo docker exec -it nextcloud /bin/bash
service apache2 restart
sudo docker restart nextcloud
Para cambiar la IP de la máquina virtual:
ip addr
route -n
sudo vi /etc/network/interfaces
# 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.
Para cambiar la IP de la máquina virtual:
sudo docker exec -u www-data -it nextcloud /bin/bash
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":