Skip to main content

Mettre en place Nextcloud Docker

Prérequis :
  • Avoir une base de donnée Postgres déployé en local 
  • Avoir un nom de domaine
    • Dans notre cas le nom de domaine utilisé est : miraceti.net


Il existe plusieurs manière de mettre en place Nextcloud Docker. Dans notre cas nous allons utiliser une base de données Postgres déjà déployé avec Docker  

Configuration nom de domaine

Grâce à notre nom de domaine, nous allons pouvoir créer des sous domaine (en CNAME A).

Sur le site de nom de domaine respectif, dans la section DNS, ajouter l'entrée suivante : 

    cloud.miraceti.net      A       ip.adress.server

     

    Configuration Docker Compose

    Pour accéder à notre base de données externe, nous devons importer le network  lié à la base de donnée (dans notre cas le network est "bddnetwork").  
    De plus dans la variable d'environnement POSTGRES_HOST du conteneur de nextcloud on doit renseigner le nom du conteneur BDD externe (Dans notre cas "postgres")

    Fichier docker-compose.yaml : 

    services:
    
      nextcloud:
        image: ${NEXTCLOUD_IMAGE_TAG}
        container_name: nextcloud
        networks:
          - bddnetwork
        ports: 
          - 8082:80
        volumes:
          - /path/to/data/nextcloud:/var/www/html    
          - /path/to/conf/nextcloud/config:/var/www/html/config
        restart: unless-stopped
        environment:
          TZ: ${NEXTCLOUD_TIMEZONE}
          POSTGRES_HOST: postgres
          DB_PORT: 5432
          POSTGRES_DB: ${NEXTCLOUD_DB_NAME}
          POSTGRES_USER: ${NEXTCLOUD_DB_USER}
          POSTGRES_PASSWORD: ${NEXTCLOUD_DB_PASSWORD}
          REDIS_HOST: redis-nextcloud
          REDIS_HOST_PORT: 6379
          REDIS_HOST_PASSWORD: ${NEXTCLOUD_REDIS_PASSWORD}      
    #      TRUSTED_PROXIES: ${NEXTCLOUD_HOSTNAME}
          OVERWRITECLIURL: ${NEXTCLOUD_URL}
          OVERWRITEPROTOCOL: https
          OVERWRITEHOST: ${NEXTCLOUD_HOSTNAME}
    #      PHP_MEMORY_LIMIT: 2048M			# If you want to overwritte Php Memory Limit 
    #      PHP_UPLOAD_LIMIT: 2048M			# If you want to overwritte Php Upload Limit
    
      redis-nextcloud:
        image: ${NEXTCLOUD_REDIS_IMAGE_TAG}
        container_name: redis-nextcloud
        command: ["redis-server", "--requirepass", "$NEXTCLOUD_REDIS_PASSWORD"]
        volumes:
          - /path/to/data/redis-nextcloud:/data
        networks:
          - bddnetwork
        healthcheck:
          test: ["CMD", "redis-cli", "ping"]
          interval: 10s
          timeout: 5s
          retries: 3
          start_period: 60s
        restart: unless-stopped
    
    volumes:
     nextcloud:
     redis-nextcloud:
    
    networks:
      bddnetwork:
        external: true


    Fichier .env :

    # Nextcloud Variables
    NEXTCLOUD_REDIS_IMAGE_TAG=redis:7.2
    NEXTCLOUD_IMAGE_TAG=nextcloud:29.0
    NEXTCLOUD_REDIS_PASSWORD=5454fdsLJDSqd45
    NEXTCLOUD_DB_NAME=nextclouddb
    NEXTCLOUD_DB_USER=nextclouddbuser
    NEXTCLOUD_DB_PASSWORD=q5s4dazelqksdjfga
    NEXTCLOUD_URL=https://
    NEXTCLOUD_HOSTNAME=
    # Timezone inside container
    # A list of these tz database names can be looked up at Wikipedia
    # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
    NEXTCLOUD_TIMEZONE=Europe/Paris

     

    Configuration Apache2