# Nextcloud

# Instalar Nextcloud

## Requisitos

- [Docker Engine](https://wiki.pablomp.es/books/docker-engine/page/instalar-docker-engine "Instalar Docker Engine")
- [Nginx proxy manager](https://wiki.pablomp.es/books/nginx-proxy-manager/page/instalar-nginx-proxy-manager "Instalar nginx proxy manager")
- Un dominio/subdominio

## Instalación

Crear las carpetas `mkdir -p docker/nextcloud`.

Crear el archivo `docker-compose.yml`.

```bash
volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer

services:
  nextcloud:
    image: nextcloud/all-in-one:latest
    restart: unless-stopped
    container_name: nextcloud-aio-mastercontainer
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - 8080:8080 # change the port on the left side if it's already in use on your host system.
    environment:
      - APACHE_PORT=11000 # change this port number if 11000 is already in use on your host system.
      - APACHE_DISABLE_REWRITE_IP=1
      - NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.dominio.com 127.0.0.1 # Your domain name + proxy host IP
      - TRUSTED_PROXIES=127.0.0.1 # proxy host IP
      - NEXTCLOUD_DATADIR=/mnt/big_storage/nextcloud
```

Una vez creado ejecutar `docker-compose up -d`.

## Configurar Nginx proxy manager

Acceder a la pagina de Nginx proxy manager y configurar el proxy.

[![image.png](https://wiki.pablomp.es/uploads/images/gallery/2024-08/scaled-1680-/6iWimage.png)](https://wiki.pablomp.es/uploads/images/gallery/2024-08/6iWimage.png)

[![image.png](https://wiki.pablomp.es/uploads/images/gallery/2024-08/scaled-1680-/bftimage.png)](https://wiki.pablomp.es/uploads/images/gallery/2024-08/bftimage.png)

## Configurar Nextcloud AIO

Acceder `direccion-IP:8080`

Poner el dominio que vamos a usar, configurar las aplicaciones que queremos y la hora.

Esperar a que se instale.

Una vez este todo instalado accedemos con el usuario y contraseña que nos ha dado.

[![image.png](https://wiki.pablomp.es/uploads/images/gallery/2024-08/scaled-1680-/R9Yimage.png)](https://wiki.pablomp.es/uploads/images/gallery/2024-08/R9Yimage.png)

En la zona de errores tendremos un error que indica que no tenemos establecida una región de teléfono predeterminada, la establecemos con el siguiente comando:

`sudo docker exec --user www-data nextcloud-aio-nextcloud php occ config:system:set default_phone_region --value="ES"`

### Configurar correo electrónico

Crear una contraseña de aplicación con una cuenta de Gmail.

[![image.png](https://wiki.pablomp.es/uploads/images/gallery/2024-08/scaled-1680-/BJ5image.png)](https://wiki.pablomp.es/uploads/images/gallery/2024-08/BJ5image.png)

# Desinstalar Nextcloud

1. Detener todos los contenedores si se ejecutan desde la interfaz AIO.
2. Detener el contenedor maestro con `sudo docker stop nextcloud-aio-mastercontainer`.
3. Si el contenedor domaincheck aún se está ejecutando, deténgalo con `sudo docker stop nextcloud-aio-domaincheck`.
4. Comprobar que ya no se ejecutan contenedores AIO ejecutando `sudo docker ps --format {{.Names}}`. Si no hay contenedores `nextcloud-aio` , continuar con los pasos a continuación. Si hay algunos, detenerlos con `sudo docker stop <container_name>` hasta que ya no aparezca nada en la lista.
5. Comprobar qué contenedores están detenidos: `sudo docker ps --filter "status=exited"`
6. Retirar todos estos contenedores detenidos con `sudo docker container prune`
7. Eliminar la red docker con `sudo docker network rm nextcloud-aio`
8. Comprobar qué volúmenes están colgando con `sudo docker volume ls --filter "dangling=true"`
9. Retirar todos estos volúmenes colgantes: `sudo docker volume prune --filter all=1`.
10. Si ha configurado `NEXTCLOUD_DATADIR` a una ruta en su host en lugar del volumen predeterminado, también debe limpiarla. (Por ejemplo, simplemente borrando el directorio).
11. Asegurar de que no quede ningún volumen con `sudo docker volume ls --format {{.Name}}`. Si no se enumeran los volúmenes `nextcloud-aio` , puede continuar con los pasos a continuación. Si hay algunos, deberá detenerlos con `sudo docker volume rm <volume_name>` hasta que ya no aparezca nadie en la lista.
12. Opcional: Puede eliminar todas las imágenes de Docker con `sudo docker image prune -a`.
13. ¡Y ya está! ¡Ahora siéntase libre de comenzar de nuevo con el comando docker compose up -d!