The ByteSized Blog Peek inside our brains

14Mar/10Off

ByteSized Setup: The Overview

As an opening article for this blog, we want to talk about our software and our whole setup. This will be first article in a whole series on the topic.

As for why we're writing this: We want to provide as much transparency as possible and help our (potential) members understand how the gears and cogs under the hood work. While this is the main goal, it would also be great to provide ideas for other people and their own setups. As we've encountered alot of interesting challenges along the way, it also might spare some people the trouble of reinventing the wheel. One of the best possible outcomes though would be to start a discussion on how we could improve our setup, so we're welcoming all constructive criticism and suggestions as well.

This first post should provide a a bird's eye view of the whole system, omitting the details to illustrate the general idea. Other articles will try and give an in-depth explanation of each of the separate parts.

The Servers

We have chosen to not give out VPS's but to use normal unix user accounts to share the servers. This way we feel like we can give better support and have some control over the servers, while still giving the user a certain amount of freedom. A box is simply a user account on a linux server with preconfigured software.

The Website

All things begin and end on the website. The website, written from scratch, running on Ruby on Rails uses a mysql backend for the user database. To communicate with the servers (e.g. deploy users to a server or get the harddisk usage) it connects to a daemon running on each server. For example: After a user is registered we, as admins, can choose a harddisk and server to deploy the user on through the admin-interface, when this happens the website sends a request from the website to the chosen server to the "byte-daemon".

The Daemon

The byte-daemon has several purposes one of them is creating new users, but disk usage and service status are a few other things it handles for the website as well. It acts as a man in the middle if you will. The byte-daemon is running as a dedicated account on the boxes, which has a few sudoers entries to allow it to do things that are usually reserved for root (adding/deleting users, etc.)

The Tools

The byte-daemon runs an other program called the "slicer". This slicer tool actually does the hard work, creates a new user account, creates a random secure password, selects ports for all the services, sets up quota and configures the torrent clients for the new user. When it is done it sends a request back to the website with the data it created. The website saves the data in the database and notifies the new user that his account is ready.

A picture says more than 494 words

Even the people who skipped most of the text should now be able to understand the first parts of our setup. Next week we will try and go a bit deeper into our software-stack.

Comments (10) Trackbacks (1)
  1. Glad to see the blog and I look forward to learning and reading from here. Thank you for all the awesome work.

    Mr. Nova

  2. Interesting to see how you have automated the setup. Thats whats needed to drive down admin costs and it also helps you to continue growing without the usual formula. 10 new servers = 1 new admin. 20 new servers = 2 new admins…
    I’ve seen that one in to many places in IT :-)

    • Yeah we don’t want to grow staff-wise anymore since that would put a lot of strain on our prices. Growing by using technology as best as we can is the only way for us :)

  3. in the month i’ve been a member i’ve fell in love, thanks!
    i’ve always used utorrent 1.6.1 in WINE at home, but i’ve been using deluge on my box and digging it.

    • Glad you like it :)
      We looked into all the available and popular clients and agreed on deluge, it’s got some great features, that make it a really epic client, especially for this kind of use =)

  4. Thats cool your site runs on RoR. I am just starting to get into rails and so far i love it.

    • Feel free to drop by our irc channel and find me if you have any RoR questions you can’t find the answers to, I’m no rockstar but I know a bit :)

  5. This keeps getting better! Everything is tidy and neat and crisp – I have everything I need and nothing I don’t – I am just amazed! Thank you all for providing such a fantastic service. All the very best for the future.

    • Thank you for the kind words, makes working hard on improving our services that much more rewarding :)

      Thanks!


Leave a comment