Il y a 45 articles disponibles !

Comment installer Nextcloud sur Docker

Comment installer Nextcloud sur Docker

Créer, organiser, sauvegarder et partager vos documents avec Nextcloud et collabora sur Docker !

https://nextcloud.com/fr/

Premièrement, Bonjour à tous et bienvenue sur mon blog Technologie Geek ! Voyons ensemble comment installer Nextcloud et Collabora sur Docker !

Qu’est ce que nextcloud ?

Pour commencer, Nextcloud est une plateforme de stockage de fichiers en cloud auto-hébergée, open source, où vous avez le contrôle total de vos données. Que vous souhaitiez accéder à vos documents, partager des photos avec des amis, ou créer une plateforme de collaboration pour votre équipe, Nextcloud distribue toutes ces fonctionnalités tout en respectant la confidentialité de vos données.

En déployant Nextcloud avec Docker, vous pouvez profiter d’une installation simplifiée, d’une mise à l’échelle facile et d’une gestion sans problème de votre instance Nextcloud. Docker s’occupe de tous les aspects techniques, vous permettant de vous concentrer sur l’utilisation de Nextcloud. Vous pouvez rapidement déployer de nouvelles instances, faire des mises à jour sans interrompre le service et même migrer votre installation Nextcloud vers un nouveau serveur si nécessaire.

Collabora c’est quoi ?

Collabora Online est une suite bureautique en ligne puissante, sécurisée et open source, permettant l’édition collaborative de documents, feuilles de calcul et présentations directement depuis un navigateur web. Ensuite, elle est conçue pour s’installer facilement avec Nextcloud sur Docker.


Que vous faut-il ?

En premier lieu, une installation de Debian. Ensuite, une installation de Docker ainsi que de Portainer.

Pour ce tutoriel je vais utiliser l’image Docker officiel de Nextcloud et la compiler avec la configuration d’apache en mode SSL. Plusieurs raisons à cela :

  • Premièrement, sans certificat SSL l’image et prévu pour être utilisée soit en local, soit à distance, mais pas les deux en même temps avec une configuration optimale. Nextcloud étant installé sur mon serveur, je veux y avoir accès de partout !
  • L’application mobile fonctionne uniquement en « https ».
  • Par ailleurs, les connexions chiffrées sont bonnes pour la sécurité !

Installation de Nextcloud sur Docker :

Création d’un certificat auto-signé et compilation de l’image Nextcloud :

Pour commencer, vous devez créer un certificat SSL auto-signé. Ensuite, compiler une nouvelle image de Nextcloud sur Docker en intégrant ce certificat dans la configuration d’apache en mode SSL. Cela vous permettra d’avoir un accès en local ainsi qu’à distance derrière une reverse proxy.

Premièrement, connectez-vous en SSH sur votre serveur puis rendez-vous dans le dossier SSL de Debian (ou de votre distribution). Ensuite, passer les commandes ci-dessous et répondez aux questions posées pour la création du certificat. Pour « Common Name », il faut mettre l’adresse IP de votre serveur.

cd / && cd etc/ssl
mkdir nextcloud
cd nextcloud
openssl req -x509 -nodes -days 10000 -newkey rsa:2048 -keyout nextcloud.key -out nextcloud.pem
Création certificat ssl

Ça y est, votre certificat est généré dans le dossier « etc/ssl/nextcloud ». Maintenant, pour continuer l’installation de Nextcloud sur Docker vous devez créer un premier fichier « dockerfile », puis un second nommé « setssl.sh » dans un répertoire que je vais nommer « build » dans le dossier « opt/docker » (vous pouvez créer vos fichiers dans n’importe quel répertoire, cela n’a pas d’importance).

cd / && cd opt/docker
mkdir build
cd build
nano dockerfile
FROM nextcloud:apache
COPY setssl.sh /usr/local/bin/
RUN /usr/local/bin/setssl.sh votre-adresse-mail ip-de-votre-serveur #doivent correspondre aux informations de votre certificat

Ensuite, le fichier « setssl.sh » :

nano setssl.sh

# setssl.sh
# USAGE: setssl.sh <email> <domain>

echo 'SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
SSLCompression off
SSLSessionTickets Off' > /etc/apache2/conf-available/ssl-params.conf
echo "<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin $2
                ServerName $1
" > /etc/apache2/sites-available/default-ssl.conf
echo '
                DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on

                SSLCertificateFile    /etc/ssl/nextcloud/nextcloud.pem
                SSLCertificateKeyFile /etc/ssl/nextcloud/nextcloud.key

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>
        </VirtualHost>
</IfModule>' >> /etc/apache2/sites-available/default-ssl.conf
a2enmod ssl >/dev/null
a2ensite default-ssl >/dev/null
a2enconf ssl-params >/dev/null

Pour terminer, il vous faut rendre le script exécutable et construire l’image d’installation de Nextcloud sur docker.

chmod +x setssl.sh && docker build --tag nextcloud_ssl .

Construction de l'image Nextcloud

Déploiement de Nextcloud et Collabora :

Pour commencer, rendez-vous sur Portainer et sélectionner votre environnement local. Dans l’onglet « Images », vous trouverez maintenant « nextcloud_ssl ». Ensuite, aller dans « Stacks » puis cliquer sur « Add stack » en haut à droite. Maintenant, dans « Nane » taper le nom de votre stack, pour ma part se sera « nextcloud_ssl », coller le code ci-dessous en ajustant « ip-de-votre-serveur-docker » et les paramètres en rouge si nécessaire, puis cliquer sur « deploy the stack » :

version: '3.8'
services:
  nextcloud:
    image: nextcloud_ssl:latest
    container_name: nextcloud
    restart: unless-stopped
    networks:
      - cloud
    depends_on:
      - nextclouddb
      - redis
    ports:
      - 4443:443
    volumes:
      - /opt/docker/nextcloud_ssl/html:/var/www/html
      - /opt/docker/nextcloud_ssl/custom_apps:/var/www/html/custom_apps
      - /opt/docker/nextcloud_ssl/config:/var/www/html/config
      - /opt/docker/nextcloud_ssl/data:/var/www/html/data
      - /etc/ssl/nextcloud:/etc/ssl/nextcloud
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=dbpassword #Le mot de passe de votre base de données
      - MYSQL_HOST=nextclouddb
      - REDIS_HOST=redis

  nextclouddb:
    image: mariadb:11.4
    container_name: nextcloud-db
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    networks:
      - cloud
    volumes:
      - /opt/docker/nextcloud_ssl/nextclouddb:/var/lib/mysql
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - MYSQL_RANDOM_ROOT_PASSWORD=true
      - MYSQL_PASSWORD=dbpassword #Doit correspondre au mot de passe du conteneur Nextcloud
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  collabora:
    image: collabora/code
    container_name: collabora
    restart: unless-stopped
    networks: 
      - cloud
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - password=password
      - username=nextcloud
      - domain=ip-de-votre-serveur-docker:4443
      - extra_params=--o:ssl.enable=true
    ports:
      - 9980:9980
      
  redis:
    image: redis:latest
    container_name: redis
    restart: unless-stopped
    volumes:
      - /opt/docker/nextcloud_ssl/redis:/data
    networks:
      - cloud

networks:
  cloud:
    name: cloud
    driver: bridge

Docker compose Nextcloud

Explication du code pour installer Nextcloud et Collabora sur docker :

Comme vous pouvez le voir, nous allons déployer quatre conteneurs :

  • Premièrement, un conteneur « Nextcloud ».
  • Deuxièmement, un conteneur « Mariadb » pour la base de données.
  • Ensuite, « Collabora Online » vous permettant la création et la modification de fichiers Excel, Word…

Pour finir, un conteneur « redis » :

Redis est un système de stockage en mémoire clé-valeur haute performance. Il est souvent utilisé comme base de données, cache ou courtier de messages. Lorsqu’il est intégré à Nextcloud sur Docker, Redis permet d’améliorer considérablement les performances globales de la plateforme en accélérant la gestion des fichiers temporaires, en optimisant les sessions utilisateur et en réduisant les accès aux bases de données.

Conteneurs

Maintenant, rendez-vous à l’adresse « https://ip-de-votre-serveur:4443 », pour ma part « https://192.168.1.226:4443 » et entrer vos informations pour la création de votre compte administrateur.

Première connexion Nextcloud

Ensuite, pour continuer l’installation de Nextcloud sur Docker, passez les deux pages suivantes. Arrivé sur la page d’accueil, cliquer sur l’icône en haut à droite et sélectionner « Paramètres d’administration ». Comme vous pouvez le voir, il y a quelques alertes à corriger. Selon votre version de Nextcloud, différentes erreurs peuvent apparaitre, utiliser l’aide elle est très bien faite.

Journalisation :

Commençons par les logs, pour cela aller dans « Paramètres d’administration » puis « Journalisation ». Pour ma part j’affiche uniquement les erreurs fatales. Ensuite, vous pouvez, si vous le souhaiter, supprimer le fichier « nextcloud.log » dans le dossier « opt/docker/nextcloud_ssl/data » avec la commande « rm nextcloud.log ». Le fichier sera de nouveau créé au redémarrage de Nextcloud.

Indices de base de données :

Pour continuer l’installation et le paramétrage de Nextcloud et Collabora Online sur Docker, vous devez mettre à jour les indices de la base de données avec le code suivant :

docker exec -ti --user www-data nextcloud /var/www/html/occ db:add-missing-indices

Mise à jour indices bdd

Fichier config.php :

Ensuite, vous devez éditer le fichier « config.php », ajouter les paramètres suivants à la fin et redémarrer votre instance de Nextcloud sur Docker :

cd / && cd opt/docker/nextcloud_ssl/config && nano config.php

'maintenance_window_start' => 1,
'default_phone_region' => 'FR',

Installation de Nextcloud sur Docker

Paramètres d’envoi des mails :

Premièrement, rendez-vous dans « Paramètres d’administration » puis « Informations personnelles » et renseigner « E-mail » ainsi que « Paramètres régionaux ». Deuxièmement, aller dans « Paramètres de base » et remplissez les informations nécessaires dans « Serveur de messagerie ». Enfin, cocher la case « Cron », cela vous servira pour la suite.

Taches cron :

Pour son bon fonctionnement, Nextcloud doit exécuter des tâches en arrière plan toutes les cinq minutes. Il faut donc ajouter une tache cron sur votre hôte. Premièrement, passer la commande suivante :

crontab -e

Ensuite, coller code ci-dessous :

*/5 * * * * docker exec -u www-data nextcloud php /var/www/html/cron.php

Votre instance de Nextcloud sur Docker est maintenant opérationnelle. De retour dans « Paramètres d’administration » puis « Vue d’ensemble » vous ne devriez plus avoir d’avertissements ! Sur la photo ci-dessous vous verrez qu’une nouvelle version de Nextcloud est disponible, mais l’image docker officiel n’est pas encore publié.

Nextcloud ok

Paramétrage de Collabora Online sur Nextcloud et Docker :

Pour débuter, rendez-vous dans « Applications » puis dans « Vos applications » et rechercher « Nextcloud Office ». Ensuite, lancer le téléchargement et l’installation.

Installation de Collabora

D’autre part, vous devez vous connecter sur le serveur Collabora et accepter le certificat. Pour cela rendez-vous à l’adresse « https://ip-de-votre-serveur:9980 », pour ma part « https://192.168.1.226:9980 ».

Pour finir d’installer Collabora et Nextcloud sur Docker, de retour dans « Paramètres d’administration » puis « Nextcloud Office » cocher les cases suivantes :

  • Premièrement, « Utiliser votre propre serveur ».
  • Deuxièmement, « Désactiver la vérification du certificat ».
  • Troisièmement, « Utiliser par défaut Office Open XML ».

Enfin, dans « URL (et port) du serveur Collabora Online » entrer l’adresse « https://ip-de-votre serveur:9980 » pour ma part « https://192.168.1.226:9980 ». Vous pouvez maintenant créer ou modifier des documents Office.

Après paramétrage d’une reverse proxy et les tests exécuté par le site « https://scan.nextcloud.com ».

Scan de sécurité de votre instance Nextcloud


Laisser un commentaire

Technologie Geek

bonjour !

Inscrivez-vous pour recevoir nos nouveaux articles !

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

Bienvenue sur mon blog Technologie Geek ! Je m'appelle Stéphane, je suis chef d'entreprise et Je suis un passionné de technologie, découvrez mes articles et mes test sur l'informatique, la domotique ainsi que la virtualisation.

Je crois que chacun peut apprendre quelque chose de nouveau chaque jour. Partager ses connaissances peut enrichir la vie des autres. C’est pourquoi j’ai créé ce blog pour offrir à notre communauté une plateforme pour partager des idées, des opinions et des expériences.