serveur_hebergement:nextcloud_et_collabora_online

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
serveur_hebergement:nextcloud_et_collabora_online [2022/10/04 14:30] – créée fateserveur_hebergement:nextcloud_et_collabora_online [2024/01/14 11:54] (Version actuelle) – [Prérequis] fate
Ligne 1: Ligne 1:
 ====== Nextcloud et Collabora Online ====== ====== Nextcloud et Collabora Online ======
  
-Nextcloud est un logiciel libre qui permet d'héberger des fichiers soit personnels soit en mode collaboratif. Vous pouvez donc y stockez vos fichiers mais aussi, grâce à une multitude d'application, vos mails, votre musique, vos recette de cuisines, vos notes, accéder à Matrix, etc. +Nextcloud est un logiciel libre qui permet d'héberger des fichiers soit personnels soit en mode collaboratif. Vous pouvez donc y stocker vos fichiers mais aussi, grâce à une multitude d'applications, vos mails, votre musique, vos recettes de cuisines, vos notes, accéder à Matrix, etc. 
 Vous pouvez également créer et modifier des tableurs et fichiers docx/odt via Collabora Online. Vous pouvez également créer et modifier des tableurs et fichiers docx/odt via Collabora Online.
  
Ligne 14: Ligne 14:
 Commençons par installer les dépendances : Commençons par installer les dépendances :
 <code bash>sudo aptitude install libxml2 php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu unzip</code> <code bash>sudo aptitude install libxml2 php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu unzip</code>
 +
 +On va activer le module apcu qui va gérer le cache de Nextcloud. Ouvrez le fichier php.ini :
 +<code bash>sudo nano /etc/php/8.2/cli/php.ini</code>
 +
 +Dans la partie Dynamic Extensions, ajoutez la ligne suivante :
 +<code bash>apc.enable_cli=1</code>
 +
 +On va commencer par s'occuper de Collabora Online.
 +
 +===== Collabora Online =====
 +
 +==== Installation ====
 +
 +On va récupérer le dépôt officiel en commençant par récupérer les clés de signature :
 +<code bash>
 +cd /usr/share/keyrings
 +sudo wget https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg
 +</code>
 +
 +On rajoute le dépôt.
 +Créez le fichier de source : 
 +<code bash>sudo nano /etc/apt/sources.list.d/collaboraonline.sources</code>
 +
 +Collez-y les lignes suivantes :
 +<code bash>
 +Types: deb
 +URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-arm64-ubuntu1804
 +Suites: ./
 +Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
 +</code>
 +
 +Ces lignes sont pour un ARM64 (mon Raspberry Pi 4). Si vous êtes sous un Debian 64 bits, remplacez l'url par :
 +<code>https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian11/</code>
 +
 +Mettez à jour la liste des paquets :
 +<code bash>sudo aptitude update</code>
 +
 +Installez Collabora Online :
 +<code bash>sudo aptitude install coolwsd code-brand</code>
 +
 +On passe à la configuration.
 +
 +==== Configuration ====
 +
 +Ouvrez le fichier de configuration :
 +<code bash>sudo nano /etc/coolwsd/coolwsd.xml </code>
 +
 +Dans la partie "SSL settings", remplacez les certificats/clés SSL par ceux de Let's Encrypt pour votre domaine afin d'avoir des certificats reconnus :
 +<code bash>
 +<cert_file_path desc="Path to the cert file" relative="false">/etc/letsencrypt/live/domaine.fr/cert.pem</cert_file_path>
 +<key_file_path desc="Path to the key file" relative="false">/etc/letsencrypt/live/domaine.fr/privkey.pem</key_file_path>
 +<ca_file_path desc="Path to the ca file" relative="false">/etc/letsencrypt/live/domaine.fr/chain.pem</ca_file_path>
 +</code>
 +Il faut que l'utilisateur cool est accès à ces fichiers.
 +
 +On va diriger les logs dans un fichier distinct, /var/log/coolwsd.log, plutôt que de mettre dans syslog :
 +<code bash><file enable="false"></code>
 +par
 +<code bash><file enable="true"></code>
 +
 +On va également limiter les logs au niveau warning et supérieur. Remplacez la ligne :
 +<code bash><lokit_sal_log type="string" desc="Fine tune log messages from LOKit. Default is to suppress log messages from LOKit." default="-INFO-WARN">-INFO-WARN</lokit_sal_log></code>
 +par 
 +<code bash><lokit_sal_log type="string" desc="Fine tune log messages from LOKit. Default is to suppress log messages from LOKit." default="-INFO-WARN">-WARN</lokit_sal_log></code>
 +
 +
 +Après la ligne "</alias_groups>", ajoutez la ligne suivante pour autoriser Nextcloud, qui sera accessible à l'adresse nextcloud.domaine.fr, à se connecter (remplacez le domaine) :
 +<code bash><host allow="true" desc="Regex pattern of hostname to allow or deny.">nextcloud\.domaine\.fr</host></code>
 +
 +Créez le fichier de log : 
 +<code bash>sudo touch /var/log/coolwsd.log</code>
 +
 +Changez le propriétaire du fichier :
 +<code bash>sudo chown cool:cool /var/log/coolwsd.log</code>
 +
 +Redémarrez Collabora Online :
 +<code bash>sudo systemctl restart coolwsd.service</code>
 +
 +On va créer le vhost Apache2 pour y accéder.
 +
 +==== Configuration Apache2 ====
 +
 +Créez le fichier de configuration Apache2 :
 +<code bash>sudo nano /etc/apache2/sites-available/office.domaine.fr.conf</code>
 +
 +Collez-y les lignes suivantes (remplacez domaine.fr par votre domaine) :
 +<code apache2>
 +<VirtualHost *:80>                                                                                                                                                                                                                          
 +                                                                                                                                                                                                                                            
 +        ServerName office.domaine.fr                                                                                                                                                                                                       
 +        ServerAdmin fate@domaine.fr                                                                                                                                                                                                        
 +                                                                                                                                                                                                                                            
 +        Redirect / https://office.domaine.fr/                                                                                                                                                                                              
 +                                                           
 +</VirtualHost>  
 +
 +<VirtualHost *:443>                              
 +                                                                                                                      
 +        ServerName office.domaine.fr                                                                                 
 +        ServerAdmin fate@domaine.fr                                                                                  
 +                                                           
 +        LogLevel warn              
 +        CustomLog ${APACHE_LOG_DIR}/office.access.log combined                                                        
 +        ErrorLog ${APACHE_LOG_DIR}/office.error.log
 +        
 +        SSLEngine on
 +        SSLCertificateFile /etc/letsencrypt/live/domaine.fr/fullchain.pem                                    
 +        SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem                                   
 +                                                           
 +        # Encoded slashes need to be allowed       
 +        AllowEncodedSlashes NoDecode
 +                                                           
 +        # Container uses a unique non-signed certificate
 +        SSLProxyEngine On                                                                                             
 +        SSLProxyVerify None                        
 +        SSLProxyCheckPeerCN On                                                                                                                                                                                                              
 +        SSLProxyCheckPeerName On
 +                                                           
 +        # keep the host   
 +        ProxyPreserveHost On      
 +                                                           
 +        # static html, js, images, etc. served from coolwsd                                                           
 +        # browser is the client part of LibreOffice Online
 +        ProxyPass           /browser https://localhost:9980/browser retry=0                                           
 +        ProxyPassReverse    /browser https://localhost:9980/browser       
 +                                                                                                                      
 +        # WOPI discovery URL                               
 +        ProxyPass           /hosting/discovery https://localhost:9980/hosting/discovery retry=0
 +        ProxyPassReverse    /hosting/discovery https://localhost:9980/hosting/discovery                               
 +                                                           
 +        # Main websocket                                                                                              
 +        ProxyPassMatch "/cool/(.*)/ws$" wss://localhost:9980/cool/$1/ws nocanon                                                                                                                                                                                                                                                                                   
 +        # Admin Console websocket                                                                                     
 +        ProxyPass   /cool/adminws wss://localhost:9980/cool/adminws                                                   
 +                                                           
 +        # Download as, Fullscreen presentation and Image upload operations     
 +        ProxyPass           /cool https://localhost:9980/cool                 
 +        ProxyPassReverse    /cool https://localhost:9980/cool
 +                                                           
 +        # Endpoint with information about availability of various features
 +        ProxyPass           /hosting/capabilities https://localhost:9980/hosting/capabilities retry=0
 +        ProxyPassReverse    /hosting/capabilities https://localhost:9980/hosting/capabilities
 +                                                           
 +</VirtualHost>                                          
 +                                                                                                                      
 +</code>
 +
 +Activez le fichier de configuration (modifiez le nom de domaine) :
 +<code bash>sudo a2ensite office.domaine.fr.conf</code>
 +
 +Redémarrez Apache2 :
 +<code bash>sudo systemctl restart apache2.service</code>
 +
 +Passons à Nextcloud.
 +
 +===== Nextcloud =====
 +
 +==== Téléchargement ====
  
 Téléchargez la dernière version de Nextcloud : Téléchargez la dernière version de Nextcloud :
Ligne 26: Ligne 184:
 <code bash>sudo chown -R www-data:www-data nextcloud</code> <code bash>sudo chown -R www-data:www-data nextcloud</code>
  
-===== Création de la base de données =====+==== Création de la base de données ====
  
 Lancez MySQL : Lancez MySQL :
Ligne 38: Ligne 196:
  
 Donnez les droits à l'utilisateur sur la base de données nextcloud : Donnez les droits à l'utilisateur sur la base de données nextcloud :
-<code sql>GRANT ALL PRIVILEGES ON nextcloud* TO nextcloud@localhost;</code>+<code sql>GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost;</code>
  
 Rechargez les privilèges : Rechargez les privilèges :
Ligne 46: Ligne 204:
 <code sql>exit</code> <code sql>exit</code>
  
-===== Configuration de Apache2 =====+==== Configuration d’Apache2 ====
  
 Créez le fichier de configuration Apache2 (remplacez le nom de domaine) : Créez le fichier de configuration Apache2 (remplacez le nom de domaine) :
Ligne 56: Ligne 214:
  
         DocumentRoot /var/www/nextcloud/         DocumentRoot /var/www/nextcloud/
- 
         ServerName nextcloud.domaine.fr         ServerName nextcloud.domaine.fr
-        ServerAdmin fate@domaine.fr 
  
         Redirect / https://nextcloud.domaine.fr/         Redirect / https://nextcloud.domaine.fr/
Ligne 68: Ligne 224:
  
         DocumentRoot /var/www/nextcloud/         DocumentRoot /var/www/nextcloud/
- 
         ServerName nextcloud.domaine.fr         ServerName nextcloud.domaine.fr
-        ServerAdmin fate@domaine.fr 
  
         LogLevel warn         LogLevel warn
Ligne 76: Ligne 230:
         ErrorLog ${APACHE_LOG_DIR}/nextcloud.error.log         ErrorLog ${APACHE_LOG_DIR}/nextcloud.error.log
  
-        <IfModule mod_ssl.c> +        SSLEngine on 
-                SSLEngine on +        SSLCertificateFile /etc/letsencrypt/live/domaine.fr/fullchain.pem 
-                SSLCertificateFile /etc/letsencrypt/live/domaine.fr/fullchain.pem +        SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem 
-                SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem +        #Header set Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; connect-src 'self'; media-src 'self'; child-src 'self'; object-src 'self'; form-action 'self'; img-src 'self' * data:"
-                #Header set Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; connect-src 'self'; media-src 'self'; child-src 'self'; object-src 'self'; form-action 'self'; img-src 'self' * data:" +
-        </IfModule> +
  
         <Directory /var/www/nextcloud/>         <Directory /var/www/nextcloud/>
Ligne 97: Ligne 248:
  
 </VirtualHost> </VirtualHost>
- 
-# modern configuration, tweak to your needs 
-SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1 
-SSLCipherSuite          ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 
-SSLHonorCipherOrder     on 
-SSLCompression          off 
-SSLSessionTickets       off 
- 
-# OCSP Stapling, only in httpd 2.3.3 and later 
-SSLUseStapling          on 
-SSLStaplingResponderTimeout 5 
-SSLStaplingReturnResponderErrors off 
-SSLStaplingCache        shmcb:/var/run/ocsp(128000) 
  
 </code> </code>
Ligne 116: Ligne 254:
 <code bash>sudo a2ensite nextcloud.domaine.fr.conf</code> <code bash>sudo a2ensite nextcloud.domaine.fr.conf</code>
  
-===== Configuration de Nextcloud =====+Redémarrez Apache2 : 
 +<code bash>sudo systemctl restart apache2.service</code>
  
-Créez le fichier de configuration de Nextcloud +==== Installation de Nextcloud ====
-<code bash>sudo -u www-data /var/www/nextcloud/config/config.sample.php /var/www/nextcloud/config/config.php</code>+
  
-Ouvrez le fichier de configuration de Nextcloud : +Allez à l'adresse https://nextcloud.domaine.fr :
-<code bash>sudo nano /var/www/nextcloud/config/config.php</code>+
  
 +{{:serveur_hebergement:pasted:20221004-181152.png?400}}
  
 +Choisissez un nom d'utilisateur et un mot de passe pour le compte administrateur. Cliquez sur "Stockage & base de données" puis sur "MySQL/MariaDB" et remplir les champs comme suit (remplacez motdepasse par le mot de passe que vous avez choisi lors de la création de la base de données) :
  
 +{{:serveur_hebergement:pasted:20221004-181952.png?400}}
  
-===== Memory caching =====+Cliquez sur "Installer".
  
 +Sur l'écran suivant, cliquez sur "Annuler". Je préfère installer uniquement les applications dont j'ai besoin.
  
-APCu+{{:serveur_hebergement:pasted:20221004-182417.png?400}}
  
-APCu is a data cache, and it is available in most Linux distributionsOn Red Hat/CentOS/Fedora systems install php-pecl-apcu. On Debian/Ubuntu/Mint systems install php-apcu.+Nextcloud est maintenant installéPassons à la configuration.
  
-After restarting your Web server, add this line to your config.php file: 
  
-'memcache.local' => '\OC\Memcache\APCu',+==== Configuration de Nextcloud ====
  
-Refresh your Nextcloud admin page, and the cache warning should disappear.+Cliquez sur l'icône en haut à droite et choisissez "Applications"
 +Allez dans la partie "Bureautique et texte" et installez l'application "Collabora Online" (le mot de passe administrateur vous sera demandé). 
 + 
 +Cliquez de nouveau sur l'icône en haut à droite et cliquez sur "Paramètres"
 +Allez dans Administration > Paramètres de base et choisissez l'option "Cron" dans "Tâches de fond". Sur cette même page, configurez l'envoi de mail. 
 + 
 +Allez maintenant dans Administration > Nextcloud Office et cliquez sur "Utilisez votre propre serveur". Dans le champ, entrez https://office.domaine.fr puis cliquez sur Save. La pastille doit passer en vert. 
 + 
 +{{:serveur_hebergement:pasted:20221004-193332.png?400}} 
 + 
 +Sur le serveur, il va falloir créer une tâche cron avec l'utilisateur www-data pour lancer les tâches de fond : 
 +<code bash>sudo -u www-data crontab -e</code> 
 +Si on vous demande quel éditeur choisir, choisissez nano. 
 + 
 +Ajoutez la ligne suivante pour exécuter le script cron.php toutes les 5 minutes : 
 +<code bash>*/ *  *  *  * php -f /var/www/nextcloud/cron.php</code> 
 + 
 +Il ne nous reste plus qu'à activer le cache. Ouvrez le fichier de configuration de Nextcloud : 
 +<code bash>sudo nano /var/www/nextcloud/config/config.php</code>
  
-Warning+Ajoutez la ligne suivante : 
 +<code bash>'memcache.local' => '\OC\Memcache\APCu',</code>
  
-APCu is disabled by default on CLI which could cause issues with nextcloud’s cron jobsPlease make sure you set the apc.enable_cli to 1 on your php.ini config file or append --define apc.enable_cli=1 to the cron job call.+VoilaNextcloud est installé et vous pouvez créer et éditer des fichiers type Word et Excel.
  
  
 Sources :  Sources : 
 [[https://www.howtoforge.com/how-to-install-nextcloud-on-debian-11/]] [[https://www.howtoforge.com/how-to-install-nextcloud-on-debian-11/]]
-[[https://nextcloud.com/install/#instructions-server]]+[[https://docs.nextcloud.com/server/latest/admin_manual/]]
  • serveur_hebergement/nextcloud_et_collabora_online.1664893847.txt.gz
  • Dernière modification : 2023/08/08 14:01
  • (modification externe)