# 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"