Installer un Nextcloud sur un SimpleHosting de Gandi, de A à Z


sept. 22 2017

C'est quoi Nextcloud ?

Nextcloud est un logiciel qui permet de faire la même chose que Google Drive, Dropbox et consorts. À la différence qu'il est installable par tout un chacun, afin d'éviter le phénomène de « silo de données » et la confiscation de nos données par des entreprises qui ne rêvent que d'une chose : faire de l'argent avec. Il propose, tout comme ses concurrents, un système de sychronisation qui permet de retrouver ses fichiers partout où on veut. Voilà ce qu'on va installer.

C'est qui Gandi ?

Gandi est une entreprise qui, parmi plein d'autres choses, nous permettra d'héberger notre Nextcloud, de façon à ce qu'il soit accessible de partout. Il existe plein d'autres entreprises qui font la même chose : OVH, Online, Amazon (avec ses Webservices), 1&1, etc. Alors pourquoi choisir celui-ci ? Déjà parce que Gandi est également un registrar, c'est à dire qu'il nous permettra d'enregistrer un nom de domaine (ici, par exemple, leboeuf.me), ce qui nous garantira un accès pratique à notre hébergement (et on pourra faire plein de choses grâce à ce nom de domaine, notamment héberger ses mails). Je détaille toutes les opérations par la suite, pas de panique. Certains de ses concurrents le font aussi, alors répétons la question : pourquoi Gandi ? Parce que Gandi a été fondée avec des idéaux, par des gens que j'estime beaucoup, comme Laurent Chemla, et que contrairement à d'autres, ils ne se tapent pas une réputation sulfureuse sur pas mal de points (Roubaix, si tu me lis). Gandi est un peu plus cher que les autres, mais la qualité, ça se paie (et vous allez voir que ça ne coûte pas grand chose quand même).

Après, si vous avez déjà un nom de domaine et un hébergement ailleurs dont vous êtes satisfaits, tant mieux, mais vous n'êtes pas au bon endroit.

Phase 1 : le nom de domaine

Rendez-vous sur Le site de Gandi. Ils sont en cours de migration vers une nouvelle interface d'administration, alors autant l'utiliser tout de suite. Allez sur « Votre compte » en haut à droite et créez-vous un compte. Quand c'est fait, connectez-vous.

Sur votre tableau de bord, dans le menu de gauche, cliquer sur « Domaines », « Acheter ».

Le menu du tableau de bord

Si vous en avez déjà un que vous avez acheté ailleurs, vous pouvez le transférer chez Gandi. Ce n'est pas obligatoire, mais je pars du principe que c'est le cas pour le reste du tuto. Cherchez un nom de domaine qui vous plait. Si vous êtes citoyen·ne européen·ne, vous pouvez utiliser tous les TLD (les .fr, .com, etc) gérés par l'AFNIC (.fr, .re, .wf, etc) ainsi que de la plupart des autres pays européens (le .me par exemple, que j'utilise, est celui du Montenegro). Gandi vous prévient quand il existe certaines restrictions de toute façon.

Comme vous pouvez le voir, le prix varie beaucoup selon les TLD, donc faites votre choix. Le site est on ne peut plus limpide, pas la peine de vous montrer comment payer.

Une fois le paiement fait, revenez sur votre tableau de bord et dans « Domaines ». Votre domaine nouvellement acquis devrait apparaître.

Phase 2 : le SimpleHosting

Acheter le SimpleHosting

Cette offre de Gandi est, je trouve, très bien : on a un espace de stockage très correct (20 Go minimum), du HTTPS presque partout, des bases de données illimitées, et un volume de traffic largement suffisant. Encore une fois, c'est plus cher que les offre à 2 € / mois de certains, mais on sait aussi pourquoi c'est aussi peu cher ailleurs… On clique donc sur le bouton « Créer »

Pour Nextcloud, on va avoir besoin de PHP version 7 et MySQL (ou PostGreSQL mais je fais avec le premier, par habitude). Vous pouvez choisir soit le Luxembourg soit la France pour la localisation de vos données. À vous de voir. Perso j'ai adopté pour le Luxembourg, parce qu'il y a quelques lois en France qui ne me plaisent pas. Maintenant, je ne connais pas la loi luxembourgeoise, donc bon…

Pour la taille, je vous conseille de prendre le Small+ SSL, tout simplement car on va se connecter avec identifiant + mot de passe à notre Nextcloud, et que sans HTTPS ces identifiants sont envoyés « à poil » sur le réseau, et n'importe qui peut les intercepter.

Voici donc le résultat de nos choix.

Les choix de config du serveur

Il ne reste donc plus qu'à choisir un nom pour l'instance. ATTENTION ne faites pas comme moi, gardez à l'esprit que c'est le nom de votre serveur, pas uniquement de votre Nextcloud. Ainsi, si vous hébergez d'autres services par la suite, ils seront sûrement sur la même instance. Par exemple, à la base, j'ai pris un SimpleHosting pour héberger des photos. J'ai donc appelé mon instance gallery. Instance qui désormais contient aussi mon Nextcloud et ce blog. Bon, ça n'a pas d'importance en soi, mais si vous êtes maniaque, ça va vous perturber. Et pour l'instant, on ne peut pas renommer une instance, bien que ça viendra sûrement quand l'interface v5 sera terminée.

Choisissez un mot de passe, vous pouvez rajouter de l'espace disque supplémentaire si vous en avez le besoin (perso 20 Go me suffisent largement) et si vous êtes riche, puis ajoutez au panier. Payez de la même manière qu'avant.

Créer un « site »

De retour dans le tableau de bord et dans SimpleHosting, vous devriez avoir à présent une instance qui apparaît dans la liste. Cliquez dessus. Puis allez dans Sites, puis Créer.

Le menu « Sites »

On vous demande une adresse. Moi, par exemple, j'ai choisi « cloud.leboeuf.me », mais vous êtes libre de faire comme vous voulez, du moment que vous utilisez le nom de domaine que vous avez acheté plus tôt. Pour les besoins du tuto, je vais créer un site « test.leboeuf.me ». Partout où je mettrai cette adresse, vous devrez la remplacer par la votre.

Une fois le site créé, il faut être un peu patient. Il y a une « checklist » de chose à vérifier à vérifier (d'où le nom). Normalement, on doit vous parler des DNS. Cliquez simplement sur « Mettre à jour les entrées DNS ». Si ça ne fonctionne pas tout de suite, attendez 2 minutes.

Ici, on arrive à un point que je ne maîtrise pas : comme j'avais mon nom de domaine avant l'interface v5, je ne sais pas comment ça se passe pour les DNS quand on achète un nom de domaine sur la v5. Moi j'ai du transférer mes DNS de « Gandi » vers « LiveDNS » (c'est toujours Gandi qui gère, mais c'est une tambouille différente). Donc je vais partir du principe qu'il n'y a pas cette migration à faire. Au pire ce n'est pas très compliqué, on vous demande de cliquer sur un liens « migrer vers LiveDNS » puis sur au bouton.

Normalement, maintenant tous les éléments doivent être validés. Nous n'avons pas encore de certificat SSL (pour HTTPS) mais ça va venir. Pour le moment, on va installer Nextcloud.

Phase 3 : l'installation de Nextcloud

Récupérer le script d'installation.

Comme nous sommes sur un hébergement mutualisé (on ne contrôle pas directement le serveur), il faut ruser. On ne peut pas juste copier les fichiers de l'installation « classique ». On va donc récupérer un script qui va télécharger tout seul tout Nextcloud sur notre serveur. Le script est ici (clic droit -> enregistrer la cible du lien sous). Si jamais vous le cherchez plus tard, il est ici, onglet « Web Installer » en bas.

Envoyer le script sur le serveur

Pour envoyer des fichier sur un serveur, on va utiliser Filezilla. Pour Windows et Mac, c'est par ici (la bonne version pour votre système d'exploitation devrait vous être proposée automatiquement), pour Linux je vous conseille d'utiliser votre gestionnaire de paquets, selon votre distribution : apt-get install filezilla, ou yum -y install filezilla.

Une fois installé, lancez-le.

Il va falloir rentrer les informations de connexion fournies par Gandi. Elles se trouvent dans l'onglet Sites, que vous n'avez normalement pas quitté. Voici comment les remplir :

  • Hôte : la ligne « Serveur » chez Gandi (exemple : sftp.dc2.gpaas.net)
  • Identifiant : le numéro en face de « Utilisateur »
  • Mot de passe : comme indiqué par l'interface de Gandi, c'est celui de votre instance que vous avez choisi au début.
  • Port : 22

Et ça devrait marcher. Vous devriez voir ceci dans la zone en bas à droite.

Fenêtre de Filezilla

Allez dans le dossier vhosts. Il devrait y avoir un dossier au nom de votre site (pour moi je rappelle : test.leboeuf.me). Allez dedans puis dans htdocs. Ici se trouve un simple fichier HTML. Si vous allez, via votre navigateur, sur votre site, vous devriez avoir ceci.

L'index.html par défaut

Maintenant, dans Filezilla, dans la partie gauche, cherchez le script setup_nextcloud.php que vous avez téléchargé, et glissez le à côté du index.html. Patientez quelques secondes. Votre fichier apparaît à droite. Il est sur le serveur !

Déplacement du fichier de setup sur le serveur

Préparer la base de données

Avant de le lancer, on va juste préparer la base de données. En effet, il faut créer une base appelée « nextcloud » (ou autre, mais ne cherchons pas trop compliqué) pour qu'il s'y retrouve.

Revenez dans votre instance, onglet « Base de données » cette fois, et cliquez sur « Aller à phpMyAdmin ». Encore une fois, si vous avez choisi PostGreSQL, vous assumez.

Pour accéder à phpMyAdmin

On vous demande des identifiants, ce sont toujours les mêmes : ceux de l'instance. Ensuite, phpMyAdmin vous demande de vous identifier. Par défaut, et comme c'est indiqué sur l'image, l'utilisateur est « root » et le mot de passe est vide. On va changer ça, niveau sécurité c'est pas top.

En passant, changez la langue, mettez en français.

Allez dans « Comptes utilisateurs », puis cliquez sur le lien « Éditer les privilèges » de « root », puis « Modifier le mot de passe », mettez un mot de passe (2 fois) puis cliquez à droite sur « Exécuter ». Bien, notre interface d'administration est sécurisée.

Pour changer le mot de passe de root

Revenez dans l'onglet « Bases de données », et dans « création d'une base de données », appelez-la « nextcloud », puis « Créer ». Ici, comme j'ai déjà une telle base et que j'ai pas envie de tout casser, je vais l'appeler « nextcloud2 »

On en a fini avec phpMyAdmin, vous voyez, c'était pas si terrible ! Revenons à Nextcloud.

Installer Nextcloud

Dans votre navigateur, allez sur votre site, rappelez vous, ça :

Ajoutez /setup-nextcloud.php à la fin de l'adresse. Vous obtiendrez ceci :

Installation de Nextcloud

Cliquez sur « Next ». Il vérifie qu'il a tout ce dont il a besoin (php, MySQL, etc). Comme l'hébergement est fourni clé-en-main, ça ne posera pas de soucis. Il vous demande si vous voulez le mettre dans un sous-répertoire, pour faire ceci donc : test.leboeuf.me/nextcloud. Comme on a déjà créé un sous-domaine pour ça, ça ne me semble pas nécessaire. On va donc juste laisser un point, et on clique sur « Next »

Installation de Nextcloud

Il fait ses bricoles, puis vous informe qu'il est installé \o/

Installation de Nextcloud

Cliquez sur « Next ». Créez un compte avec un couple utilisateur / mot de passe (oui, la connexion n'est pas sécurisée. Si ça ne vous plait pas, allez à la partie HTTPS et revenez créer le compte après).

Installation de Nextcloud

Déroulez le petit menu « Stockage et base de données ». En effet, par défaut, il va utiliser SQLite, qui ne nécessite aucune installation particulière, mais dont les performances sont désastreuses.

Sélectionnez donc MySQL/MariaDB, entrez les identifiants root de la base de données (ce que vous avez fait dans phpMyAdmin, mettez également le nom de votre base de données (pour vous, ça devrait être juste « nextcloud », pour rappel), puis cliquez sur « Terminer l'installation »

On laisse mouliner…

Et tadaaaam \o/

Installation de Nextcloud

Phase 4 : Sécurisons tout ça avec du HTTPS

Générer le certificat

Pour le moment, vos connexions à votre Nextcloud se font en clair, ce qu'on ne veut surtout pas. Gandi propose des certificats gratuits, alors autant en profiter.

Revenez sur votre tableau de bord, onglet « Certificats SSL » et cliquez sur « Buy » (oui là c'est en anglais, c'est la beta). Sélectionnez « sure un instance Gandi SimpleHosting », puis « Gratuit » (faites Suivant à chaque fois, bien sûr).

Activation du certificat

On vous demande le nom à protéger. Mettez votre instance Nextcloud, donc dans mon cas : « test.leboeuf.me », puis « Ajouter au panier ». Cochez les conditions de contrat du certificat, et payez, Vous voyez, c'est gratuit. Revenez au tableau de bord.

Entre temps, vous allez recevoir des mails sur votre boîte mail de contact que vous avez renseignée à l'inscription.

Avant d'aller plus loin, on va avoir besoin d'accéder à la boîte mail associée au nom de domaine. C'est nécessaire pour obtenir le certificat. Allez donc dans l'onglet « Domaines », cliquez sur votre domaine, puis « Boîtes Mail ». Vous allez devoir créer une boîte mail (ou une redirection) nommée « admin@votre-nom-de-domaine.tld ». Moi par exemple c'est « admin@leboeuf.me ». C'est obligatoire pour l'émission du certificat.

Faites donc « Créer » (ou allez dans « redirections »), et créez une boîte en « admin@ ».

Activation du certificat

Revenez dans les certificats SSL dans votre tableau de bord. La création est en attente,

Activation du certificat

Soyez un peu patient·e (comptez 5 minutes), votre certificat devrait être validé, et vous avez reçu un mail. Dans les 2 minutes qui suivent, essayez de vous connecter à votre site en https (https://test.leboeuf.me pour moi), ça marche !

Sauf que votre site est encore accessible en http, et qu'il est même par défaut accessible en http. Il nous reste donc un dernier réglage à faire.

Forcer HTTPS

Revenez dans Filezilla (il se déconnecte un peu tout seul, c'est normal) et actualisez la fenêtre de droite avec F5. Vous devriez avoir ceci.

Activation du certificat

Repérez le fichier .htaccess. Double-cliquez dessus pour le télécharger, puis ouvrez-le avec un éditeur de texte basique (le Bloc-Notes sous Windows fait très bien l'affaire). Ne vous préoccupez pas du contenu, rajoutez simplement tout à la fin les lignes suivantes :

RewriteEngine on
RewriteCond %{REQUEST_SCHEME} =http
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Energistrez le fichier puis, dans Filezilla, ernvoyez-le sur le serveur. Acceptez de remplacer le fichier existant, puis réessayez d'accéder à votre site sans « https:// » devant. Vous êtes automatiquement redirigé·e vers le https \o/

Phase 5 : les logiciels clients

Maintenant que vous avez a un serveur qui roule, il ne vous reste plus qu'à télécharger le logiciel à installer sur vos machines pour synchroniser vos fichiers automatiquement.

Pour Linux

Personnellement j'ai une Linux Mint, et les commandes suivantes fonctionnent du coup aussi pour Ubuntu. Dans un terminal tapez :

sudo add-apt-repository ppa:nextcloud-devs/client sudo apt update sudo apt install nextcloud-client

Pour les autres Linux, je ne sais pas. Il y a une AppImage sur le site officiel, mais pas testé

Pour Windows et Mac

L'installeur est simplement disponible sur le site (ici pour Mac)

Sur Mobile

Je ne l'ai pas mis sur mon téléphone, mais il y a des applications sur le Google Store, sur le store de F-Droid et l'AppStore (démerdez-vous pour lui, j'ai pas trouvé de lien direct, apparemment il faut passer par iTunes.).

Configuration

Lancez le client.

Il vous demande l'adresse du serveur. Pour moi ce sera donc test.leboeuf.me

Installation du client

Il demande ensuite les identifiants qu'on lui a donnés à l'installation du serveur. Les options sont assez claires, vous pouvez lui demander des confirmations en fonction de la taille des fichiers (si votre connexion est un peu faiblarde, il faut y penser), si vous voulez sychroniser l'entièreté du serveur, ou pas, et quel dossier sur votre machine vous voulez utiliser pour stocker les fichiers.

Installation du client

Une fois votre choix fait, cliquez sur Connexion, puis Finish. On a terminé !

Ceci conclut ce finalement assez long tuto sur l'installation de Nextcloud sur un SimpleHosting de Gandi, ainsi que le premier billet de ce blog.

Edit : ajouts à l'article

Ajout du chiffrement des données côté serveur

On m'a fait remarquer qu'il manquait une partie sur le chiffrement des données stockées sur le serveur. Pour rappel, cela empêche quiconque, et notamment l'hébergeur (et tous ceux qui pourraient le contraindre à regarder) de voir ce que vous stockez dans votre Nextcloud.

C'est très rapide et très facile. Il suffit de cliquer sur votre nom d'utilisateur en haut à droite et de choisir « Admin ».

Bouton pour la zone admin

Puis, dans le menu « Encryption», de cocher la case « Enable server-side encryption ». Et c'est tout !

Mettre à jour Nextcloud

Un autre ajout qu'il manque est la mise à jour. Encore une fois c'est très simple. Dès qu'une mise à jour est disponible, vous êtes notifié·e par ce message en haut.

Mise à jour

Allez dans la partie « Admin » comme montré avant. Sur la page d'accueil cliquez sur le bouton « Open Updater ».

Mise à jour

Note : on restera avec la version « stable », ne soyons pas trop fifous non plus

Puis cliquez sur « Start update ».

Mise à jour

L'updater va créer une sauvegarde au cas où ça ne fonctionne pas, ça prend un peu de temps, selon la quantité de données stockées. Laissez-le terminer ses opérations.

Ensuite, comme ne va pas faire mumuse avec la ligne de commande, on choisit « No ».

Mise à jour

Cliquez sur le dernier lien qui vous ramène vers votre Nextcloud, puis cliquez sur « Démarrer la mise à jour ». Patientez.

Mise à jour

C'est terminé :)