Diferencia entre revisiones de «Nextcloud AIO»

De Wiki Castanedo.es
Ir a la navegación Ir a la búsqueda
(Página creada con «== Instalación Nextcloud AIO en Docker == Instalación de [https://hub.docker.com/r/nextcloud/all-in-one nextcloud/all-in-one] en Docker. Vamos a usar la imagen oficial de [https://github.com/nextcloud/all-in-one Nextcloud AIO]. == Requisitos == Para poder realizar esta configuración se necesita: * Servidor GNU Linux (ver Securizar Ubuntu Server) ** Cortafuegos FirewallD (UFW tiene problemas con Docker) * Docker Engine (ver Docker Engine) ** Módulo: Docker…»)
 
Sin resumen de edición
 
(No se muestran 6 ediciones intermedias del mismo usuario)
Línea 37: Línea 37:
Vamos a usar la imagen que es la latest a día de hoy (20260409_094910). Contiene Nexcloud 33.
Vamos a usar la imagen que es la latest a día de hoy (20260409_094910). Contiene Nexcloud 33.
<syntaxhighlight lang="Bash">
<syntaxhighlight lang="Bash">
 
docker pull ghcr.io/nextcloud-releases/all-in-one:latest
</syntaxhighlight>
</syntaxhighlight>


Nota: vamos a usar latest sin fijar versión exacta para tener actualizaciones automáticas. En caso de no querer esto fijar versión de repositorio [https://github.com/nextcloud-releases/all-in-one/pkgs/container/all-in-one/versions?filters%5Bversion_type%5D=tagged estable].
Nota: vamos a usar latest sin fijar versión exacta para tener actualizaciones automáticas. En caso de no querer esto fijar versión de repositorio [https://github.com/nextcloud-releases/all-in-one/pkgs/container/all-in-one/versions?filters%5Bversion_type%5D=tagged estable].
=== Crear volumen para backup ===
Para guardar los backups de Borg Backup vamos a crear un volumen.
<syntaxhighlight lang="Bash">
docker volume create \
--driver local \
--name nextcloud_aio_backupdir \
-o device="//mnt/host/c/Users/<user>/Documents/Docker/nextcloud-aio/backups" \
-o type="none" \
-o o="bind"
</syntaxhighlight>


=== Ejecutar contenedor en Docker Desktop (DEV) ===
=== Ejecutar contenedor en Docker Desktop (DEV) ===
<syntaxhighlight lang="Bash">
<syntaxhighlight lang="Bash">
docker run -d \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart unless-stopped \
--publish 127.0.0.1:8443:8080 \
--env APACHE_PORT=8081 \
--env APACHE_IP_BINDING=0.0.0.0 \
--env APACHE_ADDITIONAL_NETWORK="" \
--env SKIP_DOMAIN_VALIDATION=true \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume //var/run/docker.sock:/var/run/docker.sock:ro \
ghcr.io/nextcloud-releases/all-in-one:latest
</syntaxhighlight>


Nota 1: no se puede cambiar las siguientes configuraciones
<syntaxhighlight lang="Bash">
--name nextcloud-aio-mastercontainer \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
</syntaxhighlight>
</syntaxhighlight>
Nota 2: para cambiar el puerto de la consola administrativa "--publish 127.0.0.1:8081:8080".
Nota 3: para cambiar el puerto de acceso a Nextcloud "--env APACHE_PORT=9081 \".
Nota 4: para entornos locales de prueba hay que indicar "--env SKIP_DOMAIN_VALIDATION=true". En PRO no nos hará falta.


=== Pruebas ===
=== Pruebas ===
Accedemos con un navegador web [https://localhost:9443/ https://localhost:9443/].
* Acceso a la consola administrativa: [https://localhost:8443/ https://localhost:8443/].
 
* Acceso a la Nextcloud: [http://localhost:8081/ http://localhost:8081/]


== Entorno de PRO ==
== Entorno de PRO ==
Línea 135: Línea 172:
* [https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md]
* [https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md]
* [https://github.com/nextcloud-releases/all-in-one/pkgs/container/all-in-one/versions?filters%5Bversion_type%5D=tagged https://github.com/nextcloud-releases/all-in-one/pkgs/container/all-in-one/versions?filters%5Bversion_type%5D=tagged]
* [https://github.com/nextcloud-releases/all-in-one/pkgs/container/all-in-one/versions?filters%5Bversion_type%5D=tagged https://github.com/nextcloud-releases/all-in-one/pkgs/container/all-in-one/versions?filters%5Bversion_type%5D=tagged]
* [https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance]


[[Categoría:Notas]]
[[Categoría:Notas]]

Revisión actual - 20:05 19 abr 2026

Instalación Nextcloud AIO en Docker

Instalación de nextcloud/all-in-one en Docker. Vamos a usar la imagen oficial de Nextcloud AIO.

Requisitos

Para poder realizar esta configuración se necesita:

  • Servidor GNU Linux (ver Securizar Ubuntu Server)
    • Cortafuegos FirewallD (UFW tiene problemas con Docker)
  • Docker Engine (ver Docker Engine)
    • Módulo: Docker Compose (para PRO)
    • NextCloud AIO sólo soporta Docker (para podman hay que generar ficheros compose manualmente)
  • Nginx (ver LEMP)
    • Usado como proxy inverso.

¿Qué contiene Nextcloud AIO?

Nextcloud All In One (AIO) es la forma más sencilla de instalar Nextcloud de forma que ya venga con todo el middleware instalado y configurado. Contiene los siguientes componentes:

  • Nextcloud
  • Base ded datos: PostgreSQL
    • Nextcloud soporta otras bases de datos, pero no en AIO.
  • Servidor web: Apache HTTP Server
    • Podría usarse directamente para conectar, pero para poder tener más servicios en el mismo servidor usaremos Nginx como proxy inverso con Virtual Hosts para cada aplicación.
  • Servicios:
    • Nextcloud Files (Client Push)
    • Cachés Redis & APCU
    • Nextcloud Office (opcional)
    • Nextcloud Talk y servidor TURN para Talk (opcional)
    • Nextcloud Talk servidor de grabación (opcional)
    • BorgBackup para backups (opcional)
    • Antivirus ClamAV (opcional)
    • Más

Entorno de DEV

Como entorno de DEV se va a usar Docker Desktop.

Descargar imagen

Vamos a usar la imagen que es la latest a día de hoy (20260409_094910). Contiene Nexcloud 33.

docker pull ghcr.io/nextcloud-releases/all-in-one:latest

Nota: vamos a usar latest sin fijar versión exacta para tener actualizaciones automáticas. En caso de no querer esto fijar versión de repositorio estable.

Crear volumen para backup

Para guardar los backups de Borg Backup vamos a crear un volumen.

docker volume create \
--driver local \
--name nextcloud_aio_backupdir \
-o device="//mnt/host/c/Users/<user>/Documents/Docker/nextcloud-aio/backups" \
-o type="none" \
-o o="bind"

Ejecutar contenedor en Docker Desktop (DEV)

docker run -d \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart unless-stopped \
--publish 127.0.0.1:8443:8080 \
--env APACHE_PORT=8081 \
--env APACHE_IP_BINDING=0.0.0.0 \
--env APACHE_ADDITIONAL_NETWORK="" \
--env SKIP_DOMAIN_VALIDATION=true \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume //var/run/docker.sock:/var/run/docker.sock:ro \
ghcr.io/nextcloud-releases/all-in-one:latest

Nota 1: no se puede cambiar las siguientes configuraciones

--name nextcloud-aio-mastercontainer \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \

Nota 2: para cambiar el puerto de la consola administrativa "--publish 127.0.0.1:8081:8080".

Nota 3: para cambiar el puerto de acceso a Nextcloud "--env APACHE_PORT=9081 \".

Nota 4: para entornos locales de prueba hay que indicar "--env SKIP_DOMAIN_VALIDATION=true". En PRO no nos hará falta.

Pruebas

Entorno de PRO

En el entorno de PRO se va a desplegar transformando la configuración de Docker Desktop en fichero YAML de Docker Composer.

Configurar Virtual Host para Keycloak

  • Añadir Virtual Host:
sudo -i
vi /etc/nginx/sites-available/nube.culturetas.net
  • Crear carpeta para VirtualHost:
mkdir /var/www/nube.culturetas.net
  • Activar Virtual Host:
ln -s /etc/nginx/sites-available/nube.culturetas.net /etc/nginx/sites-enabled/nube.culturetas.net
systemctl reload nginx

Generar certificados Let's Encrypt

certbot --nginx

Crear carpetas para Keycloak

mkdir -p /opt/nextcloud-aio/data

Descargar imagen

Vamos a usar la imagen que es la latest a día de hoy (20260409_094910). Contiene Nexcloud 33.

Nota: vamos a usar latest sin fijar versión exacta para tener actualizaciones automáticas. En caso de no querer esto fijar versión de repositorio estable.

Generar fichero Compose YAML

vi /opt/nextcloud-aio/compose.yaml
chmod 640 /opt/nextcloud-aio/compose.yaml

Arrancar OpenLDAP (manual)

cd /opt/nextcloud-aio
docker compose up -d

Parar OpenLDAP (manual)

cd /opt/nextcloud-aio
docker compose down

Arrancar OpenLDAP (con SystemD)

  • Crear fichero SystemD
vi /etc/systemd/system/nextcloud-aio.service
[Unit]
Description=Nextcloud AIO(Docker Compose)
After=docker.service network-online.target
Requires=docker.service
Wants=network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/nextcloud-aio
ExecStart=/usr/bin/docker compose up --detach --remove-orphans --quiet-pull
ExecStop=/usr/bin/docker compose down --remove-orphans --volumes --timeout 30
TimeoutStartSec=180
TimeoutStopSec=120
Restart=on-failure
RestartSec=7

[Install]
WantedBy=multi-user.target
  • Arrancar y habilitar
systemctl daemon-reload
systemctl start nextcloud-aio
systemctl enable nextcloud-aio

Referencias