I response to my previous post, I started defining a set of requirements for a separate local server. By separate, I mean specifically a physically different machine than my desktop. Previously I had my desktop PC running Linux (Fedora) with all desktop applications, as well as several server applications in the background.
The following is list of ideas, requirements and plans I hope to achieve with this server.
1. Provide file access locally (on the LAN) and remotely (over the internet).
Samba is needed for file access for Windows machines and SSH will provide both remote file access via scp and sftp. I considered using NFS additionally for Linux file access, however Samba works efficiently both Linux-to-Linux as well as Linux-to-Windows and multiple services seemed redundant.
2. Provide backup to local data (multiple Windows and Linux machines) and for remote servers (web servers).
While this may seem similar to the previous requirement, it adds the need for services like time based schedulers and remote access applications like Rsync. This may impact how/when this local server should be started.
3. Provide a web development environment.
This can easily be summarized as L.A.M.P. development which stands for “Linux, Apache, MySQL and PHP/Perl/Python”. I need a webserver (Apache), a database server (MySQL) and at least one server side scripting language (PHP). Seeing as I do have multiple websites which I develop this provides for me a both a staging area for new ideas as well as active work on “mirrored” versions of live sites. The only concern here is that it is very difficult to duplicate exact the same versions of software that is running on commercial web hosts. Issues like PHP backwards compatibility do raise issues in this planning, more on this later.
4. Provide version control and change management.
While many will recognize this as either using a version control like CVS or SVN, the truth is that using tools like this become increasing difficult when you do things like dual boot or develop on different machines. Having a dedicated server makes this functionality more practical.
Outside of some miscellaneous odds and ends, the above is exactly what I want. Note that I did not add things like DVR or HTPC. Basically, all my server should be is: Data Development and Dependability, anything else will be a waste of time/resources for me.
Going forward, I can use the specific details of my requirements to pick the proper hardware to meet my needs.