Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:nextcloud [11/02/2018 13:21] smolski [Installation de Nextcloud] |
doc:reseau:nextcloud [12/02/2018 12:29] smolski [Préparation] |
||
---|---|---|---|
Ligne 30: | Ligne 30: | ||
===== Pourquoi installer nextcloud ? ===== | ===== Pourquoi installer nextcloud ? ===== | ||
- | Voilà quelques années que j'estime que de ne pas pouvoir accéder à ses propres données n'importe où, n'importe quand, est très regrettable quand on sait que nous //"respirons"// internet. \\ | + | Voilà quelques années que j'estime que de ne pas pouvoir accéder à ses propres données n'importe où, n'importe quand, est très regrettable quand on sait que nous //"respirons"// internet. |
- | Merci la démocratisation des smartphones ;-) | + | |
- | Sans être paranoïaque, **Google**, **Apple**, **Microsoft** & co ont suffisamment de pouvoirs. Allons-nous en plus leur confier l'accès libre à toutes nos données ? :-P | + | //Merci la démocratisation des smartphones// ;-) |
+ | |||
+ | Sans être paranoïaque, **Google**, **Apple**, **Microsoft** & **co** ont suffisamment de pouvoirs. Allons-nous en plus leur confier l'accès libre à toutes nos données ? :-P | ||
- **Nextcloud** et ses applications permettent une alternative aux chapelets Google Drive/Gmail/G.Agenda/G.Docs... ou à Microsoft les oneDrive/outlook/office365...) | - **Nextcloud** et ses applications permettent une alternative aux chapelets Google Drive/Gmail/G.Agenda/G.Docs... ou à Microsoft les oneDrive/outlook/office365...) | ||
- **Nextcloud** est **open source**, distribué **gratuitement** et **installable sur son propre serveur**. | - **Nextcloud** est **open source**, distribué **gratuitement** et **installable sur son propre serveur**. | ||
Ligne 56: | Ligne 57: | ||
Il est dit aussi que selon le nombre d'utilisateurs et la quantité de données à traiter, ce prérequis peut augmenter. | Il est dit aussi que selon le nombre d'utilisateurs et la quantité de données à traiter, ce prérequis peut augmenter. | ||
<note>Memory requirements for running an Nextcloud server are greatly variable, depending on the numbers of users and files, and volume of server activity. Nextcloud needs a minimum of 128MB RAM, and we recommend a minimum of 512MB.</note> | <note>Memory requirements for running an Nextcloud server are greatly variable, depending on the numbers of users and files, and volume of server activity. Nextcloud needs a minimum of 128MB RAM, and we recommend a minimum of 512MB.</note> | ||
- | On ne parle ici que de la solution nextcloud de base. L'ajout d'applications //(ou plugin)// feront grimper ce minimum requis. \\ | + | On ne parle ici que de la solution nextcloud de base. \\ |
+ | L'ajout d'applications //(ou plugin)// feront grimper ce minimum requis. | ||
Si votre serveur dispose de 2 à 4GB de mémoire vive et que le nombre d'utilisateurs ne dépasse pas une utilisation //"familiale"//, vous ne devriez pas rencontrer de problème. Autrement, il faudra peut-être user de la carte bancaire pour mettre à jour/changer son serveur ou se passer de certaines applications telle que : | Si votre serveur dispose de 2 à 4GB de mémoire vive et que le nombre d'utilisateurs ne dépasse pas une utilisation //"familiale"//, vous ne devriez pas rencontrer de problème. Autrement, il faudra peut-être user de la carte bancaire pour mettre à jour/changer son serveur ou se passer de certaines applications telle que : | ||
* **Collabora** qui permet d'avoir une suite bureautique en ligne //(traitement de texte, tableur, etc)// | * **Collabora** qui permet d'avoir une suite bureautique en ligne //(traitement de texte, tableur, etc)// | ||
- | * et/ou **Nextant** qui permet de scanner le contenu des documents avec fonction [[https://fr.wikipedia.org/wiki/Reconnaissance_optique_de_caractères|OCR]] en vu de recherches plus pertinentes. | + | * [**OBSOLÈTE**] et/ou **Nextant** qui permet de scanner le contenu des documents avec fonction [[https://fr.wikipedia.org/wiki/Reconnaissance_optique_de_caractères|OCR]] en vu de recherches plus pertinentes. |
<note>Personnellement, je ne me suis pas encore penché sur des tests de charge mais je compléterai ces infos dès que possible.</note> | <note>Personnellement, je ne me suis pas encore penché sur des tests de charge mais je compléterai ces infos dès que possible.</note> | ||
Ligne 71: | Ligne 74: | ||
* Un nom de domaine (obligatoire pour obtenir un certificat SSL) | * Un nom de domaine (obligatoire pour obtenir un certificat SSL) | ||
- | <note important>**Comme indiqué plus haut, cette documentation est basée sur une [[doc:systeme:apt:sources.list:stretch|Debian 9 (stretch)]] fraîchement installée ! \\ Cette documentation est aussi à adapter selon votre système : \\ Pour les utilisateurs de distributions basées sur le projet Debian comme Ubuntu et Linux Mint, l'essentiel de la procédure est valable à conditions d'être sûr des montures((mises à jour)) récentes de ces distributions. \\ Je tenterai d'indiquer les endroits où vous devrez vous méfier.**</note> | + | <note important>Comme indiqué plus haut : \\ **cette documentation est basée sur une [[doc:systeme:apt:sources.list:stretch|Debian 9 (stretch)]] fraîchement installée !** \\ \\ Cette documentation est aussi à adapter selon votre système. Pour les utilisateurs de distributions basées sur le projet Debian comme **Ubuntu** ou **Linux Mint**, l'essentiel de la procédure est valable à condition d'être sûr des montures((mises à jour)) récentes de ces distributions. \\ \\ //Je tenterai d'indiquer les endroits où vous devrez vous méfier.// ;-) </note> |
==== Les étapes à suivre ==== | ==== Les étapes à suivre ==== | ||
Ligne 91: | Ligne 94: | ||
Un nom de domaine permet entre autre d'accéder à //"un serveur"// relié au réseau internet par un nom plutôt que par une adresse IP. \\ | Un nom de domaine permet entre autre d'accéder à //"un serveur"// relié au réseau internet par un nom plutôt que par une adresse IP. \\ | ||
Il est plus commode de taper dans son navigateur : | Il est plus commode de taper dans son navigateur : | ||
- | * %%https://debian-facile.org%% plutôt que | + | * %%https://debian-facile.org%% plutôt que %%https://151.80.145.212.%% |
- | * %%https://151.80.145.212.%% | + | * Si votre serveur est hébergé chez un prestataire vous devez probablement avoir un nom de domaine compris dans votre offre. \\Autrement il faudra en faire l'acquisition. |
- | * Si votre serveur est hébergé chez un prestataire vous devez probablement avoir un nom de domaine compris dans votre offre. \\ Autrement il faudra en faire l'acquisition. | + | |
* Si votre serveur est hébergé en local (à votre domicile), vérifiez que vous disposez bien d'une **adresse IP publique fixe** ! (Seul votre fournisseur d'accès à internet peut intervenir à ce niveau. \\ **Attention,** certains fournisseurs ne permettent pas l'obtention d'une IP fixe pour les offres "grand public". Dans ce cas, changez d'offre, d'opérateur ou optez pour un hébergeur...) | * Si votre serveur est hébergé en local (à votre domicile), vérifiez que vous disposez bien d'une **adresse IP publique fixe** ! (Seul votre fournisseur d'accès à internet peut intervenir à ce niveau. \\ **Attention,** certains fournisseurs ne permettent pas l'obtention d'une IP fixe pour les offres "grand public". Dans ce cas, changez d'offre, d'opérateur ou optez pour un hébergeur...) | ||
- | Vous pouvez faire l'acquisition d'un nom de domaine chez n'importe quel prestataire : [[https://www.gandi.net/domaine|Gandi]], [[https://www.ovh.com/fr/domaines/|OVH]], [[https://www.online.net/fr/nom-de-domaine|Online.net]]... À vous de comparer les prix. \\ Que vous choisissiez du *.fr, *.com, *.eu ou *.tartempion, pour la mise en place de la solution nextcloud on s'en fiche totalement. \\ En jetant un coup d'oeil rapide j'ai vu chez Gandi du *.space pour 1€/an... | + | Vous pouvez faire l'acquisition d'un nom de domaine chez n'importe quel prestataire comme : \\ |
+ | [[https://www.gandi.net/domaine|Gandi]], \\ [[https://www.ovh.com/fr/domaines/|OVH]], \\ [[https://www.online.net/fr/nom-de-domaine|Online.net]]... | ||
+ | |||
+ | À vous de comparer les prix. \\ | ||
+ | Que vous choisissiez du *.fr, *.com, *.eu ou *.tartempion, pour la mise en place de la solution nextcloud on s'en fiche totalement. | ||
+ | |||
+ | //En jetant un coup d'oeil rapide j'ai vu chez Gandi du *.space pour 1€/an...// | ||
<note tip>Oubliez tout de suite l'idée d'un nom de domaine gratuit en cherchant juste à économiser de 1 à 10€ par an !</note> | <note tip>Oubliez tout de suite l'idée d'un nom de domaine gratuit en cherchant juste à économiser de 1 à 10€ par an !</note> | ||
Si vous cherchez un hébergeur à petit budget pour un serveur dédié ou serveur dédié virtuel, regardez du côté de : | Si vous cherchez un hébergeur à petit budget pour un serveur dédié ou serveur dédié virtuel, regardez du côté de : | ||
Ligne 107: | Ligne 115: | ||
- espace de stockage. | - espace de stockage. | ||
- | Une fois le nom de domaine acquis, accédez à son interface d'administration (voir l'email reçu de votre prestataire) pour paramétrer la zone. | + | Une fois le nom de domaine acquis, accédez à son interface d'administration //(voir l'email reçu de votre prestataire) pour paramétrer la zone//. |
L'objectif est de faire pointer votre nom de domaine vers l'adresse IP de votre serveur en créant au moins un enregistrement : | L'objectif est de faire pointer votre nom de domaine vers l'adresse IP de votre serveur en créant au moins un enregistrement : | ||
<note>**Sous domaine ou nom [*] Type [A] Value [//adresse_ip_serveur//]**</note> | <note>**Sous domaine ou nom [*] Type [A] Value [//adresse_ip_serveur//]**</note> | ||
+ | |||
Impossible de vous détailler la procédure ici puisque l'interface d'administration est propre au prestataire. \\ | Impossible de vous détailler la procédure ici puisque l'interface d'administration est propre au prestataire. \\ | ||
Au pire, contactez leur service clients. \\ | Au pire, contactez leur service clients. \\ | ||
Soyez patient, les enregistrements prennent souvent plusieurs heures avant leur prise en charge. \\ | Soyez patient, les enregistrements prennent souvent plusieurs heures avant leur prise en charge. \\ | ||
Vérifiez régulièrement à l'aide de la commande : | Vérifiez régulièrement à l'aide de la commande : | ||
- | <code user>ping mon_nom_de_domaine | + | <code user>ping mon_nom_de_domaine</code> |
- | # Si j'ai "acheté" le nom de domaine toto.fr | + | Exemple : \\ |
- | ping toto.fr | + | Si j'ai **acheté** le //nom de domaine// ''toto.fr '' j'écrirai : |
- | # doit me retourner une réponse affichant l'adresse IP de mon serveur</code> | + | <code user>ping toto.fr</code> |
- | Nous allons également faire une petite modification du fichier "/etc/hosts" pour nos futur tests en local à l'aide de curl. L'intérêt de réaliser des tests en local puis à distance permet de facilité la recherche en cas de problème. | + | qui doit me retourner une réponse affichant l'''adresse IP '' de mon serveur. |
- | <code root> | + | |
- | # A l'aide de l'éditeur nano ou vim ou ouvre le fichier /etc/hosts | + | Nous allons également faire une petite modification du fichier ''/etc/hosts'' pour nos futurs tests en local à l'aide de curl. |
- | nano /etc/hosts | + | <note tip>L'intérêt de réaliser des tests en local puis à distance c'est de faciliter la recherche en cas de problème ! ;-) </note> |
- | # L'éditeur nano est plus simple à appréhender pour un débutant et l'aide se trouve en bas de l'écran. | + | |
- | # Le sigle ^ signifie qu'il faut maintenir la touche du clavier CTRL. Quitter = ^X = CTRL + X | + | À l'aide de l'éditeur [[doc:editeurs:nano|nano]] on ouvre le fichier ''/etc/hosts '' ainsi : |
- | </code> | + | <code root>nano /etc/hosts</code> |
- | Et on rajoute ces lignes : | + | Et on rajoute ces lignes où le //nom de domaine// : ''toto.fr '' est à remplacer par le //nom de domaine// **que vous avez acquis !!!** : |
- | <file name hosts> | + | <file name hosts>127.0.0.1 toto.fr |
- | # Remplacer toto.fr par votre nom de domaine | + | |
- | # Remplacer madb, nuage et bureau par les nom que vous allez utiliser pour accéder à votre base de données, nextcloud et collabora. | + | |
- | # Exemple si vous avez acquis le nom de domaine : "tartempion.org" et que vous voulez accéder à nextcloud via l'adresse "https://cloud.tartempion.org", il vous faudra changer "nuage.toto.fr" en "cloud.tartempion.org". | + | |
- | 127.0.0.1 toto.fr | + | |
127.0.0.1 madb.toto.fr | 127.0.0.1 madb.toto.fr | ||
127.0.0.1 nuage.toto.fr | 127.0.0.1 nuage.toto.fr | ||
127.0.0.1 bureau.toto.fr | 127.0.0.1 bureau.toto.fr | ||
</file> | </file> | ||
+ | <note important>Remplacer le //nom de domaine// pris en exemple pour ce tuto : ''toto.fr'' par votre ''nom de domaine''. \\ Remplacer aussi les noms : ''madb '', ''nuage '' et ''bureau '' par ceux que vous allez utiliser pour accéder à votre base de données, //nextcloud// et //collabora//.</note> | ||
==== Serveur de bases de données ==== | ==== Serveur de bases de données ==== | ||
Ligne 146: | Ligne 152: | ||
MariaDB est un fork //(dérivé)// de MySQL. //(MySQL est devenu la propriété d'Oracle.)// | MariaDB est un fork //(dérivé)// de MySQL. //(MySQL est devenu la propriété d'Oracle.)// | ||
<note warning>Pour les utilisateurs d'autres distributions non basés sur Debian, la commande apt ne fonctionnera pas et les paquets peuvent se nommer autrement.</note> | <note warning>Pour les utilisateurs d'autres distributions non basés sur Debian, la commande apt ne fonctionnera pas et les paquets peuvent se nommer autrement.</note> | ||
- | <code user> | + | |
- | # En premier lieu on passe en utilisateur root en tapant simplement : | + | # En premier lieu on passe en [[doc:systeme:superutilisateur|utilisateur root]] en utilisant : |
- | su | + | [[doc:systeme:su|la commande su]] : |
- | # Vous serez alors invités à rentrer le mot de passe du [[doc:systeme:superutilisateur|'S'uper 'U'tilisateur root]]. | + | <code user> su</code> |
- | </code> | + | |
- | <note tip>[[:doc:systeme:su|Pour en savoir plus sur "su".]]</note> | + | |
=== Installation de MariaDB === | === Installation de MariaDB === | ||
- | <code root># On fait une mise à jour de la liste des paquets | + | On fait une [[doc:systeme:apt:apt|mise à jour de la liste des paquets]] : |
- | apt update | + | <code root>apt update</code> |
- | # et on en profite pour mettre à jour son système. | + | Et on en profite pour mettre à jour son système : |
- | apt full-upgrade | + | <code root>apt full-upgrade</code> |
- | # On lance l'installation de MariaDB. | + | On lance l'installation de MariaDB. |
- | apt install mariadb-server | + | <code root>apt install mariadb-server</code> |
- | # Un grand nombre de paquets supplémentaires sont proposés (plus d'une trentaine), c'est normal. On répond par 'O'ui. | + | Un grand nombre de paquets supplémentaires sont proposés (plus d'une trentaine), c'est normal. On répond par 'O'ui. |
- | </code> | + | |
- | <note tip>[[:doc:systeme:apt:apt|Pour en savoir plus sur "apt".]]</note> | + | |
Sécurisons un peu notre installation de MariaDB. | Sécurisons un peu notre installation de MariaDB. | ||
- | <code root># On lance un assistant prévu à cet effet. | + | |
- | mysql_secure_installation | + | On lance un assistant prévu à cet effet : |
- | # Il suffit alors de répondre aux questions. | + | <code root>mysql_secure_installation</code> |
- | # La première question vous demande de rentrer le mot de passe actuel de root. Il n'y en a pas. On laisse vide et on fait Entrer. | + | Il suffit alors de répondre aux questions. |
- | # On vous demande si vous souhaitez définir un mot de passe. On répond Oui (Y) et on le saisi par la suite. | + | |
- | # (Ne soyez pas boulet, rappelez-vous en ou notez-le !) | + | **La première question** vous demande de : |
- | # [J'utiliserai $MDPmaria-root% les fois où nous aurons besoin de le renseigner tout au long de cette documentation.] | + | * //rentrer le mot de passe actuel de root.// \\ Il n'y en a pas ! On laisse vide et on valide par ''Entrer'' du clavier. |
- | # Question suivante : supprimer les utilisateurs anonymes ? Oui (Y). | + | * //On vous demande si vous souhaitez définir un mot de passe ?// \\ On répond : <code>Oui (Y)</code> et //on le saisi à la suite.// |
- | # Interdire les connexions distantes pour root ? Oui (Y). (Il ne pourra se connecter qu'en local. | + | <note important>(**Ne soyez pas boulet**, rappelez-vous en ou mieux notez-le avec [[doc:systeme:keepassx|keepassx]] par exemple !)</note> |
- | # Si vous trouvez ça étrange, passez sur le forum ou sur le salon irc pour demander des explications.) | + | <note tip>[//J'utiliserai le mot de passe :// ''$MDPmaria-root%'' //les fois où nous aurons besoin de le renseigner tout au long de cette documentation.//]</note> |
- | # Avant-dernière question : Supprimer la base de données de test ? Oui (Y). | + | |
- | # Et dernière question : Recharger les droits ? Oui (Y). | + | **Questions suivantes :** |
- | # On se connecte à MariaDB en tapant | + | * //Supprimer les utilisateurs anonymes ?// <code>Oui (Y)</code> |
- | mysql | + | * //Interdire les connexions distantes pour root ? // <code>Oui (Y)</code> Il ne pourra alors que se connecter en local. \\ //Si vous trouvez ça étrange, passez sur le forum ou sur [[asso:salon-irc-df|le salon irc]] pour demander des explications détaillées.// |
- | # Votre prompt (début de ligne) devrait à présent apparaître sous la forme : MariaDB [(none)]> | + | **Avant-dernière question :** |
- | # Dans MariaDB on saisi les commandes suivantes : (Changer $PMAmdp% pour le mot de passe que vous souhaitez | + | * //Supprimer la base de données de test ?// <code>Oui (Y)</code> |
- | # et 'adminDB' par le nom d'utilisateur que vous souhaitez ) | + | **Et dernière question :** \\ |
- | # Attention, le point virgule ';' en fin de ligne compte ! | + | * //Recharger les droits ?// <code>Oui (Y)</code> |
- | CREATE USER 'adminDB'@'localhost' IDENTIFIED BY '$PMAmdp%'; | + | |
- | # Ce qui nous permet de créer un utilisateur MariaDB pour l'application PhpMyAdmin à venir. | + | On se connecte maintenant à MariaDB en tapant : |
- | # Puis on lui donne tous les droits. | + | <code root>mysql</code> |
- | GRANT ALL PRIVILEGES ON *.* TO 'adminDB'@'localhost' WITH GRANT OPTION; | + | * Votre prompt (début de ligne) devrait à présent apparaître sous la forme : ''MariaDB [(none)]> '' \\ Dans MariaDB on saisi les commandes suivantes : \\ (**ATTENTION !** Changer $PMAmdp% pour le mot de passe que vous souhaitez et 'adminDB' par le nom d'utilisateur que vous souhaitez ) \\ **ATTENTION !** le point virgule ';' en fin de ligne compte ! <code>CREATE USER 'adminDB'@'localhost' IDENTIFIED BY '$PMAmdp%';</code>Ce qui nous permet de créer un utilisateur MariaDB pour l'application PhpMyAdmin à venir. \\ |
- | # On "réinitialise" pour que ce soit pris en compte | + | Puis on lui donne tous les droits :<code>GRANT ALL PRIVILEGES ON *.* TO 'adminDB'@'localhost' WITH GRANT OPTION;</code> |
- | FLUSH PRIVILEGES; | + | On //réinitialise// pour que ce soit pris en compte : |
- | # Enfin, on sort de MariaDB | + | <code>FLUSH PRIVILEGES;</code> |
- | exit | + | Enfin, on sort de MariaDB : |
- | </code> | + | <code root>exit</code> |
- | <note tip>Bizarre, on a installé MariaDB mais toutes les commandes font référence à MySQL ? MariaDB garde une compatibilité maximum avec ce qui a été créé initialement pour MySQL.</note> | + | <note tip>//Bizarre, on a installé MariaDB mais toutes les commandes font référence à MySQL ?// \\ C'est simplement que **MariaDB** garde une compatibilité maximum avec ce qui a été créé initialement pour **MySQL** !</note> |
==== Installation d'un serveur web ==== | ==== Installation d'un serveur web ==== |