Journal Host@home : faciliter l'auto-hébergement

47
27
avr.
2014

On vous dit que google conserve vos données, que facebook les communique à des tiers. Vous vous sentez concernés par les articles parlant de vie privée. Alors ça y est, c'est décidé, vous ne dépendrez plus de sociétés tierces pour héberger vos courriels, pour échanger des fichiers avec vos contacts… Vous allez vous auto-héberger.

Super.

Euh, par contre, comment on fait? Entre le nom de domaine à louer, la machine à choisir en tant que serveur, les lignes de commandes à se farcir… Pas facile.

Il est clair que l'auto-hébergement n'est pas à la portée de tous à l'heure actuelle.

Bien sûr, il existe YUNoHost qui est excellent, mais il ne vous convient pas totalement car :

  • Il installe des services quand même assez lourds pour votre serveur qui a du mal à fournir (ancienne machine récupérée, ou un raspberry pi pour petit budgets)
  • Les services proposés ne sont pas ceux que vous souhaitez utiliser.
  • Vous souhaitez installer automatiquement les mêmes services sur plusieurs serveurs sans avoir à tout reconfigurer à la main à chaque fois.

Peut-être alors serez-vous plus satisfaits par le script host@home.

Ce que host@home fait

Host@home se présente sous la forme d'un script shell pour debian, vous proposant plusieurs tâches à accomplir. Ces tâches sont diverses, il s'agit en majorité d'installation de services web, choisis pour leur légèreté et leur simplicité.

aperçu de host@home

Une fois que vous avez sélectionné ces tâches, le script pose quelques questions sur le nom de domaine, le dossier où enregistrer les services de façon relativement guidée. Puis il installe le tout, en vous proposant à la fin un fichier RAPPORT vous permettant de finaliser la configuration du serveur.

De plus, vous pouvez ne pas passer par ce questionnaire. Pour automatiser l'installation, vous pouvez donner un fichier de configuration au script sous forme de tâches à réaliser.

Ce qu'il ne fait pas :

  • Il n'installe pas debian pour vous
  • Il ne se charge pas de la location de nom de domaine
  • Il ne configure pas (encore?) le pare-feu
  • Il n'est pas traduit dans d'autres langues que le français
  • Il ne fait pas le café

 Services actuellement proposés

  • un site web via http et/ou https (nginx).
  • Un serveur de partage de fichiers avec sftp
  • Installation de owncloud.
  • Installation de Pydio anciennement Ajaxplorer, pour l'hébergement de fichiers
  • Un serveur de courriel
  • Un webmail, pour consulter son courrier via navigateur (squirrelmail ou rainloop)
  • Un serveur xmpp (jabber) avec prosody
  • Installation de dropcenter pour partager les fichiers
  • Installation de pluxml un moteur de blog/CMS.
  • Installation de blogoText un moteur de blog léger.
  • Installation de Kriss un lecteur de flux rss très simple.
  • Installation d'un relais tor pour rendre le réseau plus rapide.
  • Installation de wallabag pour sauver des pages à lire plus tard.
  • Installation de pico, un CMS très simple + son éditeur en ligne.
  • Installation de wallabag pour sauver des pages à lire plus tard.
  • Installation de jyraphe, pour déposer des fichiers trop lourds à envoyer par mail, et donner le lien de téléchargement à un ami.
  • Installation de forums (NoNonsenseForum un forum minimaliste, FluxBB, phpBB)
  • Installation de Shaarli le delicious-like de sebsauvage
  • Installation de ZeroBin, le pastebin de sebsauvage.
  • Installation d'une seedbox torrent (rtorrent et rutorrent)
  • Installation de wikis comme DokuWiki ou MediaWiki

 À l'avenir

  • Le script a besoin d'être testé,
  • Le script doit pouvoir être plus sûr grâce aux retours de ces tests,
  • Le script ne contient pas de quoi satisfaire tout le monde : des contributeurs sont nécessaires pour suggérer (voire développer) l'installation d'autres services,
  • Bien que les services plus élaborés et compliqués soient faciles à installer pour des gens aguerris, peut-être sera-t-il pertinent d'en supporter les plus connus?
  • Proposer une interface d'administration du serveur (un peu comme le fait déjà YUNoHost, pour ajouter facilement des utilisateurs (et donc des adresses mail)…
  • Pour le reste, voir les idées dans le fichier TODO.

À vous de jouer

Les contributions sont plus que bienvenues.

N'hésitez pas à discuter du projet sur la liste de diffusion, et à demander un compte pour pouvoir faire vos premiers commits.

  • # l'intention est louable

    Posté par  (site web personnel) . Évalué à 5. Dernière modification le 27 avril 2014 à 20:22.

    Cela va rendre service à plein de gens. Un grand merci pour ce projet.

    Mais perso je vois plusieurs problèmes:
    - debian uniquement
    - pas super évolutif / toute l'intelligence est dans un seul script
    - language bash

    Pourquoi réinventer la roue quand on a aujourd'hui des outils comme saltstack (ou d'autres comme ansible que je connais moins) qui permettent de faire tout cela?
    Quelques exemples de configurations: https://github.com/saltstack-formulas
    Un exemple avec nginx: https://github.com/saltstack-formulas/nginx-formula

    Alors bien sûr c'est peut-être moins facile à appréhender qu'un script bash à lancer, mais on peut imaginer un projet qui fait l'enrobage de l'installation de salt à l'ajout des formulas.

    D'ailleurs au lieu de parler, je devrais déja être en train de coder.

    • [^] # Re: l'intention est louable

      Posté par  (site web personnel) . Évalué à 3.

      J'ai eu la même réaction.
      À vrai dire, je bosse (lentement, certes) sur un projet relativement similaire pour chez moi.
      Mais je ne suis pas parti dans la même direction. Je génère la configuration complète du réseau local (je pars sur au moins un serveur et plusieurs machines clientes), ainsi que les certificats liés.
      Ensuite, tout se fait via un script Python+Fabrics, pour lancer un serveur DHCP/BootP/TFTPD (qui permet d'installer automatiquement les OS) et ensuite installer les différents services.

      • [^] # Re: l'intention est louable

        Posté par  . Évalué à 3.

        Python+Fabrics

        Ça c'est un détail fabric ne propose pas une très grosse abstraction (contrairement à d'autres).

        Par contre je n'ai pas compris ton prédicat de départ.

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

    • [^] # Re: l'intention est louable

      Posté par  . Évalué à 4.

      Pourquoi réinventer la roue quand on a aujourd'hui des outils comme saltstack (ou d'autres comme ansible que je connais moins) qui permettent de faire tout cela?

      La plupart sont vraiment fait pour une architecture avec pleins de serveurs plutôt que de l'auto-hébergement, de ce que je connais pour avoir un truc simple (= qui ne fait pas trop de choses pour juste un serveur), il y a fabric et ansible. fabric apporte relativement peu de choses, mais ansible par contre peu être une bonne idée (je ne l'ai pas vraiment essayé).

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

      • [^] # Re: l'intention est louable

        Posté par  . Évalué à 2. Dernière modification le 28 avril 2014 à 00:05.

        Je suis d'accord. Une recette ansible/salt/whatever me parait plus… simple, rigoureux et reproductible. Et maintenable. Sinon un containeur docker est aussi envisageable.

        Après, l'intention est clairement louable, c'est vraiment sympa comme projet.

        • [^] # Re: l'intention est louable

          Posté par  . Évalué à 3.

          Sinon un containeur docker est aussi envisageable.

          Docker est vraiment sympa, je commence à m'en servir depuis 2 semaines au boulot, j'ai encore un peu de mal à comprendre certaines choses (gestion des images, des repo,…), mais c'est vraiment sympa est simple d'utilisation.

          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

    • [^] # Re: l'intention est louable

      Posté par  . Évalué à 10.

      Mais perso je vois plusieurs problèmes:
      - debian uniquement

      Ça n'est pas un problème, bordel!
      Si ça marche comme il est attendu, pourquoi voudrais-tu un support sur Fedora/CentOS/Archlinux/Emmaubuntu?

      Remercions déjà ces gars de ne pas avoir pondu une nème distro. _-

      • [^] # Re: l'intention est louable

        Posté par  (site web personnel) . Évalué à 2. Dernière modification le 28 avril 2014 à 00:49.

        Je suis d'accord sur le fait que si tu veux simplifier un truc c'est mieux de ne pas donner le choix. Et en l'occurrence, je pense que debian est une très bonne distribution pour ce projet.

        Le "debian uniquement" c'était plus en rapport avec ce que j'ai dit par la suite : ne pas réinventer la roue et utiliser des outils dont le language est agnostique par rapport à l'OS.

        • [^] # Re: l'intention est louable

          Posté par  . Évalué à 4.

          Le "debian uniquement" c'était plus en rapport avec ce que j'ai dit par la suite : ne pas réinventer la roue et utiliser des outils dont le language est agnostique par rapport à l'OS.

          Il n'y en pas des masses, cfengine principalement, mais ça demande encore une paire de deamons en plus sur le serveur là où pour des actions aussi simples avoir une petite couches d'abstraction en shell n'est pas très compliqué. Là où il pourrait y avoir un gain, c'est par exemple dans le templating des fichiers de conf', mais Host@home a déjà une méthode de templating basique (de moi ! ^^).

          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

    • [^] # Re: l'intention est louable

      Posté par  (site web personnel) . Évalué à 3.

      • debian uniquement : en effet. Cela dit tel qu'est le script cela me semble assez simple de le proposer pour d'autres distros. On teste sur quelle distrib on est, et selon les cas on remplace apt-get par pacman ou autre gestionnaire qui va bien. Non, vraiment, ce n'est pas le plus difficile. Mais quelle distro utiliser sur un serveur à part debian ou une BSD?

      • À propos des outils comme salt : Ce sont des outils pour profesionnels, et effectivement ils font les choses très bien. Le script host@home est avant tout destiné à des utilisateurs débutants avec linux souhaitant s'héberger. Alors oui le script permet de reproduire plusieurs fois l'installation en lui passant un fichier de configuration. Mais cette possibilité est surtout pratique pour une personne débutante : elle peut demander de l'aide car n'arrive pas à remplir le questionnaire du script, et on lui fournit le fichier de config qui va bien.

      • [^] # Re: l'intention est louable

        Posté par  . Évalué à 5.

        Mais quelle distro utiliser sur un serveur à part debian ou une BSD?

        RedHat/CentOS, Mageia, gentoo, slackware ?

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # Il ne se charge pas de la location de nom de domaine

    Posté par  . Évalué à 5.

    Certes, mais pourquoi pas ne pas proposer la marche à suivre?
    - test de nom de domaine disponible
    - suggestion du registrar (Gandi ou autre)
    etc…

    Prenez votre temps. :)

  • # Cockpit@plane

    Posté par  . Évalué à 4.

    Une petit projet qui pourrait apporter un plus à Host@home: http://cockpit-project.org/

    En ce moment ils travaillent à sa première version stable ainsi qu'à l'intégration de Docker. À terme il permettra d'installer des services et de les gérer sur un principe de rôle.

  • # Et Seafile ?

    Posté par  . Évalué à 3.

    Effectivement, excellente initiative, merci, je vais regarder ça, je veux depuis quelques mois m'installer un petit serveur comme sauvegarde supplémentaire (j'ai déjà des comptes dans les nuages, dont un Owncloud via un fournisseur payant, mais Ubuntu One s'arrête) et surtout pour le plaisir de tester l'auto-hébergement.

    Mais je n'y connais rien et, si la ligne de commande ne me fait pas peur, se lancer sans formation IRL (le cahier admin de Debian est très bien mais c'est comme pour R Statistique, seul je lâche assez vite malheureusement) est compliqué, surtout l'étape de sécurisation.

    Yunohost fait partie des solutions que je comptais suivre attentivement, Host@home peut être une alternative. J'aurais une question : comptez-vous ajouter Seafile à la liste des services supportés SVP ? C'est moins complet qu'un Owncloud mais pour de la synchro pure de fichiers uniquement, semble plus performant :
    http://linuxfr.org/news/seafile-un-dropbox-like-libre-a-heberger-sort-en-version-3

    Ça fonctionne bien avec Nginx + Postgresql (ou MariaDB), Python, c'est libre, existe sur Android, ce serait parfait de l'avoir également (en sus d'Owncloud déjà cité et Pydio). Pour le reste, tout semble déjà proposé.

    Autre point, que couvre l'installation minimale de sécurité et quelles sont les autres étapes indispensables à finaliser (fail2ban & Co…) pour un utilisateur lambda non spécialiste ?

    • [^] # Re: Et Seafile ?

      Posté par  (site web personnel) . Évalué à 3.

      Concernant seafile, j'y ai bien pensé, mais à l'heure actuelle ils ne proposent que des serveurs pour 32 bits, 64 bits et un spécial raspberry pi. Rien de générique donc, qui pourrait fonctionner sur toutes les architectures. Cela dit, je n'ai peut-être pas trouvé les sources adéquates.

      Pour la partie "sécurisation" proposée par hostathome, c'est encore simpliste à l'heure actuelle : ça installe fail2ban et portsentry. C'est un des points que je souhaite améliorer à l'avenir.

  • # Tor

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Installation d'un relais tor pour rendre le réseau plus rapide.

    Bien tenté !

    Et si on installe 2 relais Tor, ça ira encore 2 fois plus vite ?

    • [^] # Re: Tor

      Posté par  . Évalué à 1.

      Hummm… Oui, quelqu'un m'explique ?

      Je n'ai pas compris en quoi l'installation d'un relai tor rendrait le réseau plus rapide ?

      (Rendre le réseau TOR plus rapide alors ?)

      • [^] # Re: Tor

        Posté par  (site web personnel) . Évalué à 2.

        Dans l'idée, le réseau tor sera plus rapide si les relais disponibles sont plus près de chez vous.

        Bien sûr, ça n'aura rien de révolutionnaire.

      • [^] # Re: Tor

        Posté par  . Évalué à 3.

        Hummm… Oui, quelqu'un m'explique ?

        Sans présupposer de ce que voulait dire l'auteur. Je vais prendre un exemple de cas où ça peut marcher.
        L'accès youtube depuis free. La liaison free <--> google étant saturé, si tu as un relais TOR chez orange, tu passeras par free <==> orange <==> google. Tu as un chemin plus long, mais sans embouteillage.

  • # Shaarli

    Posté par  . Évalué à 3.

    Installation de Shaarli le delicious-like de sebsauvage

    Je sais pas trop si Shaarli est vraiment un delicious-like ou alors il n'en reprend que la partis partage. Pour moi il est proche d'une plateforme de blogage.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # Cherche auto hébergement dans la région

    Posté par  . Évalué à -1.

    Faudrait trouver le même truc pour les appartements dans la vraie vie.

    Aux agents des services secrets qui lisez ce message, veuillez considérer que défendre votre nation contre ces ennemis interieurs et extérieurs implique de suivre l'exemple de Snowden.

  • # Bravo et merci de partager

    Posté par  . Évalué à 8.

    Contrairement au premier commentaire qui reproche le côté script unique « Debian-only », je trouve que c'est une solution assez adaptée. Ça me rappelle Bee qui permettait d'installer openbox avec quelques add-on à partir d'une Debian nue ou d'Ubuntu. En plus on peut facilement regarder comment ça fonctionne, pour se faire une idée de la marche à suivre (paquets, fichier de config etc…), ou proposer des patchs facilement. Même quand on n'y connait tchi en dev (script unique inside).

    Merci bien !

  • # Idée pour l'interface

    Posté par  . Évalué à 1.

    Un paquet deb personnalisé pourrait être créé depuis un site web comme sur https://ninite.com/ (qui peut créer des méta-paquets pour Linux avec la liste des logiciels qu'on souhaite ajouter). On évite ainsi la nécessité du serveur web sur notre serveur pour la configuration (par exemple si on veut un serveur de mail uniquement).

    Cette signature est publiée sous licence WTFPL

  • # erratum + roundcube 1.0

    Posté par  (site web personnel) . Évalué à 1.

    Erreur dans le journal :
    - Installation de pico, un CMS très- Installation de wallabag pour sauver des pages à lire plus tard. simple + son éditeur en ligne.
    + Installation de pico, un CMS très simple + son éditeur en ligne.
    + - Installation de wallabag pour sauver des pages à lire plus tard.

    Désormais roundcube 1.0 peut être installé. La procédure est plus accessible, car ne nécessite pas de copier un fichier manuellement sur le serveur.
    Reste toujours à supprimer le dossier d'installation à la main…

  • # arkos

    Posté par  . Évalué à 1.

    Le sujet de l'auto hébergement est chaud en ce moment, il y a plusieurs initiatives allant dans ce sens. Dans le fil de discutions j'ai vu mentionné ajenti qui se rapproche des "Cpanel like", mais la on parle d’auto-hébergement par des plus ou moins spécialistes.
    Le projet le plus abouti que j'ai vu pour l'instant est arkos (opensource,crowdfunded basé sur python/archlinux) qui est un fork d'ajenti et qui propose de l'auto-hébergement pour des noobs sur une simple raspberry-pi ou sur un vps , je vous conseille d'y jeter un coup d'oeil si vous êtes a la recherche d'une solution.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.