Hostux.fr

Hébergeur à prix libre

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous!

Je viens vous présenter Hostux.fr, une plateforme d'hébergement à prix libre que j'ai imaginée. Mais d'abord, petite présentation de moi !

Logo Hostux.fr

Qui suis-je et genèse du projet

Je m'appelle Louis Guidez, 18 ans et étudiant à l'UTC depuis septembre 2016.

Il y a un moment, l'idée de développer un hébergeur m'a trotté dans la tête. En effet, je suis un ancien du Site du Zéro et j'ai appris à coder des sites Internet très tôt grâce à lui. S'est alors posée la question de l'hébergement : je suis tombé sur plusieurs offres gratuites, dont les meilleures étaient proposées par des particuliers ou associations à but non lucratif (comme LegTux, LesCigales, …).

Étant président d'une Junior Association organisant des événements d'une certaine ampleur depuis 3 ans, je me suis rendu compte de l'importance de ces hébergeurs pour mes projets. Je me suis alors dit : pourquoi pas héberger le blog de l'association et des sites auxiliaires moi-même, idem pour mes emails, et voir si cela fonctionne bien ?

Comme j'aime les défis, je me suis mis en tête de coder une plateforme qui gérerait mes sites, bases de données, mails… de la même manière que sur un autre panel. Voici la naissance d'Hostux !

Présentation de Hostux

Le panel

Page d'accueil du panel

Le panel a été entièrement codé en Python3 avec le framework web Django. Il est complètement fonctionnel et utilisable !

  • Hostux Web
    • Gestion des domaines et sous-domaines
    • Gestion des utilisateurs et bases de données MariaDB
    • Gestion de la configuration d'environnements PHP (5/7) et Python (2.7/3.4)
    • Gestion des utilisateurs FTP
    • Gestion de certificats SSL via Let's Encrypt
    • Annuaire des sites hébergés
  • Hostux Mail
    • Gestion d'adresses email et de redirections email
  • Hostux Support
    • Système de tickets de support

Vous pouvez voir comment il fonctionne en détails sur le Wiki Hostux.fr.

Le service d'hébergement, et son originalité

Au niveau "services liés", j'ai mis en place un wiki, un webmail, un webftp et il sera prévu d'avoir un forum si une communauté se crée. Jusque là, rien d'original.

Aujourd'hui, Hostux est intéressant par sa flexibilité : je peux faire tout ce que je souhaite, puisque je gère à 100% le serveur.

Je peux donc également proposer des fonctionnalités innovantes : par exemple, l'automatisation de la configuration de certificats SSL. En cliquant sur un bouton, on peut activer pour un domaine/sous-domaine un certificat reconnu par la majorité des navigateurs (fourni par Let's Encrypt).

Des sauvegardes régulières sont également en place : tous les jours, une synchronisation est effectuée sur un disque dur physique différent. Toutes les semaines, une archive de ce disque est réalisée, et je la télécharge sur mon PC personnel pour plus de sécurité (si une surtension fait cramer les 2 disques de Hostux par exemple).

Les inconvénients de Hostux

Parce que oui, il y en a ! Tout d'abord, il s'agit d'un serveur maison auto-hébergé : la connexion Internet est donc très moyenne. Les sites hébergés, pour avoir un temps de chargement correct, ne doivent pas être trop lourds (exemple : https://a-fond-la-caisse.com/ qui charge un fond d'écran aléatoire à chaque page, se charge de façon correcte mais pas immédiate).

Deuxième souci, la disponibilité : je n'ai pas de triple arrivée électrique, pas double arrivée Internet, et il se peut que je doive éteindre le serveur ou désactiver les services temporairement pour des opérations de maintenance. Il y a déjà eu plusieurs incidents : j'en suis prévenu par SMS (grâce à UptimeRobot qui vérifie toutes les 5m que le serveur tourne), je vous préviens immédiatement sur le compte Twitter (@hostux_fr), et dès que je suis à la maison (ou que j'ai mon PC portable et Internet), je règle le problème. Dans un souci de transparence, je publie à chaque fois un article expliquant les causes de la panne.

Autre souci : la sécurité. Je fais de mon mieux pour proposer un service sécurisé. Il n'est cependant pas impossible que des failles se soient glissées soit dans les logiciels utilisés, soit dans la configuration que j'ai faite. J'ai pris beaucoup de précautions, mais le risque 0 n'existe pas.

Toutefois, ces problèmes sont à relativiser : je ne m'adresse pas à des personnes ayant des besoins professionnels conséquents. Cela pourra venir dans un second temps, mais pour le moment, je souhaite aider des passionnés, ou des petites structures (associations, PME).

Idées d'amélioration

  • visualisation des logs de vos sites en ligne

Je suis ouvert à vos idées d'amélioration ! N'hésitez pas ;)

Le lien

PS : si vous êtes intéressés par le développement, le code source du projet, l'administration système, ou que vous souhaitez rejoindre Hostux.fr, alors contactez-moi par MP. Je suis ouvert à toute personne sérieuse.

Édité par reind33r

+11 -0
Staff

L'idée est intéressante (j'ai lu le post en diagonale parce que no time). Je me pose un question : légalement ça donne quoi ? Si demain quelqu'un met des choses illégales via ton service, tu vas en prison ?

Ensuite quelque chose qui me chiffonne, pas de sauvegarde ?

Dernière remarque : la sidebar avec le fond gris c'est assez moche, ça fait tâche avec le reste qui est agréable.

"I think that it’s extraordinarily important that we in computer science keep fun in computing." – Alan J. Perlis

+5 -0
Auteur du sujet

L'idée est intéressante (j'ai lu le post en diagonale parce que no time). Je me pose un question : légalement ça donne quoi ? Si demain quelqu'un met des choses illégales via ton service, tu vas en prison ?

Ensuite quelque chose qui me chiffonne, pas de sauvegarde ?

Dernière remarque : la sidebar avec le fond gris c'est assez moche, ça fait tâche avec le reste qui est agréable.

gustavi

Salut gustavi,

Si quelqu'un met un contenu illégal, je ne suis pas responsable de ce contenu. La loi différencie éditeur et hébergeur : je ne suis qu'hébergeur (= prestataire technique). En revanche, je suis tenu de supprimer ce contenu en cas de demande. De toute façon, étant contraire aux CGU que j'ai mises en places, si je m'en rends compte même "par hasard", le compte associé sera suspendu/supprimé immédiatement.

Et oui, sauvegardes automatiques réalisées par moi sur un disque dur physique différent. Une synchronisation tous les jours, et toutes les semaines une archive du disque de sauvegarde est réalisée. Pour que ce soit encore plus sûr, il faudrait que ce soit sur un ordinateur différent (donc synchronisé via le réseau) : ce n'est pas prévu dans un premier temps. En revanche, je téléchargerai les archives sur mon PC personnel et j'en conserverai 3 en arrière.

Et j'ai pris en note ta remarque pour la sidebar, je vais voir comment je peux faire pour l'améliorer d'ici la fin de la semaine ;)

Pas mal! Et si on veut quelque chose d'un peu différent, genre Node.js+Meteor+mongoDB, on peut?

Genroa

Salut !

Pour le moment, pas possible. Seulement du Nginx+PHP5+MariaDB. C'est en revanche dans les idées d'amélioration.

Disons que si on veut du Python + Django, étant donné que je sais comment le mettre en place, je vais bientôt ajouter la fonctionnalité au panel. Après, je vais aussi me renseigner sur d'autres technologies, dont Node.js, et en fonction de la demande je pourrais les mettre en place. Pourquoi pas même de façon manuelle dans un premier temps, si ce n'est pas trop compliqué à gérer.

Édité par reind33r

+3 -0

Disons que si on veut du Python + Django, étant donné que je sais comment le mettre en place, je vais bientôt ajouter la fonctionnalité au panel. Après, je vais aussi me renseigner sur d'autres technologies, dont Node.js, et en fonction de la demande je pourrais les mettre en place. Pourquoi pas même de façon manuelle dans un premier temps, si ce n'est pas trop compliqué à gérer.

reind33r

Traditionnellement, c'est ce que proposait tout hébergeur alors que tout le monde n'a pas forcément envie de se farcir le famaeux couple PHP/MySQL ou MariaDB. Ce serait une réelle valeur ajoutée d'avoir du Python, certes plus difficile à mettre en place de façon automatisée, mais tu n'as même pas besoin de gérer la problématique de Django ou de Flask ou que sais-je. Du Python, avec un module WSGI pour nginx, ou un serveur WSGI proxysé par nginx, et les utilisateurs ont une box virtualenv et se débrouillent pour installer le framework de leur rêve grâce à un requirements.txt pourvu que leur framework soit installable avec pip.

Si tu es aventureux, du Perl 6 avec Bailador (cf. https://zestedesavoir.com/tutoriels/527/votre-site-web-avec-bailador/ ) !

Je salue le projet, en tout cas.

Édité par Au

+3 -0
Auteur du sujet

Tiens ca pourrait faire un CHATONS ! Qu'en pense tu ? http://framablog.org/2016/02/09/chatons-le-collectif-anti-gafam/

qwerty

Salut, oui pourquoi pas quand le système sera en place ?

Disons que si on veut du Python + Django, étant donné que je sais comment le mettre en place, je vais bientôt ajouter la fonctionnalité au panel. Après, je vais aussi me renseigner sur d'autres technologies, dont Node.js, et en fonction de la demande je pourrais les mettre en place. Pourquoi pas même de façon manuelle dans un premier temps, si ce n'est pas trop compliqué à gérer.

reind33r

Traditionnellement, c'est ce que proposait tout hébergeur alors que tout le monde n'a pas forcément envie de se farcir le famaeux couple PHP/MySQL ou MariaDB. Ce serait une réelle valeur ajoutée d'avoir du Python, certes plus difficile à mettre en place de façon automatisée, mais tu n'as même pas besoin de gérer la problématique de Django ou de Flask ou que sais-je. Du Python, avec un module WSGI pour nginx, ou un serveur WSGI proxysé par nginx, et les utilisateurs ont une box virtualenv et se débrouillent pour installer le framework de leur rêve grâce à un requirements.txt pourvu que leur framework soit installable avec pip.

Si tu es aventureux, du Perl 6 avec Bailador (cf. https://zestedesavoir.com/tutoriels/527/votre-site-web-avec-bailador/ ) !

Je salue le projet, en tout cas.

Au

Oui, je sais que pour le moment je ne me démarque pas. Comme je l'ai dit, la prochaine fonctionnalité que je vais coder et ce dès maintenant est la mise en place d'environnements web. Pour le moment, elle est couchée sur papier : je sais quelle sera l'interface, quelles seront les modifications sur la plateforme et les modifications de logiciels.

D'ici 1 à 3 semaines (en fonction de ma charge de travail à côté), Hostux proposera la création d'environnements (PHP5/PHP7/Python2.7/Python3), l'association d'un environnement à un/plusieurs domaines et sous-domaines, et grâce à toi l'installation de dépendances (via un requirements.txt fourni par l'utilisateur pour pip/pip3 (Python) ; pourquoi pas via un composer.json pour PHP?).

Pour Perl, peut-être dans une version future… Idem pour d'autres bases de données. J'ai besoin d'en connaître un peu plus avant de pouvoir l'intégrer à Hostux. De toute façon, la plupart des sites sont database-agnostic aujourd'hui.

EDIT : MongoDB fonctionne quand même assez différemment d'après ce que je lis. Je vais me renseigner mais ce ne sera pas fait à court terme.

J'ai également pensé que pour fournir un hébergement flexible, il faudrait que chaque hébergé puisse configurer des URL rewrite (ou toute autre configuration) sur ses domaines. Les sites étant fournis par nginx, le principe des .htaccess n'est pas utilisable. Dans un premier temps, j'inviterai donc les utilisateurs à m'envoyer via un ticket de support leur propre configuration nginx, que je lierai à leur nom de domaine, et qui sera répercutée dans les fichiers de configuration.

Cela fait donc, pour une mise à jour 1.1 :

  • Gestion d'environnements : PHP5/PHP7/Python2.7/Python3
  • Configuration personnalisée nginx (via le support)
  • Couleur de la sidebar (avec choix entre 3 couleurs via des petits boutons)

Je vous tiens au courant ici de l'avancement ! Mais je mettrai les fonctionnalités d'un coup, après codage et tests. Il y en a donc pour 1 à 3 semaines, comme je le disais, cela dépendra de ma vie à côté !

Édité par reind33r

+1 -0

Je pense que tu peux faire une interface pour toute la conf nginx, ainsi ils pourraient ré-écrire une partie de leur section server { } (et uniquement la leur) et les champs restent quand même contrôlés : par exemple, un utilisateur ne peut pas mettre server_name domaine_du_voisin.hostux.fr; ou listen 42;, sinon ça pose quelques petits soucis…

Ça reste ainsi automatisé et contrôlé. Mais attention aux failles tout de même.

Après, reste encore le problème de la relecture de la configuration. Si à chaque fois qu'un utilisateur modifie un truc (qui ré-écrit donc dans la conf de nginx) il faut dire à nginx de reloader, ça peut ne pas le faire effectivement.

Édité par Au

+1 -0
Auteur du sujet

Je pense que tu peux faire une interface pour toute la conf nginx, ainsi ils pourraient ré-écrire une partie de leur section server { } (et uniquement la leur) et les champs restent quand même contrôlés : par exemple, un utilisateur ne peut pas mettre server_name domaine_du_voisin.hostux.fr; ou listen 42;, sinon ça pose quelques petits soucis…

Ça reste ainsi automatisé et contrôlé. Mais attention aux failles tout de même.

Après, reste encore le problème de la relecture de la configuration. Si à chaque fois qu'un utilisateur modifie un truc (qui ré-écrit donc dans la conf de nginx) il faut dire à nginx de reloader, ça peut ne pas le faire effectivement.

Au

Je crois que l'on pourrait quand même inclure des fichiers d'autres endroits de la plateforme (/home/autreutilisateur/www/ ou /usr/share/phpmyadmin/), via des alias : on ne peut pas définir d'open_basedir. Avec un système ou l'hébergé envoie son bout de code via le support, je peux l'examiner, l'ajouter moi-même via le panel d'administration, ce qui entraînera une mise à jour immédiate du fichier de configuration de l'utilisateur.

Et toutes les heures, les services (nginx, php5-fpm, …) sont rechargés automatiquement, pour prendre en compte chaque type de modification, ou les ajouts/suppressions de vhosts.

+0 -0
Auteur du sujet

Salut,

Pour le moment, le système de dons n'est pas opérationnel. Il apparaîtra sûrement dans la 1.2 (ou 1.1 si je peux).

Je pense toutefois remercier les donateurs en leur proposant des options personnalisées, et l'absence d'obligation de bannière en ferait partie. :)

Édité par reind33r

+0 -0
Auteur du sujet

Absolument !

Et même dès maintenant si quelqu'un est vraiment intéressé, je dois pouvoir donner un accès BitBucket aux dépôts du projet à d'autres utilisateurs. Les dépôts sont en effet privés et le resteront dans un premier temps.

+2 -0

yop !

je dois dire que je suis très intéressé par ce projet, hébergeant mon blog sur alwaysdata ;) (mais je n'ai que10mo d'espace disque xD)

donc une question : combien y a t il d'espace pour un utilisateur ? est ce que cela peut varier ? si jamais le serveur est down, quelle alternative proposes tu aux visiteurs pour qu'ils continuent d'accéder aux sites (s'il y en a une) ? y a t il une platform piwik mise en place pour chacun des sites (à des fins d'analytics) ?

Ma chaine YouTube ! | Seventh, un micro langage communautaire ! | Mon projet : Unamed (en pleine reprogrammation en C++11/SFML2.4) | Mon tuto sur Pygame !

+1 -0
Auteur du sujet

Salut,

Il y a 10Go pour un utilisateur "normal", et si la limite est dépassée, pas de suspension de compte automatique. J'inviterai juste l'hébergé à prendre l'offre "ça roule" (en échange d'une bannière sur son site).

Si le serveur est complètement down, pas d'alternative. Ce sera juste à moi de réagir rapidement pour régler le souci. Si le service DNS ne répond pas, il y a un DNS secondaire (fourni par Esgob). Pour les emails, s'il y a un souci, le serveur de l'expéditeur retentera l'envoi plusieurs fois, avant de notifier l'expéditeur de l'échec s'il n'y arrive toujours pas. Donc pas de mails perdus pour un court down.

Pas de plateforme Piwik, mais comme tu peux mettre en place toi-même un service de ce genre sur ton hébergement (ou via un fournisseur tiers, à la Google Analytics), je ne la mettrai pas en place (dans un futur proche du moins).

+3 -0

d'accord !

alors je crée tout de suite un compte chez toi :)

d'ailleurs, je peux héberger des images sur mon compte ? (je veux dire par là que j'ai codé un script d'upload d'images / fichiers en tout genre de manière à ne rien perdre ^^)

edit : je dois mettre une bannière sur toutes mes pages ?

Édité par Cithoran

Ma chaine YouTube ! | Seventh, un micro langage communautaire ! | Mon projet : Unamed (en pleine reprogrammation en C++11/SFML2.4) | Mon tuto sur Pygame !

+0 -0
Auteur du sujet

Ouki! Je valide ton inscription dans 5min !

Oui tu peux héberger des images et des fichiers !

Et oui, sur toutes les pages :) bien que pour le moment mon "robot" ne vérifie que la page d'accueil ^^

Édité par reind33r

+1 -0
Auteur du sujet

Disons que j'ai mis en place un système dans l'administration qui m'affiche une liste de sites à vérifier manuellement. Dans cette liste, il y a bien sûr les sites où la bannière n'a pas été détectée en page d'accueil, et des sites choisis de façon aléatoire.

Ainsi, j'ai juste à visiter chaque site en cliquant sur les liens de l'interface, à essayer 2/3 pages pour chaque site. Et si la bannière est absente, alors je mettrai un message dans mon interface, qui sera affiché sur l'hébergement de l'utilisateur.

Dans une future mise à jour, mon "robot" visitera la page d'accueil, et quelques liens au hasard choisis sur la page, mais j'ai décidé de me concentrer sur les fonctionnalités proposées à l'utilisateur dans un premier temps.

+2 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte