Apportez votre aide…
Ceci est une ancienne révision du document !
Cozycloud
Cozycloud est votre serveur de cloud personnel libre. A la différence des autres serveurs cloud personnels auto-hébergeables, Cozy met l'accent sur les applications et la collaborations de ces applications autour de vos données personnelles. Cozy est une solution de PaaS (Platform as a Service) personnel qui vous permet de déployez des applications web personnels en un clic. Il ne s'agit pas là de simples plugins mais d'applications web riches. Vous pouvez choisir parmi les applications Cozy existantes (Notes, Todos, Agenda, Contacts, Photos…), adapter une application Node.js existante ou commencer votre propre application web « from-scratch »(documentation et tutoriaux disponibles).
Une particularité de Cozy est la centralisation du stockage des différentes applications dans une base de données commune avec des données typé et un contrôle des accès par type de donnée. De cette manière les différentes applications travaillent avec la même source de données(contacts, mails, notes…). Cozycloud est pour le moment centré sur Node.js mais le support d'applications Python et Ruby est prévu.
Installation
Pré-requis
L'installation a été testée sur Ubuntu 12.04 LTS.
L'installation est réalisée grâce à une librairie Python de provisioning, Fabric, que vous devez installer sur votre machine.
apt-get install python python-pip sudo pip install fabric fabtools
Installation depuis un script
L'installation de Cozycloud se réalise avec la ligne suivante :
curl http://cozy.io/install_cozy.sh | HOST=root@ip sh
La plateforme Cozycloud est constituée de plusieurs logiciels qui seront automatiquement installés et configurés par le script :
- NodeJS (environnement d'exécution principale de la plateforme et des applications)
- Supervisor (daemonizer)
- CouchDB (la base de données)
- Redis (utiliser pour le pub/sub)
- Postifx (pour envoyer des mails)
- Whoosh (indexer Python de la base de données)
- Nginx (reverse proxy et gestion d'HTTPS)
Ainsi qu'un ensemble d'applications NodeJS nécessaire au bon fonctionnement de la plateforme :
- Data-System (gère la persistance et les autorisations des applications à accéder aux données : CouchDB + indexer + système de fichier)
- Cozy-Contoller (basé sur Haibu, c'est la brique "PaaS" de Cozy)
- Cozy-Monitor (outil d'administration en ligne de commande de Cozy)
- Cozy-Proxy et Cozy-Home (permettent l'installation d'apps et la navigation dans la plateforme)
Pour les curieux, vous pouvez consulter le code source du script d'installation sur le dépôt Github de l'installeur.
Installation manuelle
La documentation de Cozycloud détaille les étapes à effectuer pour installer manuellement la plateforme.
Utilisation
Une fois l'installation terminée, rendez-vous à l'adresse à laquelle vous avez installé Cozy avec votre navigateur en utilisant le protocole HTTPS.
Comme c'est votre première connexion, vous devrez enregistrer votre compte (email et mot de passe).
Vous arriverez alors sur la page d'accueil de Cozy qui affiche les différentes applications installées. Le fonctionnement est similaire à celui d'un smartphone : vous allez dans le "marketplace" (onglet "+Apps") et installer les applications déjà existantes ou bien les votre (si elles sont sur un dépôt github).
Développer une application pour Cozy
Le développement d'application pour Cozycloud est un aspect à part entière mais qui mérite d'être mentionné : Cozy est un PaaS ce qui signifie que le développement d'une application ne dépend pas d'un SDK (comme c'est le cas d'une application Android ou iPhone par exemple). Vous créez une application web comme vous en avez l'habitude (ou presque) et vous pourrez la déployer dans Cozy ou n'importe où ailleurs !
Les principales contraintes sont :
- développement backend en NodeJS (support de Python et Ruby prévu à moyen terme)
- utilisation du "Data-System" pour la persistance (Cozy propose un driver d'un ORM existant, JugglingDB, ce qui facilite l'exécution hors Cozy des apps)
Les principaux avantages sont :
- vous développez globalement (cf contraintes ci-dessus) comme vous en avez l'habitude
- vous ne gérez pas l'authentification
- déploiement en quelques clics (via un dépôt public github seulement pour l'instant)
- environnement de développement intégré à une machine virtuelle prête à l'emploi
La documentation propose plusieurs ressources (en anglais) pour développer des applications.
Désinstallation
Pour désinstaller la plateforme, il suffit à nouveau d'exécuter un script :
curl http://cozy.io/uninstall_cozy.sh | HOST=root@ip:port sh
Comme le site le dit bien : "you will stay because you can leave" !
Voir aussi
- La documentation officielle (en anglais)
- Le site de l'entreprise qui porte le projet (propose l'hébergement de Cozy)
Crédits: Julien d'idealogeek pour son tutoriel dont s'inspire cette page.