Some time ago I bought the HP t5720 Thin Client terminal to run as server for my stuff. It has an AMD Geode NX 1500 (x86, 1000 MHz) / 512 MB ​​RAM / 6 USB ports / audio IO / VGA on board, and most importantly, it is completely silent. 512MB of manufacturer ATA flash memory allows only to place Windows XP Embedded or truncated Debian. Therefore, I installed Linux distribution on a cheap 4GB pendrive.

HP t5720 Thin Client

Note: I’ve included only the basic configuration guidelines and I do not take responsibility for the consequences of improper configuration and security of your machine. You do everything at your own risk. Most commands here should be run as root.

Installation

Keywords for usable Debian with minimal storage usage:

  • usb storage netinstall with all packages unchecked / debootstrap;
  • after installation: localepurge, deborphan, using apt-get without recommended packages, dropgear ssh server;
  • remove unnecessary packages:

apt-get --purge remove wamerican tasksel tasksel-data dictionaries-common laptop-detect man-db info manpages

I had been playing with different settings and services when after a few months first read errors appeared. I advise against the use of cheap USB storages. I decided to reinstall the system (Debian 7.2 “Wheezy” with Xfce environment) on external hard drive and share with you my experience.

Wake On LAN

WOL allow turning on server remotely using a laptop, phone or other device plugged into the network. To use enable it in BIOS and run:

apt-get install ethtool
ethtool -s eth0 wol g

This can be automated by editing /etc/network/interfaces, my looks like:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

iface eth0 inet dhcpsud
post-up /sbin/ethtool -s $IFACE wol g
post-down /sbin/ethtool -s $IFACE wol g 

SSH without password prompt

Most of time you (or your scripts) will set up and use server features via SSH. You can avoid having to type your password every time. Commands on server side:

mkdir ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

and on client:

ssh-keygen -t dsa
#(hit enter to default filename and when password prompt)
cat ~/.ssh/id_dsa.pub | ssh user@serveraddress.com "cat - >> ~/.ssh/authorized_keys"
#(type password) 

Printer and file sharing with CUPS and SAMBA

To support printers you need a cups and cups-client pakages. Own permission to setting printers:

usermod -aG lpadmin username

Now install drivers. You can manage printers on localhost:631 web page in your browser. If you want simply share all printers in local area from console run:

sudo cupsctl --share-printers

Install samba package. Edit /etc/samba/smb.conf, make sure line “security = user” is uncommented. To make printers discoverable in [printers] section set browseable parameter to yes. You can also add shared folder like this:

[ShareName]
    path = /path/to/shared/dir
    read only = no
    writeable = yes
    browseable = yes
    valid users = user
    create mask = 0640
    directory mask = 0750

You can change your samba password in console:

 pdbedit -a -u username 

After all changes restart CUPS and SAMBA:

/etc/init.d/cups restart
/etc/init.d/samba restart

Well done, you should be able to access your resources from Linux and Windows or even Android device (eg. Let’s Print Droid).

Audio and MPD

For base audio support I installed alsa-base & alsa-utils packages. I recommend madplay as console player (it’s VERY small). For background playback run:

nohup madplay -Q -v foobar.mp3 >/dev/null &
#to stop simply kill madplay:
killall madplay

And what if we want to have a remote controlled stereo? Music Player Daemon was made ​​for this. Lets try it out!

  • install mpd and mpc packages,
  • it is problematic to play music for all users after boot, the easiest, but least safe way is to give the music folder permissions for everyone (I use special partition mounted with noexec option),
  • edit /etc/mpd.conf and change music_directory to your music path, bind_to_address   =>  “any”, uncomment auto_update, if you don’t have Avaci server set zeroconf_enabled  to “no”,
  • perform mpd restart  sudo /etc/init.d/mpd restart,
  • run:
    mpc update
    mpc ls | mpc add
    mpc play
    #if you can't hear music try:
    sudo chsh -s /bin/true mpd
    

    If still no playback try set sympfollow_outside_symlinks to “yes”.

List of MPD Clients

LAMP

Linux-Apache-MySQL-PHP combination is all you need to set up your WWW server.

MySQL:

apt-get install mysql-server mysql-client 

Enter password and repeat  it when prompted.

Apache2:

apt-get install apache2

Test with localhost or server ip address on web browser. Should display “it works!” page.

PHP5:

apt-get install php5 libapache2-mod-php5

apt-get install php5-mysql 

PhpMyAdmin:

apt-get install phpmyadmin 

Choose apache2 and  “yes” for “dbconfig-common” question, type passwords.
After that if localhost/phpmyadmin is Not Found add

Include /etc/phpmyadmin/apache.conf

to the end of /etc/apache2/apache2.conf file.