Skip to main content

Configurazione Proxmox

In ProxmoxPVE saràsono configurataconfigurate due VMs, una VMcon filewall e Caddy e l'altra con Docker.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

/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=caddy192.168.254.1
      - OVERWRITEPROTOCOL=https

  caddy:
    image: caddy:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    depends_on:
      - nextcloud

volumes:
  db_data:
  nextcloud_config:
  caddy_data:
  caddy_config:

Caddyfile:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.eagleprojects.it {
    reverse_proxy nextcloud:80
}