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
nextcloud
las siguientes carpetasconfig
custom_apps
data
db
html
redis
themes
- Descargar el fichero
my.cnf
y copiarlo dentro de la carpetadb
. - Concretar permisos de lectura y escritura en la carpeta
nextcloud
que se creó. Para ello:- Hacer clic derecho en ella desde
File Station
e 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_started
Donde:
- En la línea
user: 1026:100
1026 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/Madrid
se pondrá la zona horaria de donde estemos. - En las líneas
MYSQL_PASSWORD=pepedato
,pepedato
es un ejemplo de password. - En las líneas
- - 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
nextcloud.yourname.synology.me
es un ejemplo de nuestra dirección URL para manejar NextCloud.192.168.1.18
es 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 correctamente
en la parte superior derecha de la pantalla.