Saltar a contenido

Guía Completa de Despliegue LXC y Docker para Nextcloud AIO en Proxmox

Esta guía detalla el proceso completo para crear un contenedor LXC en Proxmox VE y desplegar Nextcloud All-in-One (AIO) utilizando Docker Compose.


1. Características Recomendadas del LXC

Parámetro Valor Recomendado Descripción / Notas
Arquitectura LXC (Unprivileged / No privilegiado) Recomendado por seguridad
Sistema Operativo Debian 13 (Trixie) Sistema operativo base
Cores CPU 2 Cores - 4 Cores Mínimo 2 cores para un rendimiento fluido
Memoria RAM 4096 MB (4 GB) - 8192 MB (8 GB) Necesario si usas Collabora Office, Talk o ClamAV
Memoria SWAP 2048 MB (2 GB) Margen para procesos de actualización o indexación
Almacenamiento 40 GB+ (SSD / NVMe) Espacio para el SO, contenedores y archivos de Nextcloud
Red / Puertos vmbr0 (80, 443, 8080, 8443) Apertura de puertos requerida para SSL y gestión AIO
Opciones Clave Nesting = 1 Obligatorio para ejecutar Docker y contenedores anidados
FUSE / OverlayFS keyctl = 1 Necesario para la gestión de volumenes Docker dentro del LXC

2. Creación del LXC y Preparación del Entorno

  1. Creación con Helper-Scripts: Puedes desplegar el LXC base ejecutando el script interactivo oficial: 👉 Proxmox VE Helper-Scripts - Debian LXC
  2. Instalación de Docker Engine: Una vez creado el LXC y dentro de su terminal, instala Docker siguiendo la guía oficial: 👉 Tutorial de Instalación de Docker en Debian

4. Montar NFS de los datos en el contenedor

Entraremos al contenedor y crearemos las siguientes carpetas.

mkdir /mnt/data
mkdir /mnt/backup

Luego siguiendo esta guía, mapearemos las carpetas montadas en el host de proxmox a las del contenedor.


5. Despliegue de Nextcloud AIO con Docker Compose

Crea un directorio para el proyecto:

mkdir ./nextcloud-app
cd /nextcloud-app

Crea el archivo docker-compose.yml:

nano docker-compose.yml

Copia y pega la siguiente configuración:

version: '3.8'

services:
  nextcloud-aio-mastercontainer:
    image: nextcloud/all-in-one:latest
    init: true
    container_name: nextcloud-aio-mastercontainer
    restart: always
    ports:
      #- "80:80"
      - "8080:8080"
      - "8443:8443"
    environment:
      - APACHE_PORT=11000
      - APACHE_IP_BINDING=0.0.0.0
      - SKIP_DOMAIN_VALIDATION=true  # OBLIGATORIO para túneles (evita que AIO intente abrir el puerto 443 público)
      - NEXTCLOUD_DATADIR=/mnt/data # Opcional: Ruta personalizada para datos
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer

Para iniciar el contenedor maestro:

docker compose up -d

Configuración inicial:

  1. Accede a https://<IP_DE_TU_LXC>:8080
  2. Obtén la contraseña inicial con: docker logs nextcloud-aio-mastercontainer
  3. Sigue el asistente en pantalla para completar la instalación.