knowledgebase/pages/nextcloud.md
2024-10-18 10:18:58 +02:00

2.9 KiB

  • E' una delle componenti fondamentali dell'#homelab. Si tratta di un'applicazione web che integra al suo interno diversi servizi tra cui
    • Calendario compatibile con CalDAV
    • Contatti compatibile con CardDAV
    • File storage
    • Mail client
    • Kanban
    • Organizzatore di contenuti multimediali
    • ...
  • Permette di gestire gran parte dei propri dati in maniera efficace, sicura e privata.
  • Nell'#homelab il servizio nextcloud è effettivamente attivo sul lato privato dell'infrastruttura
  • Esso consiste principalmente in un docker-compose.yml con il seguente contenuto
    • ## docker-compose.yml
      
      networks:
        cherry:
          driver: bridge
          driver_opts:
            com.docker.network.driver.mtu: 1400
          ipam:
            driver: default
            config:
              - subnet: 172.20.4.0/24
                gateway: 172.20.4.1
      
      services:
        db:
          image: mariadb:10.5
          command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
          restart: always
          volumes:
            - ./db:/var/lib/mysql
          networks:
            - cherry
        redis:
          image: redis:alpine
          restart: always
          networks:
            - cherry
        app:
          image: nextcloud:fpm-alpine
          restart: always
          ports:
            - 9100:9000
          volumes:
            - ${ROOT}:/var/www/html
            - /media/penta/backup/nextcloud:/backup
          environment:
            - PUID=1000
            - PGID=1000
            - TZ=Europe/Rome
            - MYSQL_HOST=db
            - REDIS_HOST=redis
            - OVERWRITEHOST=housecloud.andreafazzi.eu
            - OVERWRITEPROTOCOL=https
            - DEFAULT_LANGUAGE=it
          depends_on:
            - db
            - redis
          labels:
            - "com.centurylinklabs.watchtower.enable=true"
          networks:
            - cherry
        web:
          build: ./web
          restart: always
          volumes:
            - ${ROOT}:/var/www/html:ro
          ports:
            - 8080:80
          depends_on:
            - app
          networks:
            - cherry
        cron:
          image: nextcloud:fpm-alpine
          restart: always
          volumes:
            - ${ROOT}:/var/www/html
          entrypoint: /cron.sh
          depends_on:
            - db
            - redis
          networks:
            - cherry
      
  • Per il configurare il servizio è necessario anche compilare un file .env
    • # Your timezone, https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
      
      TZ=Europe/Rome
      
      # UNIX PUID and PGID, find with: id $USER
      
      PUID=1000
      PGID=1000
      
      # The directory where data and configuration will be stored.
      
      ROOT=/media/penta/nextcloud
      
      # DB params
      
      MYSQL_ROOT_PASSWORD=nextcloud
      MYSQL_PASSWORD=nextcloud
      MYSQL_DATABASE=nextcloud
      MYSQL_USER=nextcloud
      
  • Durante un eventuale processo di migrazione da #docker a #podman è necessario modificare i permessi della volume con bind su /var/www/html.
    • sudo chown -R 100081:100081 /media/penta/nextcloud/
      
    • ((6712155b-8c8b-4b6e-b956-efc3e8254474))