Cozycloud sur Fedora via Docker

Note : 
Average: 3 (1 vote)

Pour quel type de lecteur ?
Confirmé en informatique

Logos de Docker Fedora et Cozycloud

Introduction

Ces derniers jours, je me suis pas mal amusé à travailler sur mon serveur en installant deux nouvelles applications en python : Searx (qui fera peut-être l’objet d’un prochain billet) et Cozycloud.
Cozycloud est un logiciel de cloud personnel à héberger chez soi afin de pouvoir garder une totale maîtrise de ses données personnelles. Cela évite d’aller chez Google, Apple, Amazon ou encore Dropbox qui n’attendent que les gens viennent déposer leurs données chez eux. En plus de permettre d’avoir son propre espace de stockage en ligne, ce logiciel propose, via de nombreuses applications, plein d’autres fonctionnalités. On peut en effet avoir une interface pour lire ses flux RSS, regarder ses photos, lire ses courriels, synchroniser son agenda, ses contacts ou encore avoir la météo et même aller sur l’IRC. Le logiciel étant libre (forcement, sinon je n’en parlerai pas), de nombreuses applications sont à venir avec le temps.
Mais assez parlé, je vous laisse découvrir la démo du site par ici. ;-)

Pour l’installation, des packages pour Debian et Ubuntu existent, mais étant sur Fedora, il m’était impossible de l’héberger chez moi… jusqu’au jour ou l’équipe de Cozy propose une image Docker du logiciel.

Fedora proposant Docker depuis la version 21 (du moins par défaut dans la version server), je me suis donc mis dans la tête d’installer Cozycloud — qui m’a très longtemps attiré pour remplacer Owncloud — sur Fedora en passant par ce logiciel. Docker est un logiciel plutôt facile à prendre en main et il n’y a pas grand-chose à faire dessus pour faire tourner une image, surtout que la doc est déjà plus ou moins détaillée ici.
Donc, que dire ?
Bah déjà que ça fonctionne super bien, et ça c’est cool. :-) Je détaillerai tout de même l’installation avec quelques commentaires, ainsi que la conf d’Apache pour le relier à l’image, ce qui, finalement, m’a causé le plus de soucis.

L’installation

Remarque : cette doc peut s’appliquer à n’importe quel OS supportant une version de Docker supérieur à 1.0.1. Ceci-dit, si vous êtes sur Debian ou Ubuntu, passez directement par les packages prévus, c’est mieux.

Dans, un premier temps il faut démarrer le service de Docker et le lancer automatiquement à l’allumage du serveur :

# systemctl start docker.service
# systemctl enable docker.service

Si vous n’avez pas installé une version Server de Fedora, il est possible que Docker ne soit pas installé par défaut. Pour le faire, installez le package docker-io.
Information importante : si votre serveur est en 32 bits, pas la peine d’en lire plus, Docker n’est disponible que pour les machines 64 bits…

Ensuite j’ai suivi ce que disait la doc et, comme conseillé pour de la prod, j’ai construit l’image sur ma machine :

docker build -t cozy/full github.com/cozy-labs/cozy-docker

Cette étape est assez longue : elle va installer l’image qui est basée sur Ubuntu 14.04 (oui je sais, c’est moche mais pour le moment il n’y a pas d’autre solution :-/) puis configurer le tout.
Une fois cette étape terminée (environ 15–20 minutes après), l’image est installée. Il ne vous reste plus qu’à la démarrer et configurer Apache.

Pour lancer l’image, il faut taper la commande suivante :

docker run -d -p 81:80 -p 444:443 cozy/full

Remarque : afin de ne pas rentrer en conflit avec d’autres services utilisant les ports 80 (http) et 443 (https) — Apache par exemple —, il faut redéfinir deux nouveaux ports spécifiques à Cozycloud. Dans mon cas j’ai choisi le 81 et le 444.

Une fois la commande tapée et l’image lancée, vous pouvez voir la liste des images en tapant cette ligne :

 docker ps

Qui donne un résultat comme celui-ci (cliquez sur l’image pour la voir en plus grand) :

liste des images  Docker lancées

Si vous souhaitez l’arrêter, il suffit de taper la commande suivante :

docker kill container-ID

Dans mon cas, container-ID> = 25c7aa58a4ca.
D’autres options de Docker existent comme restart, cp, save ou encore info. Vous aurez la liste complète en tapant :

docker --help

Voilà, votre site est désormais en place, il ne vous reste plus qu’à le rendre accessible depuis l’extérieur.

Configuration d’Apache

Il faut déjà savoir que l’image Docker a son propre virtualhost basé sur Nginx qui force le https au site. Bien que cela puisse être vu comme positif pour « assurer la sécurité des données », je ne supporte pas trop les applications qui décident d’elles-mêmes si elles doivent être en https… Je suis un grand garçon sachant à peu près utiliser Apache et je sais faire moi-même mes redirections du http vers le https. Mais bref, passons. Ne soyez donc pas surpris si vous ne pouvez pas vous y connecter en http.

Dans la mise en route de l’image, nous avons définit deux nouveaux ports 81 et 444 pour les deux protocoles. Cette fois-ci, il faut les relier aux ports reliées au Réseau :

  • Pour le port 80 :
    <VirtualHost *:80>
    ServerName cozy.example.com
    ProxyRequests off
    proxyPreserveHost on
    ProxyPass / http://127.0.0.1:81/
    ProxyPassReverse / http://127.0.0.1:81/
    </VirtualHost>
    
  • Pour le port 443 :
    <VirtualHost *:443>
    ServerName cozy.example.com
    ProxyRequests off
    proxyPreserveHost on
    ProxyPass / https://127.0.0.1:444/
    ProxyPassReverse / https://127.0.0.1:444/
    SSLEngine On
      SSLProxyVerify none
      SSLProxyCheckPeerCN off
      SSLProxyCheckPeerName off
      SSLProxyCheckPeerExpire off
      # ces 4 lignes ne sont pas indispensables. Travaillant sur une VM de test sans certificat, j’ai dû les ajouter.
    SSLProxyEngine on
    SSLCertificateFile    /lien/certificat/votre-cert.crt
    SSLCertificateKeyFile /lien/clé/privée/votre-clé.key
    SSLCACertificateFile  /lien/ca/root.pem # seulement si vous avez une autorité de certification
    </VirtualHost>
    

Bien sûr, il faut modifier le champ ServerName pour l’adapter à votre serveur, ainsi que les destinations des fichiers SSL (certificat, clé et CA).
PS : si vous n’en avez pas, faites-les, j’ai détaillé toutes les étapes sur cet article. ;-)

Une fois votre virtualhost complété, il ne vous reste plus qu’à redémarrer Apache :

# systemctl restart httpd.service

Vous pouvez maintenant vous rendre sur le site en question. ;-)

Cozycloud en deux mots

La première page que vous allez découvrir permet de vous créer votre compte. Vous y rentrez les champs pour votre courriel, votre nom, le mot de passe ainsi que le fuseau horaire. Une fois validé vous devrez tomber sur cette page :

copie d’écran de la page d’accueil de Cozycloud

Il ne vous reste plus qu’à découvrir le logiciel et les différentes fonctionnalités qu’il propose. À chaud, comme ça, je trouve l’interface vraiment fluide et très agréable à utiliser.
En tous cas, bien qu’il soit encore jeune, ce logiciel a de longues années devant lui pour se perfectionner et se compléter. J’ai hâte de voir à quoi il ressemblera dans quelques années.
Je n’ai pas encore eu beaucoup de temps d’approfondir le logiciel et donc de proposer un retour d’expérience dessus. Peut-être qu’un jour je sortirai un nouveau billet sur ce logiciel. Juste petit bémol qui me gêne un peu, c’est qu’il ne peut y avoir qu’un seul utilisateur dessus. J’espère que la création de plusieurs comptes sera disponible un jour.

Pour mettre à jour le logiciel, il suffit de vous rendre sur l’onglet « États » puis de cliquer sur les icônes Mettre à jour ou Mettre tout à jour pour les lancer. Cependant, je ne sais pas encore comment la mise à jour de Ubuntu qui est derrière se fait.

Interface d’administration du logiciel
Interface d’administration du logiciel

Sauvegarder et restaurer l’image

Le gros avantage des conteneurs, des machines virtuelles ou des images Docker, c’est la facilité pour les sauvegarder et les restaurer. Avec Docker, il suffit de réaliser la commande suivante pour sauvegarder son image ailleurs :

docker save cozy/full > cozy-full.tar

Et pour restaurer :

docker load -i cozy-full.tar

Plus d’infos dans la doc de Docker pour save et load.

À l’avenir…

Passer par une image Docker (surtout basée sur Ubuntu…) est un peu la voie de la facilité pour installer Cozycloud sur Fedora. Cependant, il n’y a pour le moment aucun script d’installation adapté à la distribution. Casper avait déjà essayé il y a quelques mois sans succès. De mon côté, je vais essayer de voir avec les développeurs de Cozycloud si une solution est envisageable. Du coup, j’en appelle à tous les développeurs de logiciels python pour RHEL/CentOS/Fedora, s’ils sont intéressés par ce logiciel, de venir participer pour aider à adapter Cozycloud à Fedora. Vous trouverez par ailleurs les sources du logiciel ici. Merci à vous. ;-)

Sources et remerciements

Au niveau des sites Web, je n’ai eu qu’à visiter le site https://cozy.io qui est très complet et en français.
Les personnes sur le channel IRC — #cozycloud sur irc.freenode.net — du projet m’ont pas mal aidé sur les problèmes d’Apache au niveau du proxy, un grand merci à eux. :-)

Catégorie: 

Ajouter un commentaire

S'abonner à Comments for "Cozycloud sur Fedora via Docker"