Cozy Light une micro PaaS pour s'initier à l'auto-hébergement en gérant des apps Node.js, HTML5 et des containers Docker

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 :

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s