Obtain a copy of Debian Linux 6.07 x64 Gnome Live or later from www.debian.org and load it on a USB drive using Universal USB Installer or other utility.
Install the host OS:
>> For the host OS installation you will need to physically plug a keyboard and a monitor in your machine. You won't need it afterwards. <<
Booting up the Microserver hit Esc to enter the Debian setup menu. You will see a command prompt like this:
boot:
Hit tab to see all available option or type "installgui" and hit Enter. The rest of the setup is pretty straightforward. I chose to use the whole 250GB disk without utilizing LVM (Logical Volume) and didn't select Automatic Updates.
Update & Upgrade:
The main idea is to install as less packages as possible and keep the installation clean. We will only need a few things to do so but first let's make sure everything is up to date:
erik@debian: su
password: <your root password>
root@debian: apt-get update
root@debian: apt-get upgrade
SSH & FTP:
After the upgrade is complete, install the SSH server for remote console access and FTP support for file transfer:
root@debian: apt-get install openssh-server
Now we can log in through the local network using an ssh client like PuTTY and transfer files over FTP using WinSCP
To do so we just need the IP address of our server which can be obtained by issuing the following command as root user:
root@debian: ifconfig
Samba Shares:
We already have enough tools to access the files on the remote server. However, local sharing is nice for quick access, especially with mapping. We need to install the samba-server to make this happen by:
root@debian: apt-get install samba
This will install the core components needed for file sharing. We only need to provide the workgroup name used by the other computers on the network and we're done. If we want to add a specific folder to share we need to edit the configuration file.
root@debian: gedit /etc/samba/smb.conf
and add something along these lines:
# My Shared Folder
[Folder's Name]
public = yes
path = /path/to/folder
browseable = yes
writeable = yes
There are many switches to play with, depending on the needs of the user. Here is a nice page explaining that.
Remote Desktop (VNC):
Next, to setup remote desktop access go to System -> Preferences -> Remote Desktop Preferences and check the boxes:
Allow other users to view your desktop
Allow other users to control your desktop
Connect remotely using a VNC viewer such as TightVNC
>> At this point it should be noted that the previous step will only allow remote desktop connection for an already logged in session! <<
There are workarounds for this and there is also the option of XDMCP, which allows multiple independent connections, but for a home server I think it's easier to just enable automatic log in of the main account. You can find that in System -> Administration -> Login Screen
Sync and Backup:
One of the reasons I prefer having a graphical environment, at least for the host OS, is to use tools such as Unison. This little utility provides two-way synchronization between two folders, local or remote. You can find it in the repositories, System -> Administration -> Software Center. I am not sure how flexible it is as far as scheduled backups go but a manual sync once in a while is not the end of the world for a home machine.
Download Server:
Launch Transmission torrent client from Applications -> Internet menu and go to Edit -> Preferences.
Choose the Web tab and check the box:
Enable web client
That's it. You can now access the web interface remotely by pointing your browser to <debian local IP>:9091
Install Virtualbox:
Final step is to install Virtualbox. Get the x64 .deb package from here and install using the gdebi manager or by:
root@debian: dpkg -i install virtualbox.deb
From the same website download the extension pack and install it just by double clicking on it.
Conclusion:
This concludes the basic setup of our server. So far we have:
A stable system with GUI running
SSH and FTP access
One or more locally shared folders
Remote desktop connectivity
A central download machine