Have you ever heard of google cloud print? It allows you to add your printers to the cloud and share them. You can print on them from any device supporting this service, even if you are on another network. This sounds pretty cool, I gave it a try and I am really amazed.

None of my printers doesn’t support cloud print directly, so I need a google chrome installation to share the printer. But I don’t want to have my computer to run when printing remotely. There is a project called Google CloudPrint on Linux which allows you to use this nice service from the command line. At this point the dockstar or the linkstation joines the game.

To use your debian server as a printserver for cloud print, you need to configure your printer correctly. You will need cups. Here you can find everything needed to set it up: Debian as Printserver and Scanserver with HPLIP, CUPS, SANE

Now lets install cloudprint:

apt-get install python-pip python-cups
pip install daemon
pip install cloudprint

To manage startup, create the init-script /etc/init.d/cloudprint with following contents: Make sure to set USER to the user you want cloudprint is ran as.

#!/bin/bash
# /etc/rc.d/cloudprint
# Description: Starts the Google Cloud Print script on startup
# ----------------
#
### BEGIN INIT INFO
# Provides: Cloud-Print
# Required-Start: $cups $network $local_fs $syslog
# Required-Stop: $local_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Start Google Cloud Print
### END INIT INFO

USER="myuser"
PIDFILE="/var/run/cloudprint/pid"

case $1 in
	start)
		echo -n "Starting Google Cloud Print: "
		sudo -u $USER cloudprint -d -p $PIDFILE
	;;
	stop)
		echo -n "Stopping Google Cloud Print: "
		killall cloudprint
	;;
	restart)
		echo -n "Restarting Google Cloud Print: "
		killall cloudprint
		sudo -u $USER cloudprint -d -p $PIDFILE
	;;
	*)
		echo "Usage: cloudprint {start|stop|restart}"
	;;
esac

Make it executable, create the path for the pidfile and start it on startup:

chmod +x /etc/init.d/cloudprint
mkdir /var/run/cloudprint
chmod 777 /var/run/cloudprint
insserv cloudprint

You now should be able to run a test:

/etc/init.d/cloudprint start

Enter the username and password of the google account you want to use when prompted. If everything is done you should see the printer at http://www.google.com/cloudprint/#printers. If you now hit CTRL+P in chrome and select cloud print, a print job should be created and your printer will start printing.

Check this for other clients to print in a cloud: http://www.google.com/cloudprint/learn/apps.html I have tested the android app Cloud Print BETA and my job has been printed flawlessly!