About ToBeHost : the last of my student's projects
Par Mathieu le jeudi 1 octobre 2015, 23:55 - My Life - Lien permanent
Hello there, this is not your ordinary reading on this blog. This post is a sort of introduction for a series of posts about the making of a free web hosting provider, implementing a web panel from scratch using Drupal for front-end and Puppet as back-end.
But first, let me introduce you the reason why we started the project. I said “we” because I am not the only one in the boat, but it’s me who will make all the technical choices, and implement it. I am also the one who was saying “give up” to my colleague a few months ago, before going back with this new and exciting crazy idea.
Genesis
ToBeHost is a project we started around 2008~2009. Before that, I was an active member at a free hosting provider (“Chez Mémé .net”). When this hosting provider closed, due to the lack of time from its founders, me and a friend I met on this hosting provider stated that we had both the technical and time resources to make our own hosting provider. It was just loaning a dedicated server and configuring all the stuff you need to have your site working. We were not experts (yet), but be were confident in the fact that we had the capacities to learn, and to make it working. This is also the moment where I started hacking on GNU/Linux
We tried several web panels. Between love and hate, we finally choose VHFFS. VHFFS is a great piece of software. For the kiddie I was, it was the sort of “perfect-even-scary” piece of Linux engineering. Because mass web hosting involves dealing with a lot of “subsystems” to make it work, what VHFFS was doing was simply amazing to me. Using libnss and nscd to make system user from a database was for me the cleverest way to make system users without having to deal with system commands. Using unix permissions and system users and groups instead of hacky chroots, safe_mode, and open_basedir was definitely feeling right to me. I learned a lot about Linux and Debian, and my first (and actually unique) contributed patch made me feel so proud of me.
The long love (and hate) story
Dealing with a single server, on a student time, was not complicated. When something went wrong, I was looking for the answer by myself because I was (and I am still) afraid of what people can think or say to me on a public IRC channel. We had some downtimes, and a few fears while restoring backups, but things were globally going well.
Some things were a little bit cumbersome, but I was thinking that it was part of the job. Re-compiling PureFTPD ans MySQL package at each upgrade was not actually a problem, because I was eager to learn how to patch, compile, and hack into Debian. I even rewrote the SQL queries when we upgraded to Debian Lenny, which was using libnss2.
The years passed, I was growing and becoming older (hey, don’t laugh). My years at university was taking much and much time over my “internet time”, as I was getting involved in the students’ association and my final exams were approaching. Finally, the project was in an informal standby, we decided that we had to close it, because we were both very busy elsewhere.
We officially closed. We sent the mail to users, I was ready to backup my configuration files and delete the data. We didn’t do it. Because of our sloppy feelings, and the fact that “it worked”, without “touching anything”. It was such a pity to let it go.
The last breath (or not)
Some months ago, we realized it had been several years that the project was officially dead. I didn’t stop hacking Linux. I had left my full-time job because I was working too much on projects I didn’t like (and some other reasons), and was running a freelance activity. My colleague was running a successful IT company with his associates, and we were working together on some professional projects (we still are).
New tools and software have appeared since my last glance to ToBeHost, and I also learned how to use new tools. I asked my colleague to let the project go, but we finally paid another month for the server.
And then, I thought: web hosting is actually what I am into at that time. I know how to do it the right way, with the smallest administration effort. None of the alternative panels was fitting as well as VHFFS for the work we wanted. Let’s take all the VHFFS goods (strictly unix permissions, not be afraid of user access to shell, trust user isolation and quota), and add some bullshit (PHP panel, made on top of a CMS), with a little bit of magic (Puppet automation). Let’s put it together, and see what is coming from it.
Voilà. This is how this project started.
Addendum
The project started, and it is pratically ready for beta-test. I will try to write that series of posts and explain how we made it, in order to inspire other people, and to help me keep my ideas clear.
As you may think, it is and it will be highly experimental. I don’t know if the growing of Puppet objects will be sustainable in the long term. I don’t know if Drupal will drive me crazy to the point I would rage delete my code. I don’t know if the whole project will be clean enough to release it opensource. But we will try.