Skip to main content

Mettre en place Nextcloud Docker

Prérequis :
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  

    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