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)
- 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.
Troubleshooting
Si vous rencontrez un problème lors de l'installation, il s'agit peut-être d'un problème connu en cours de résolution. Vous pouvez consulter la page d'aide dédiée sur leur wiki.
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 principaux avantages sont :
- vous démarrez rapidement votre web application: pas besoin de passer deux weekends à configurer votre framework, la base de données et le déploiement
- cela reste une web app classique vous pouvez donc réutiliser l'application dans un autre contexte.
- vous pouvez partager facilement votre application avec d'autres utilisateurs Cozy
- vous ne gérez pas l'authentification
- déploiement en quelques clics ou une ligne de commande (via un dépôt public git en ligne seulement pour l'instant)
- environnement de développement intégré à une machine virtuelle prête à l'emploi
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)
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.