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
}
}
}
TecnoBoxiDRAC.eagle.local {
tls internal
reverse_proxy 192.168.254.30:443 {
transport http {
tls_insecure_skip_verify
}
}
}
nextcloud.eagleporjects.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: