Saturday 30 June 2012

The first step

Well, finally I have started my linux server project. It has only taken like 4 years since it came to my mind. But while before there was no reason behind it to do it, now there are specific reasons. Although the way I reached to those reasons has been a bit unconventional.

The initial thoughts


I’m trying to compliment what I do at work as programmer analyst, and hopefully soon as System Analyst, to increase my experience, broaden my skill set and, why not, been able to show to current or prospective employers that I have the necessary ability to do certain projects. For that, I decided a couple of small applications that I want to do. Then I decided to actually plan myself properly, otherwise I lack the focus to carry out pet projects at home. I did investigate several project planners out there. After some consideration I decided to set with X-Planner Plus.

The setup


Now, my current personal computer is a MacBook Pro with Win 7 in BootCamp. X-Planner has only instructions to install on Linux and Windows. I have not checked if I could make it work on Mac Os X. Which basically gets down to MySql and Tomcat, as X-Planner itself is done on Java. I did install it on my Win 7 installation. And then I realised that the two initial projects that I wanted to create where for Mac (will use them to learn Objective-C). Which means switching back and forth. Could have looked into installing X-Planner into Mac, but then I decided to do it “properly”.

Therefore, I quickly gather some requirements for a server:

  • Has to be cheap (all the other decisions that I have here have this in common).
  • It has to have a decent amount of RAM
  • It has to have a big hard drive (will server as repository/backup until I get a NAS system)
  • There is no need of a monitor (I have a spare monitor and I can connect to the TV)

So, I looked online and got at Currys an Advent DT2204 for £300 to be used as a Linux Server. 6GB RAM and 1 TB hard drive. Ticked the boxes that I wanted to cover. Mind you, I could have looked online about the compatibility with Linux. But then, I could fudge my way around for the time being (which, in fact, I will have to do).

Then it came to a decision of OS. And again: It has to be cheap. But is more than that:

  • It has to be cheap
  • At work we use a Microsoft stack, so I will want to get out of it as much as possible
  • There has to be relatively good support and documentation, as I don’t want to spend that much time on configuring the server.

The only one to tick all three was Linux, and from all the possible options I went with CentOS, which is based on Red Hat. It is not at the top of the technological curve, but I didn’t want it to be. I want a stable server, and using a fork of a very stable Linux distribution I think is a good idea. I think if I was creating a company, I will get Red Hat as my server OS.

Now, as I’m explaining why I’m choosing the different components, I should explain why I choose X-Planner:

  • Has to be cheap
  • I should be able to install it on my computer, can’t be hosted by a third party
  • I should be able to use it from more than one computer / OS

And there were not that many options covering all requirements. So X-Planner was the chosen one. It forces you to install both MySQL and Tomcat, which doesn’t mean that I will use them in future projects (maybe will look to other options, don't know yet). That decision will be taken when needed on a per-project basis.

So only two things left to choose to have all the necessary tools: a bug tracking system, and more importantly, a source control system.

For the bug tracking system I had already in my mind Bugzilla. Still covers my requirements:

  • Has to be cheap
  • Has to be outside of the Microsoft stack
  • I have to be able to install it on my server

For the source control system similar requirements were made:

  • Has to be cheap
  • Has to be outside of the Microsoft stack
  • I have to be able to install it on my server

There was as well a desire, though not requirement, of being a distributed source control. I am already using a Server-client architecture at work, no need to do the same, if I want to broaden my skills. So Bazaar, Git and Mercurial will be the main competitors. And I choose Mercurial. Reasons: The learning curve is not as steep as Git, and I have dabbled with it before.

The chosen ones


So configuration of my server once everything is installed:

Probably will end adding things as I fiddle with different technologies/projects.

Now, to fix the ethernet on-board card that is not working (gotta love Linux :-p )

No comments:

Post a Comment