Try   HackMD

Nextcloud on Docker

Guide détaillé pour déployer Nextcloud avec Docker, en utilisant trois conteneurs Docker différents pour Nextcloud, la base de données et le stockage, chacun dans un conteneur Docker différents

Prérequis

  • Docker
  • Docker compose
  • Droit super-utilisateur

Installation de Docker

Documentation officielle : https://docs.docker.com/engine/installation/

Installation de Docker Compose

Documentation officielle : https://docs.docker.com/compose/install/

Configuration de la base de données

Création du conteneur de la base de données

On utiliseras l'image docker officielle de MySQL

Créer un fichier docker-compose.yml et ajouter les éléments suivants :

version: '3'

services:
  db:
    image: mysql:8.0
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: Ducky12
      MYSQL_ROOT_PASSWORD: Ducky12
    volumes:
      - db_data:/var/lib/mysql
    ports:
      - "3306:3306"
    networks:
      - nextcloud

networks:
  nextcloud:

volumes:
  db_data:

Lancement du conteneur de la base de données

docker-compose up -d db

Configuration du stockage

Dans cette étape, nous allons créer un conteneur Docker pour stocker les fichiers de Nextcloud.

Création du conteneur de stockage

Nous allons utiliser l'image Docker "minio/minio" pour stocker les fichiers de Nextcloud.

Créer un fichier docker-compose.yml et ajouter les éléments suivants :

version: '3'

services:
  storage:
    image: minio/minio
    restart: always
    environment:
      MINIO_ACCESS_KEY: Ducky
      MINIO_SECRET_KEY: DUcky12
    volumes:
      - data:/data
      - config:/root/.minio
    ports:
      - "9000:9000"
    networks:
      - nextcloud

networks:
  nextcloud:

volumes:
  data:
  config:

Lancement du conteneur de stockage

docker-compose up -d storage

Configuration de Nextcloud

Dans cette étape, nous allons configurer Nextcloud pour qu'il utilise la base de données et le stockage que nous avons créés précédemment.

Création du conteneur Nextcloud

Nous allons utiliser l'image Docker officielle de Nextcloud pour créer notre conteneur Nextcloud.

Créer un fichier docker-compose.yml et ajouter les éléments suivants :

version: '3'

services:
  app:
    image: nextcloud:latest
    restart: always
    depends_on:
      - db
      - storage
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: Ducky12
      NEXTCLOUD_ADMIN_USER: admin
      NEXTCLOUD_ADMIN_PASSWORD: Ducky12
      NEXTCLOUD_TRUSTED_DOMAINS: 192.168.11.58
      NEXTCLOUD_DATADIRECTORY: /data
      OBJECT_STORAGE: s3
      OBJECT_STORAGE_BUCKET: my-bucket
      OBJECT_STORAGE_REGION: us-east-1
      OBJECT_STORAGE_ENDPOINT: http://storage:9000
      OBJECT_STORAGE_ACCESS_KEY: Ducky
      OBJECT_STORAGE_SECRET_KEY: Ducky12
      LDAP_HOST: 192.168.135.142
      LDAP_PORT: 389
      LDAP_BASE_DN: OU=Utilisateurs,DC=ADKRY,DC=local
      LDAP_BASE: OU=Utilisateurs,DC=ADKRY,DC=local
      LDAP_BIND_DN: CN=krymi,OU=Utilisateurs,DC=ADKRY,DC=local
      LDAP_BIND_PASSWORD: OuRaffik96!
      LDAP_TLS: 'false'
      LDAP_USERNAME_ATTRIBUTE: samaccountname
      LDAP_LOGIN_FILTER: (&(|(objectClass=person))(samaccountname=%uid))
      LDAP_GROUP_FILTER: (|(objectClass=person)
      LDAP_GROUP_MEMBER_FILTER: (memberUid=%uid)
    volumes:
      - data:/var/www/html
    ports:
      - "80:80"
    networks:
      - nextcloud

networks:
  nextcloud:

volumes:
  data:

Lancement du conteneur Nextcloud

docker-compose up -d app

Accéder à Nextcloud

http://192.168.11.58

Utiliser le compte renseigné dans le docker compose plus haut :

USER: admin
PASSWORD: Ducky12

Nous sommes maintenant connecté sur Nextcloud avecun stockage distant S3 sur un autre docker, un base de donnée MySQL sur autre docker et le nextcloud sur un dokcer apart. Tous sont connecté entre eux grâce à un réseau nommé "nextcloud"