5. Infrastructure Partage de fichiers - gpk659/WoodyToys-Projet-VPS GitHub Wiki

Introduction

:globe_with_meridians: Nextcloud

Nextcloud est une suite de logiciels client-serveur pour créer des services d' hébergement de fichiers et les utiliser. Il est fonctionnellement très similaire à la Dropbox largement utilisée , la différence fonctionnelle principale étant que Nextcloud est gratuit et open-source , ce qui permet à quiconque de l'installer et de l'utiliser sans frais sur un serveur privé .

Contrairement aux services propriétaires tels que Dropbox, l'architecture ouverte permet d'ajouter des fonctionnalités supplémentaires au serveur sous la forme d'applications dites.

Nextcloud est une fourche activement maintenue de ownCloud .

L’avantage pour les entreprises étant qu’elles peuvent garder un œil sur leurs données.

Installation

Nous avons utilisé l'image suivante :

wonderfall/nextcloud

Pour plus de facilité, nous avons ajouté nextcloud à notre docker-compose que nous avons utilisé pour le mail.

On configure un utilisateur et un mot de passe pour la base de donnée ainsi que plusieurs volumes.

On utilise la base de donnée utilisée pour le mail. Ici c'est mariadb.

On utilise aussi le serveur web nginx installé avec le mail.

# Nextcloud
nextcloud:
 image: wonderfall/nextcloud:latest
 links:
   - mariadb
environment:
  - DB_TYPE=MYSQL
  - DB_NAME=nextcloud
  - DB_USER=nextcloudUser
  - DB_PASSWORD=secret2017
  - DB_HOST=mariadb
volumes:
  - /mnt/nextcloud/data:/data
  - /mnt/nextcloud/config:/config
  - /mnt/nextcloud/apps:/app2
  - /mnt/nextcloud/themes:/nextcloud/themes

Ne pas oublier d'ajouter un nom de domaine pour le nextcloud :

nextcloud       IN      CNAME   service

Configuration

Créer un vhost pour le nextcloud

On lance la commande suivante :

 docker exec -ti nginx ngxproxy

Ensuite on configure les différents parametres :

Welcome to ngxproxy utility.
We're about to create a new virtual host (AKA server block).

Name: nextcloud
Domain: nextcloud.wt5.ephec-ti.be
Webroot (default is /):
Container: nextcloud
Port (default is 80): 8888
HTTPS [y/n]: n
Max body size in MB (integer/null): null

Done! nextcloud.conf has been generated.
Reload nginx now? [y/n]: y
nginx successfully reloaded.

Il y a plusieurs manières pour configurer nextcloud:

  • Directement dans le container
  • Dans le volume
  • Via l'interface web (solution que nous avons choisie)

1. Il faut créer son compte administrateur

Pour cela il suffit de suivre les instructions affichée à l'écran.

2. Configurer le partage de fichier et autres services possible via le panel administration

3. Créer des utilisateurs (panel utilisateur)

Nous avons ici créer deux types d'utilisateurs :

  • les administrateur (admin)
  • et les utilisateurs "classique" (users). Ils n'ont bien entendu pas les mêmes permissions et capacités.

4. Gérer le partage des fichiers en fonction des droits de chaque utilisateurs (ou de chaque groupe)

Pour ce projet nous avons décidé de laisser tous les droits aux users sauf celui de supprimer des dossiers et/ou fichiers

4. Fonctionnalités supplémentaires

Nous avons ici prit la décision de rajouter un agenda sur le nextcloud. Cet agenda est multiple, il est composé de celui pour les users et celui pour les admins. Bien sûr les admins peuvent également modifier et voir le calendrier users ce qui n'est pas le cas dans l'autres sens!

5. Système de backup

Pour sauvegarder une installation Nextcloud, il faut quatre choses principales:

:one: Le dossier de configuration :two: Le dossier de données :three: La base de données :four: Le dossier thématique

Dossiers de sauvegarde

:information_source: Backup

Il suffit de copier vos dossiers de configuration, de données et de thème (ou même votre dossier d'installation et de données Nextcloud complet) dans un endroit situé en dehors de votre environnement Nextcloud. Vous pouvez utiliser cette commande:

 Rsync -Aax nextcloud / nextcloud-dirbkp_`date + "% Y% m% d" `/

Base de données de sauvegarde

MySQL / MariaDB

MySQL ou MariaDB, qui est un remplacement MySQL, est le moteur de base de données recommandé. Pour sauvegarder MySQL / MariaDB:

 Mysqldump --single-transaction -h [serveur] -u [nom d'utilisateur] -p [mot de passe] [db_name]> nextcloud-sqlbkp_`date + "% Y% m% d" `.bak

Ajout d'un lecteur réseau sur Windows

Il vous faut récupérer le lien WebDav qui se trouve sur votre interface web de nextcloud. Vous cliquer sur Paramètres en bas à gauche et vous pouvez récupérer le lien.

nextcloud

Ensuite vous aller dans votre explorer, vous faites un clic-droit pour ajouter un lecteur réseau. Et pour terminer vous copier le lien webdav.

:bulb: Voici un lien si vous avez des difficultés à créer un lecteur réseau.