Skip to main content

Configurazione Proxmox

In PVE sono configurate due VMs, una con Firewallo e Caddy e l'altra con Nextcloud dockerizzato.

La VM con Firewallo avrà l'IP pubblico ed attraverso Caddy smisterà il traffico:

Caddyfile:

TecnoBox.eagle.local {
        tls internal
        reverse_proxy 192.168.254.10:8006 {
                transport http {
                        tls_insecure_skip_verify
                }
        }
}

TecnoBackup.eagle.local {
        tls internal
        reverse_proxy 192.168.254.20:8007 {
                transport http {
                        tls_insecure_skip_verify
                }
        }
}

TecnoBoxiDRAC.eagle.local {
        tls internal
        reverse_proxy 192.168.254.30:443 {
                transport http {
                        tls_insecure_skip_verify
                }
        }
}

TecnoBackupiDRAC.eagle.local {
        tls internal
        reverse_proxy 192.168.254.31:443 {
                transport http {
                        tls_insecure_skip_verify
                }
        }
}


XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.eagleprojects.it {
        reverse_proxy 192.168.254.50:80
}

La VM con Nextcloud dockerizzato

Per installare Docker in Debian 13:

apt update && apt install -y apt-transport-https ca-certificates curl gnupg lsb-release && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin && usermod -aG docker $USER && newgrp docker

La VM ha due dischi virtuali, uno per il sistema operativo (/dev/vda) e l'altro per i DATI di nextcloud (/dev/vdb).

Il disco per i dati è stato in xfs:

mkfs.xfs /dev/vdb

Ne vado ad indentificare l'UUID:

lsblk -f

E montato nella cartella /nextcloud/DATI:

mrdir -p /nextcloud/DATI
echo "UUID=XXXXXXX-XXX-XXX-XXXX-XXXXXXXXXXXX /nextcloud/DATI xfs defaults 0 0" >> /etc/fstab
mount -a
systemctl daemon-reload

Per aumentare la dimensione del disco a seguito di un upgrade dello storage (piccolo o grande) si deve prima aumentare la dimensione del disco virtuale della VM in PVE e poi aumentare la dimensione nella VM attraverso il comando:

 xfs_growfs /nextcloud/DATI

/nextcloud/docker-compose.yml:

services:
  mariadb:
    image: mariadb:11.8
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - db_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=16D05JICkyx%2!p%XXsIWR@UFvYX@W
      - MYSQL_PASSWORD=YqpE5Jsv559wTuei&fuB9^EdV6l%Jy
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  nextcloud:
    image: nextcloud:latest
    restart: always
    ports:
      - "80:80"
    depends_on:
      - mariadb
    volumes:
      - /nextcloud/DATI:/var/www/html/data		# I tuoi file
      - nextcloud_config:/var/www/html    		# La configurazione
    environment:
      - MYSQL_PASSWORD=YqpE5Jsv559wTuei&fuB9^EdV6l%Jy
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=mariadb
      # IMPORTANTE: Permette a Nextcloud di fidarsi del proxy Caddy
      # Se il container Caddy è nella stessa rete, l'IP è interno.
      - TRUSTED_PROXIES=192.168.254.1
      - OVERWRITEPROTOCOL=https

volumes:
  db_data:
  nextcloud_config:
  caddy_data:
  caddy_config: