Build your own text mode shell server
Work environment in a shell server with text mode applications
When you build your own work environment from only text mode applications, you end up with a very efficient system. When this environment is accessible over the internet then you can enter your work environment from any place in the world. You are always only one ssh- or one putty-session away from your work.
Text mode applications
For people used to graphical environments such as windows or apple users, the text mode interface seems old fashioned and outdated. Nothing is more wrong. Every day many people are using text mode applications and every day new text mode applications are developed.
Text mode applications are so great because:
- they have a very efficient user interface
- require less resources
- can be run from within GNU screen
- which all together comes down to higher productivity
ssh and GNU screen
Both ssh and GNU screen help to make your text mode shell server the best productivity tool in the world.
ssh gives you a secure access to your server from any place in the world.
GNU screen let you use many text mode applications simultaneous. Also GNU screen let you run these applications even after you have logged out. So, if you need a way to be on some IRC channel 24 hours a day, GNU screen is your friend. And for many other tasks.
Text mode applications
There are many text mode programs available. Here is a list of my favorites:
mutt is a great text mode email client
slrn is a great newsreader
newsbeuter is a great textmode RSS-feed-reader
elinks is a great text mode tabbed webbrowser
scrollz is a great text mode IRC client
bitlbee is a im2irc gateway, which means that you can use IM-messaging (like ICQ, MSN, jabber ..) in your irc client
ncftp is a great and very efficient ftp client
Centerim is also a good textmode alternative for all kind of instant messaging.
Your shell server is also a good candidate for your personal CVS server.
Having (and using) a personal CVS server is a good way to get your data organised. It will help to keep your $HOME tidy and also simplifies your backup strategies (most important stuff will be in your CVS repository anyway).
Six steps to your own personal text mode shell server
- Choose your hardware
- Choose a distribution
- Choose your applications
- Install the distribution and add your applications>
- Test your configurations
- Setup a backup strategy
Step 1: Choose your hardware
Great pieces of hardware are:
The foxboard and the NSLU2 slug systems are in the lower performing range. Because of the lower power consumption they might be an interesting choice. The VIA EPIA will powerful enough for most situations. All three systems can run 100% silent if you use them diskless.
If your server is going to keep important data, you probably want a RAID-solution. Software RAID with Linux is easy to setup and to maintain. Buy two hard disks and build RAID-1 partitions. See the Software-RAID HOWTO. Raid1 protects you from data loss because of a disk failure. The price of this is more power consumption and more noise from the extra disk.
Step 2: Choose a distribution
Many Linux distributions provide all the packages you will need. Your hardware may limit your choices. Debian runs on many different types of hardware, including Apple Mac systems and the NSLU2 slug. The VIA EPIA is compatible with the standard i386-architecture. You can install many distributions on it. Slackware can be kept light, Debian is also a nice distro. Distributions that are based on
Busybox (like DSL or Puppy) are very light and have a small footprint. Check to see if your applications (see next step) work in a busybox environment. Irssi for example is a great IRC client, but requires Perl. If you don't need Perl, then go for Scrollz. This gives the same functionality but doesn't require Perl.
Step 3: Choose your applications
Most distributions are build with good packaging tools. Installing and removing applications becomes easy. It still is useful to think about what applications you are going to use before installing your distro. It is always wise to only install what you really need. One good reason is that this will keep your updates quick and simple.
First think about the type of programs you are going to use. Like:
- Mail client
- Instant messaging client
- RSS newsfeed reader
- And so on ..
After that for each type search for the best text mode application you can find. Will you be using links, elinks or netrik? There can be quit a difference in the number of libraries that are needed for applications that are otherwise comparable. Some libraries are harder to install then you might expect.
Think about your data-plan too. How will the structure of your $HOME be? Which data is convenient to have around on your disk but the thought of loosing it won't cost you any sleep? Which data must absolutely be safeguarded against any kind of loss? Where will you put your CVS repository? If you are going to use silent alternatives like USB-pen or Compact Flash card instead of hard disks, carefully think about which parts of your system require writable partitions. Flash memory as used in USB-pens and Compact Flash cards allow only for a limited number of writes.
Step 4: Install the distribution and add your applications
Having done your homework, you know what distro to install and which applications. So now it is time to download the latest version from your distro, burn a CD from it and install the base system on your hardware. Take care to install only what you really need. The best way is only install the bare minimum and start from there. When installing each application you will find out which libraries are missing and install them too.
Step 5: Test your configurations
Test to see how your environment is working. Check the way your data-plan is working. Has everything a logical place?
Step 6: Setup a backup strategy
Setting up RAID will not protect you for all possible causes of data loss. The most frequent cause of data loss is still the man or woman behind the keyboard. You. One simple rm might turn into a nightmare. And there is always the risk of hardware failures. So you have to put up a backup strategy. The best backup strategies do not involve human interference. A nice cron-job is much more reliable.