Instalación de NextCloud en un NAS Synology con Docker
4-dic-2023
- Páginas de internet
- Videos
Nextcloud es un conjunto de software cliente-servidor para crear y utilizar servicios de alojamiento de archivos. Nextcloud cambió recientemente su nombre a Nextcloud Hub 6 . Es gratuito y de código abierto, lo que significa que cualquiera puede instalarlo y operarlo en sus propios dispositivos de servidor privados. En esta guía paso a paso, mostraremos cómo instalar Nextcloud Hub 6 en el Synology NAS usando Docker & Portainer.
Premisas. Suponemos que:
- Tenemos instalado Portainer, asegurándonos de tener instalada la última versión.
- Tenemos un certificado comodín de synology.me.
Pasos a seguir
- Ir a
Panel de control>Portal de inicio de sesión> PestañaAvanzado> clic enProxy inverso> clic enCrear. - Aparecerá la ventana de reglas del proxy inverso, debiendo poner:
- Pestaña
General- Nombre del proxy inverso: Nextcloud
- Fuente
- Protocolo: HTTPS
- Hostname: nextcloud.mi_nombre.myds.me
- Puerto: 443
- Marcar
Enable HSTS - Perfil de control de acceso: No configurado
- Destino
- Protocolo: HTTP
- Hostname: localhost
- Puerto: 8082
- Pestaña
Encabezado personalizado- Clic en
Crear> clic en WebSocket > clic enGuardar.
- Panel de control > Red > pestaña
Conectividad> marcarHabilitar HTTP/2> clic enAplicar. - Panel de control > Seguridad > pestaña
Avanzado> marcarHabilitar compresión HTTP> clic enAplicar. - Ir a File Station y abrir la carpeta acoplable de docker. Dentro crear una carpeta llamada
nextcloud. No usar mayúsculas - Crear dentro de esa carpeta
nextcloudlas siguientes carpetasconfigcustom_appsdatadbhtmlredisthemes
- Descargar el fichero
my.cnfy copiarlo dentro de la carpetadb. - Concretar permisos de lectura y escritura en la carpeta
nextcloudque se creó. Para ello:- Hacer clic derecho en ella desde
File Statione ir aPropiedades> PestañaPropiedades - Pestaña
Permisos> clic enOpciones avanzadas> clic enHacer explícitos los permisos heredados - Seleccionar
Todos (Everyone)> pestañaEditar> Marcar todos los permisos de lectura y escritura > clic enFinalizado - A continuación, en la ventana actual marcar
Aplicar a esta carpeta, subcarpetas y archivos> clic enGuardar
- Iniciar sesión en Portainer. En la barra lateral izquierda de Portainer, hacer clic en
Stacks> clic en+ Add stack - En el campo Nombre:
nextcloud - En el editor web copiar y pegar el siguiente código del script:
version: '3.9' services: mariadb: container_name: Nextcloud-DB image: mariadb:jammy security_opt: - no-new-privileges:true user: 1026:100 command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFF volumes: - /volume1/docker/nextcloud/db:/var/lib/mysql:rw - /volume1/docker/nextcloud/db:/etc/mysql/conf.d:rw environment: - MYSQL_ROOT_PASSWORD=rootpass - MYSQL_PASSWORD=pepedato - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - TZ=Europe/Madrid restart: on-failure:5 redis: image: redis container_name: Nextcloud-REDIS hostname: nextcloudredis user: 1026:100 healthcheck: test: ["CMD-SHELL", "redis-cli ping || exit 1"] volumes: - /volume1/docker/nextcloud/redis:/data:rw environment: TZ: Europe/Madrid restart: on-failure:5 nextcloud: container_name: Nextcloud ports: - 8082:80 depends_on: mariadb: condition: service_started redis: condition: service_healthy environment: - REDIS_HOST=nextcloudredis - NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.yourname.synology.me 192.168.1.18 - TRUSTED_PROXIES=nextcloud.yourname.synology.me 192.168.1.18 - OVERWRITEHOST=nextcloud.yourname.synology.me - OVERWRITEPROTOCOL=https - MYSQL_PASSWORD=pepedato - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=mariadb healthcheck: test: curl -f http://localhost:80/ || exit 1 volumes: - /volume1/docker/nextcloud/html:/var/www/html:rw - /volume1/docker/nextcloud/custom_apps:/var/www/html/custom_apps:rw - /volume1/docker/nextcloud/config:/var/www/html/config:rw - /volume1/docker/nextcloud/data:/var/www/html/data:rw - /volume1/docker/nextcloud/themes:/var/www/html/themes:rw image: nextcloud restart: on-failure:5 cron: image: nextcloud:apache container_name: Nextcloud-CRON restart: always volumes: - /volume1/docker/nextcloud/config:/var/www/html/config:rw - /volume1/docker/nextcloud/html:/var/www/html:rw - /volume1/docker/nextcloud/custom_apps:/var/www/html/custom_apps:rw - /volume1/docker/nextcloud/data:/var/www/html/data:rw entrypoint: /cron.sh depends_on: mariadb: condition: service_started redis: condition: service_startedDonde:
- En la línea
user: 1026:1001026 is my personal UID value and 100 is my personal GID value. You have to type in your own values. - En la línea
TZ: Europe/Madridse pondrá la zona horaria de donde estemos. - En las líneas
MYSQL_PASSWORD=pepedato,pepedatoes un ejemplo de password. - En las líneas
- - NEXTCLOUD_TRUSTED_DOMAINS=
nextcloud.yourname.synology.me192.168.1.18 - - TRUSTED_PROXIES=
nextcloud.yourname.synology.me192.168.1.18 - - OVERWRITEHOST=
nextcloud.yourname.synology.me nextcloud.yourname.synology.mees un ejemplo de nuestra dirección URL para manejar NextCloud.192.168.1.18es un ejemplo de la IP local de nuestro NAS, y va separada por un espacio de la dirección URL.
- Nos desplazamos hacia abajo en la página hasta que ver el botón llamado
Implementar la pila, Deploy the stack > Clic en él. El proceso de instalación puede llevar varios minutos, dependerá de la velocidad de la conexión a Internet. Si todo va bien, veremos el mensajeSuccess, Stack implementado correctamenteen la parte superior derecha de la pantalla.