Bonjour tout le monde,
Aujourd’hui je viens vers vous avec un nouveau projet qui répond au doux nom de Cozy Light. L’idée est venu de le créer en constatant trois choses. Premièrement, les diverses solutions d’auto-hébergement sont souvent trop lourdes pour les petits hardwares tels que le Raspberry Pi. Deuxièmement leur installation est souvent trop complexe (il faut souvent se rabattre sur une “image”). Et enfin la manière de contribuer au code n’est pas toujours évidente.
En bref, quand on veut s’auto-héberger, même une simple configuration de Nginx peut s’avérer rebutante surtout quand une fois arrivé au but on se rend compte que ça mouline sévère sur notre Pi.
Et c’est là qu’arrive Cozy Light qui permet de gérer son infrastructure perso comme un assemblage de lego. On part d’une plateforme minimaliste (1000 lignes de codes en JS) qui s’installe en deux lignes de commandes. Ensuite on ajoute les plugins dont on a besoin pour réaliser les actions souhaitées comme déployer un blog ou associer un nom de domaine à une app. De cette manière on peut donner différents visages à sa machine et en faire un cloud personnel, une console de jeu vidéo HTML5 ou même un serveur pour son site web et son blog. Cozy Light supporte par défaut des applications Node.js avec des bases de données embarqués. Pour les applications plus évoluées il faudra passer par Docker.
Voici un exemple pour le déploiement d’un site statique et d’un moteur de blog :
# Installation (pour Ubuntu 14.04)
sudo apt-get install git npm nodejs-legacy
sudo npm install cozy-light -g
# Configuration des plugins
cozy-light add-plugin cozy-labs/cozy-light-html5-apps # pour déployer le site web statique
cozy-light add-plugin cozy-labs/cozy-light-docker # pour déployer le blog
cozy-light add-plugin cozy-labs/cozy-light-domains
# Installation du site web statique
cozy-light install monutilisateurgithub/monsite
# Installation du moteur de blog Ghost
cozy-light install-docker frankrousseau/ghost # Un manifeste spécifique est requis pour les apps Cozy Light.
# Configuration des domaines
cozy-light link-domain monsiteweb.fr monutilisateurgithub/monsite
cozy-light link-domain www.monsiteweb.fr monutilisateurgithub/monsite
cozy-light link-domain blog.monsiteweb.fr frankrousseau/ghost
# Démarrage de la plateforme sur le port 80 (attention aux droits)
cozy-light start --port 80
Et voilà si vous avez fait les redirections qui vont bien, le blog Ghost est accessible sur blog.monsiteweb.fr et votre site sur monsiteweb.fr !
Deuxième exemple : le cloud personnel
# Configuration des plugins
cozy-light add-plugin cozy-labs/cozy-light-auth
# Installation des applications
cozy-light install cozy-labs/calendar
cozy-light install cozy-labs/files
cozy-light install cozy-labs/contacts
# Mise en place de l'authentification
cozy-light add-plugin cozy-labs/cozy-light-basic-auth
cozy-light set-password # affiche un prompt masqué pour récupérer le password
# Configuration des domaines
cozy-light link-domain calendrier.monsiteweb.fr cozy-labs/calendar
cozy-light link-domain fichiers.monsiteweb.fr cozy-labs/files
cozy-light link-domain contacts.monsiteweb.fr cozy-labs/contacts
# Démarrage de la plateforme sur le port 80 (attention aux droits)
cozy-light start --port 80
Et voilà nos trois apps sont accessibles via un joli nom de domaine !
Comme je le mentionnais au début, il est facile de contribuer en code à la plateforme grâce à l’architecture en greffons. Certains font à peine trente lignes de codes et apporte des fonctionnalités intéressantes. J’ai même pu en faire un en moins d’une heure ! Déjà deux contributeurs sont venus nous aider (merci particulièrement à boiteaspam pour son code). Si vous n’avez pas trop le temps et que vous aimez le projet n’hésitez pas à mettre une étoile sur le dépôt ou à en parler autour de vous.
Et pour finir voici deux liens :