The print vm is a web-based printing interface. Users can register accounts using their Clarkson usernames and print to the CSLabs Printer using the web interface. See Printing for more information on this process.
The machine uses cups (specifically the lp command) to interface with the printer, PyKota to handle quotas, and an Apache/PHP/MySQL stack to handle the web interface. The source code for the web interface is available through the svn server (print-server repository). As the files contain passwords, anonymous access is disallowed, but you can request access by emailing <email>firstname.lastname@example.org</email>.
Set up process
To interface with the printer, cupsys and cupsys-client were installed. The packages python-mysqldb, python-egenix-mxdatetime, python-pysnmp4, pkpgcounter, python-reportlab, and subversion were installed as dependencies for PyKota. PyKota 0.07 was installed from source following the instructions on  and in the README. Finally, apache2, php5, libapache2-mod-php5, mysql-server, mysql-client, and php5-mysql were installed for the web services. The configuration files have been omitted because the primary changes from the defaults were to set passwords.
Creating a user:
$ pkusers --add --limitby balance --balance 100 <<USERNAME>> $ edpykota --add --printer CSLabsPrinter <<USERNAME>> $ mysql pykota mysql> UPDATE users SET password=<<MD5ed PASSWORD>> WHERE username=<<USERNAME>>
Increasing the balance for a user:
$ pkusers --balance +<<NUM PAGES>> --comment "<<REASON FOR INCREASE>>" <<USERNAME>>
Pull balance information:
$ pkusers -L