root / pykota / trunk / docs / introduction.sgml @ 3255

Revision 3116, 13.3 kB (checked in by jerome, 18 years ago)

Improved the documentation.

  • Property svn:keywords set to Author Date Id Revision
Line 
1<!-- $Id$ -->
2
3<chapter>
4  <title id="introduction">Introduction to PyKota</title>
5 
6  <para>Last modified on $Date$</para>
7 
8  <para>
9    This chapter will briefly introduce you to PyKota, and will familiarize
10    you with this software and its components.
11  </para>
12 
13 
14  <sect1>
15    <title>What is <application>PyKota</application> ?</title>
16   
17    <para>
18      <application>PyKota</application> is a print quota and print accounting software solution
19      for GNU/Linux and compatible print servers.
20    </para>
21   
22    <para>
23      PyKota currently supports the
24      <ulink url="http://www.cups.org"><application>CUPS</application></ulink>
25      <footnote><para>Common UNIX Printing System</para></footnote>
26      printing subsystem, although older releases also supported
27      <ulink url="http://lprng.sourceforge.net"><application>LPRng</application></ulink>.
28    </para>
29   
30    <para>
31      PyKota is distributed under the terms of the GNU General Public License of the
32      <ulink url="http://www.fsf.org">Free Software Foundation</ulink>. This means that
33      you are allowed to use, modify or redistribute its code provided that you respect
34      the terms of this license.
35    </para>
36   
37    <para>
38      We believe that despite being a bit rough around the edges sometimes, <application>PyKota</application>
39      offers an unmatched flexibility and probably all you want to do with a print quota software is
40      either already included, easily scriptable with a few lines of shell scripting, or planned
41      for the next release.
42    </para>
43   
44    <para>
45      <application>PyKota</application> is however a somewhat complex piece of software, and installing
46      it will mandate that you also install several dependencies beforehand, as you'll see in the
47      next chapter.
48    </para>
49   
50    <para>
51      <application>PyKota</application> is made of the following components :
52      <itemizedlist>
53        <listitem>
54          <para>
55            Configuration files, which must be placed into the system user
56            <literal>pykota</literal>'s home directory as defined in <filename>/etc/passwd</filename>
57            <footnote>
58              <para>If your <filename>/etc/passwd</filename> contains something like
59                <literal>pykota:x:1001:1001:PyKota Admin,,,:/etc/pykota:/bin/sh</literal>
60                then the home directory is <filename>/etc/pykota</filename>
61              </para>
62            </footnote> :
63            <itemizedlist>
64              <listitem>
65                <para>
66                  <filename>pykotadmin.conf</filename> : this file contains sensitive database settings
67                  allowing the <application>PyKota</application> software to modify the
68                  print quota database. This file should be protected and should only be
69                  made readable by the administrators of <application>PyKota</application>
70                  and the system user the printing subsystem is running as.
71                  The possibility for a particular user to read this file determines if
72                  this user is a <application>PyKota</application> Administrator or not,
73                  so please give particular attention to this file's permissions.
74                </para>
75              </listitem> 
76              <listitem>
77                <para>
78                  <filename>pykota.conf</filename> : this is the main configuration file for
79                  <application>PyKota</application>. It contains database settings which
80                  allow the <application>PyKota</application> software to access to the print
81                  quota database in readonly mode, as well as global and print queue specific
82                  configuration directives. With a properly configured <application>PyKota</application>,
83                  letting normal users read this file is safe
84                  excepted where you want to forbid users to read other users' print quota
85                  information. However if you're not confident about your database settings,
86                  it's better to not let normal users read this file. This way they can't even
87                  use any of the <application>PyKota</application> command line tools.
88                </para>
89              </listitem> 
90            </itemizedlist>
91          </para>
92        </listitem> 
93        <listitem>
94          <para>
95            Either a <application>PostgreSQL</application>, <application>MySQL</application> or <application>SQLite</application> database, or an <acronym>LDAP</acronym>
96            <footnote><para>Lightweight Directory Access Protocol</para></footnote>
97            <acronym>DIT</acronym>
98            <footnote><para>Directory Information Tree</para></footnote> :
99            <application>PyKota</application> can store its datas into any of these. Support
100            for other database backends might be added in a future release.
101          </para>
102        </listitem> 
103        <listitem>
104          <para>
105            A generic <acronym>CUPS</acronym> backend wrapper, named <command>cupspykota</command> :
106            this software captures all print jobs passing through the print queues it manages,
107            and does the accounting and quota checking. It can reject print jobs in a number
108            of circumstances like the user being over quota, and interact with the end user through the use of external
109            commands or shell scripts. This software is written in such a manner than system
110            administrators can plug their own scripts at the most strategic points of the
111            printing process, through specific directives that you put in <application>PyKota</application>'s
112            configuration files.
113          </para>
114        </listitem> 
115        <listitem>
116          <para>
117            Several command line tools to manage print quotas and accounting. All of these
118            commands accept the <literal>--version</literal> and <literal>--help</literal>
119            command line switches, and all have a manual page. Many manual pages are available
120            in several native languages and contain usage examples. Some commands have many
121            options and switches, so please read their help carefully.
122            <itemizedlist>
123              <listitem>
124                <para>
125                  <command>pksetup</command> : to install PyKota in a completely
126                  interactive way, but currently only under Debian and Ubuntu.
127                </para>
128              </listitem> 
129              <listitem>
130                <para>
131                  <command>pkturnkey</command> : to help you do the initial
132                  configuration and database initialization. This command almost transforms <application>PyKota</application>
133                  into a turn-key solution, hence the name.
134                </para>
135              </listitem> 
136              <listitem>
137                <para>
138                  <command>pkprinters</command> : to manage printers and printers groups.
139                </para>
140              </listitem> 
141              <listitem>
142                <para>
143                  <command>pkusers</command> : to manage users and users groups.
144                </para>
145              </listitem> 
146              <listitem>
147                <para>
148                  <command>edpykota</command> : to manage users' and users groups' print quota entries.
149                </para>
150              </listitem> 
151              <listitem>
152                <para>
153                  <command>pkbcodes</command> : to manage billing codes.
154                </para>
155              </listitem> 
156              <listitem>
157                <para>
158                  <command>repykota</command> : to do some basic print quota reporting.
159                </para>
160              </listitem> 
161              <listitem>
162                <para>
163                   <command>dumpykota</command> : to dump the database's contents in a portable
164                   way. This command can be used to export <application>PyKota</application>'s
165                   datas to third party software, like print log analyzers or spreadsheets, and
166                   numerous output formats are supported, like <acronym>csv</acronym> and <acronym>XML</acronym>
167                </para>
168              </listitem> 
169              <listitem>
170                <para>
171                   <command>autopykota</command> : to automate the creation of user print accounts on
172                   first print. This command is not meant to be used from the command line, but
173                   instead from <filename>pykota.conf</filename>'s <literal>policy</literal> directive.
174                </para>
175              </listitem> 
176              <listitem>
177                <para>
178                  <command>pykosd</command> : to display their remaining credits or
179                  pages to end users. This is an <acronym>OSD</acronym> <footnote><para>On Screen Display</para></footnote>
180                  application which works under the X Window system.
181                </para>
182              </listitem> 
183              <listitem>
184                <para>
185                  <command>pykotme</command> : to give detailed quotes to end users before they print, this way
186                  they know in advance how much a print job will cost to them and can decide to route it to
187                  a less costly printer.
188                </para>
189              </listitem> 
190              <listitem>
191                <para>
192                   <command>pkbanner</command> : to generate dynamic banner pages when printing.
193                   This command is
194                   not meant to be used from the command line, but
195                   instead from <filename>pykota.conf</filename>'s <literal>startingbanner</literal>
196                   and <literal>endingbanner</literal> directives. If you prefer you can use
197                   your own generator of dynamic banner pages or even static banner pages.
198                </para>
199              </listitem> 
200              <listitem>
201                <para>
202                  <command>warnpykota</command> : to warn users over quota from time to time, for example
203                  from <filename>crontab</filename>. Users are warned while printing in any case, so
204                  this command is meant to be used as a periodic reminder.
205                </para>
206              </listitem> 
207              <listitem>
208                <para>
209                  <command>pkmail</command> : to let users obtain their print quota situation by email.
210                  In the future other functionnalities will be added.
211                  This command is not meant to be used from the command line, but
212                  instead as a pipe from your mail server's <filename>/etc/aliases</filename> file.
213                </para>
214              </listitem> 
215              <listitem>
216                <para>
217                  <command>pknotify</command> : a client for the <application>PyKotIcon</application> cross-platform generic network dialog box manager. This
218                  tools allow you to interact with end users at printing time.
219                </para>
220              </listitem> 
221              <listitem>
222                <para>
223                  <command>pkinvoice</command> : an invoice generator which can create personalized PDF invoices
224                  for your users from their printing history.
225                </para>
226              </listitem> 
227              <listitem>
228                <para>
229                  <command>pkrefund</command> : a tool with which you can refund print jobs
230                  when there was an accounting problem. It can generate printable receipts
231                  in the PDF format.
232                </para>
233              </listitem> 
234            </itemizedlist>
235          </para>
236        </listitem> 
237        <listitem>
238          <para>
239            Several <acronym>CGI</acronym> scripts which constitute <application>PyKota</application>'s web interface.
240            All these scripts behave differently when they are protected with an username and password
241            compared to when they are not. See <filename>pykota/cgi-bin/README</filename> for
242            details.
243            <itemizedlist>
244              <listitem>
245                <para>
246                  <command>printquota.cgi</command> : to do basic print quota reports like repykota,
247                  and also to examine the printing history, which is not possible with repykota for now.
248                </para>
249              </listitem> 
250              <listitem>
251                <para>
252                  <command>dumpykota.cgi</command> : identical to the <command>dumpykota</command>
253                  command line tool, but works from within a web browser.
254                </para>
255              </listitem> 
256              <listitem>
257                <para>
258                  <command>pykotme.cgi</command> : identical to the <command>pykotme</command>
259                  command line tool, but works from within a web browser.
260                </para>
261              </listitem> 
262            </itemizedlist>
263          </para>
264        </listitem> 
265        <listitem>
266          <para>
267            Several helper scripts and contributed stuff to handle very specific configurations.
268            Please visit the subdirectories of the <filename>pykota/</filename> source directory, and
269            you may find interesting things...
270          </para>
271        </listitem> 
272      </itemizedlist>
273    </para>
274   
275  </sect1> 
276 
277</chapter>
278
Note: See TracBrowser for help on using the browser.