Added debian-dist and debian-upload targets. Also documented usage.
[privoxy.git] / doc / source / privoxy-man-page.sgml
1 <!--
2  File        :  $Source: /cvsroot/ijbswa/current/doc/source/privoxy-man-page.sgml,v $
3
4  Purpose     :  Manual Page
5                 This file belongs into
6                 ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
7                 
8  $Id: privoxy-man-page.sgml,v 1.13 2002/05/15 00:12:07 hal9 Exp $
9
10  Copyright (C) 2001, 2002 Privoxy Developers <developers@privoxy.org>
11  See LICENSE.
12
13  ========================================================================
14  NOTE: Please read developer-manual/documentation.html before touching 
15  anything in this, or other Privoxy documentation. 
16  ========================================================================
17
18  Doc NOTES: This is some tricky markup! There are some quirks
19  to how this markup is handled. It is not always so co-operative.
20  Please don't change the markup unless you can verify the changes 
21  will improve finished output! 
22  
23  literallayout tags are particularly sensitive to where they are placed.
24  The 'replaceable' and 'command' tags are used here somewhat unconventionally,
25  since it seems to generate the proper formatting (at least for me :).
26
27  Create man page: 'make man'
28
29  Requires docbook2man (short perl script), see CVS
30  http://sources.redhat.com/docbook-tools/. Also requires openjade and SGMLSpm
31  perl module. 
32  
33  For man page references, see:
34  http://www.linuxdoc.org/HOWTO/mini/DocBook-Install/using.html
35  http://docbook.org/tdg/en/html/ch02.html#making-refentry
36
37 -->
38 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"[
39 <!entity % dummy "IGNORE"> 
40 <!entity p-intro SYSTEM "privoxy.sgml">
41 <!entity seealso SYSTEM "seealso.sgml">
42 <!entity copyright SYSTEM "copyright.sgml">
43 <!entity license SYSTEM "license.sgml">
44 <!entity authors SYSTEM "p-authors.sgml">
45 <!entity p-version "2.9.15">
46 <!entity p-status "beta">
47 <!entity % p-not-stable "INCLUDE">
48 <!entity % p-stable "IGNORE">
49 <!entity % p-text "IGNORE">           <!-- define we are not a text only doc -->
50 <!entity % p-authors-formal "IGNORE"> <!-- exclude additional formating      -->
51 <!entity my-copy "(C)">               <!-- db2man barfs on copyright symbol  -->
52 ]>
53
54 <refentry id="privoxy">
55 <refentryinfo>
56  <date>2002-05-14</date>
57 </refentryinfo>
58 <refmeta>
59  <refentrytitle>privoxy</refentrytitle> 
60  <manvolnum>1</manvolnum>
61  <refmiscinfo>
62   Privoxy &p-version;<![%p-not-stable;[ &p-status;]]>
63  </refmiscinfo>
64 </refmeta>
65
66 <refnamediv>
67  <refname><application>privoxy</application></refname>
68  <refpurpose>Privacy Enhancing Proxy</refpurpose>
69 </refnamediv>
70
71 <refsynopsisdiv>
72  <cmdsynopsis> 
73   <command>privoxy</command>
74   <arg><option>--help</option></arg>
75   <arg><option>--version</option></arg>
76   <arg><option>--no-daemon</option></arg>
77   <arg><option>--pidfile </option><replaceable class="parameter">pidfile</replaceable></arg>  
78   <arg><option>--user </option><replaceable class="parameter">user[.group]</replaceable></arg> 
79   <arg><replaceable class="parameter">configfile</replaceable></arg>        
80   <command>(UNIX)</command>
81  </cmdsynopsis>
82
83  <cmdsynopsis> 
84   <command>privoxy.exe</command>              
85   <arg><replaceable class="parameter">configfile</replaceable></arg>
86   <command>(Windows)</command>
87  </cmdsynopsis>                                      
88 </refsynopsisdiv>
89
90
91 <!--   ~~~~~       New section      ~~~~~     -->
92 <refsect1><title>Options</title>
93  <para>
94   <command>Privoxy</command> may be invoked with the following command line
95   options:
96  </para>
97
98  <variablelist>                                          
99   <varlistentry>
100     <term>--help</term>
101       <listitem>
102        <para>
103          Print brief usage info and exit.
104         </para>
105       </listitem>
106   </varlistentry>
107
108   <varlistentry>
109     <term>--version</term>
110       <listitem>
111        <para>
112          Print version info and exit.
113         </para>
114       </listitem>
115   </varlistentry>
116
117   <varlistentry>
118     <term>--no-daemon</term>
119      <listitem>
120       <para>
121         Don't  become  a daemon, i.e. don't fork and become process group
122         leader, don't detach from controlling tty, and do all logging there.
123       </para>
124     </listitem>
125   </varlistentry>
126
127   <varlistentry>
128     <term>--pidfile <replaceable class="parameter">pidfile</replaceable></term>
129      <listitem>
130       <para>
131         On startup, write the process ID to <replaceable class="parameter">pidfile</replaceable>.
132         Delete the <replaceable class="parameter">pidfile</replaceable> on exit.
133         Failiure to create or delete the <replaceable class="parameter">pidfile</replaceable>
134         is non-fatal. If no <command>--pidfile</command> option is given, no PID file will be used.
135       </para>
136     </listitem>
137   </varlistentry>
138
139   <varlistentry>
140     <term>--user <replaceable class="parameter">user[.group]</replaceable></term>
141      <listitem>
142       <para>
143        <!-- Note: replaceable is maybe the wrong tag, but generates  -->
144        <!-- correct looking man output.                              -->
145        After (optionally) writing the PID file, assume the user ID of
146        <replaceable class="parameter">user</replaceable> and the GID of
147        <replaceable class="parameter">group</replaceable>, or, if the optional
148        <replaceable class="parameter">group</replaceable> was not given, the default group of
149        <replaceable class="parameter">user</replaceable>. Exit if the privileges are not
150        sufficient to do so.
151      </para>
152     </listitem>
153   </varlistentry>
154  </variablelist>
155  
156  <para>
157   If the <filename>configfile</filename> is not specified on  the  command  line,
158   <command>Privoxy</command>  will  look for a file named
159   <filename>config</filename> in the current directory (except on Win32 where
160   it will try <filename>config.txt</filename>). If no
161   <filename>configfile</filename> is found, <command>Privoxy</command> will 
162   fail to start.
163  </para>
164
165 </refsect1>
166
167
168 <!--   ~~~~~       New section      ~~~~~     -->
169 <refsect1><title>Description</title>
170 <!-- Include privoxy.sgml boilerplate: -->
171  &p-intro;
172 <!-- end boilerplate -->
173 </refsect1>
174
175
176 <!--   ~~~~~       New section      ~~~~~     -->
177 <refsect1><title>Installation and Usage</title>
178 <para>
179  Browsers must be individually configured to use <command>Privoxy</command> as
180  a HTTP proxy.  The default setting is  for  localhost,  on port  8118
181  (configurable in the main config file).  To set the HTTP proxy in Netscape
182  and Mozilla, go through:  <command>Edit</command>;
183  <command>Preferences</command>;  <command>Advanced</command>;
184  <command>Proxies</command>;  <command>Manual Proxy Configuration</command>;
185  <command>View</command>. 
186 </para>
187 <para>
188  For Internet Explorer, go through: <command>Tools</command>; 
189  <command>Internet Properties</command>; <command>Connections</command>;
190  <command>LAN Settings</command>. 
191 </para>
192 <para>
193  The Secure (SSL) Proxy should also be set to the same values, otherwise
194  https: URLs will not be proxied. 
195 </para>
196 <para>
197  For other browsers, check the documentation.
198 </para>
199 </refsect1>
200
201
202 <!--   ~~~~~       New section      ~~~~~     -->
203 <refsect1><title>Configuration</title>
204 <para>
205  <command>Privoxy</command> can be configured with the various configuration
206  files. The default configuration files are: <filename>config</filename>,
207  <filename>default.filter</filename>, and
208  <filename>default.action</filename>. <filename>user.action</filename> should 
209  be used for locally defined exceptions to the default rules of
210  <filename>default.action</filename> These are all well commented.  On Unix
211  and Unix-like systems, these are located in
212  <filename>/etc/privoxy/</filename> by default. On Windows, OS/2 and AmigaOS,
213  these files are in the same directory as the <command>Privoxy</command>
214  executable.
215 </para>
216 <para>
217  The name and number of configuration files has changed from previous
218  versions<![%p-not-stable;[, and is subject to change as development
219  progresses]]>. In fact, the configuration itself is changed  and  much more
220  sophisticated. See the <ulink
221  url="http://www.privoxy.org/user-manual/">user-manual</ulink> for a complete
222  explanation of all configuration options and general usage, and notes for 
223  upgrading from <command>Junkbuster</command> and earlier <command>Privoxy</command>
224  versions.
225 </para>
226 <para>
227  The actions list (ad blocks, etc) can also be configured with your
228  web browser at <ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>.
229  <command>Privoxy's</command> configuration parameters  can also  be viewed at
230  the same page. In addition, <command>Privoxy</command> can be toggled on/off.
231  This is an internal page, and does not require Internet access.
232 </para>
233 </refsect1>
234
235
236 <!--   ~~~~~       New section      ~~~~~     -->
237 <refsect1><title>Sample Configuration</title>
238 <para>
239  A brief example of what a simple <filename>default.action</filename>
240  configuration might look like:
241 </para>
242
243 <literallayout>
244  # Define a few useful custom aliases for later use
245  {{alias}}
246
247  # Useful aliases
248  +crunch-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
249  -crunch-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
250  +imageblock      = +block +handle-as-image
251
252  # Fragile sites should have the minimum changes
253  fragile     = -block -deanimate-gifs -fast-redirects -filter \
254                -hide-referer -prevent-cookies -kill-popups
255
256  ## Turn some actions on ################################
257  { \
258  -add-header \
259  -block \
260  +deanimate-gifs{last} \
261  -downgrade-http-version \
262  -fast-redirects \
263  +filter{html-annoyances} \
264  +filter{js-annoyances} \
265  +filter{content-cookies} \
266  +filter{webbugs} \
267  +filter{banners-by-size} \
268  +hide-forwarded-for-headers \
269  +hide-from-header{block} \
270  +hide-referrer{forge} \
271  -hide-user-agent \
272  -handle-as-image \
273  +set-image-blocker{pattern} \
274  -limit-connect \
275  +prevent-compression \
276  +session-cookies-only \
277  -crunch-cookies \
278  -kill-popups \
279  }
280  /   # '/' Matches *all* URL patterns
281  
282  # Block, and treat these URL patterns as if they were 'images'.
283  # We would expect these to be ads.
284  {+imageblock}
285   .ad.doubleclick.net
286   .a[0-9].yimg.com/(?:(?!/i/).)*$
287   ad.*.doubleclick.net
288
289  # Block any URLs that match these patterns
290  {+block}
291   ad*.
292   .*ads.
293   banner?.
294   /.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
295   .hitbox.com 
296
297  # Make exceptions for these harmless ones that would be 
298  # caught by our +block patterns just above.
299  {-block}
300   adsl.
301   advice.
302   .*downloads.
303
304 </literallayout>
305
306 <para>
307  Then for a <filename>user.action</filename>, we would put local,
308  narrowly defined exceptions:
309 </para>
310
311 <literallayout>
312  # Re-define aliases as needed here
313  {{alias}}
314
315  # Useful aliases
316  -crunch-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
317  
318  # Set personal exceptions to the policies in default.action #######
319
320  # Sites where we want persistant cookies, so allow *all* cookies
321  {-crunch-cookies -session-cookies-only}
322   .redhat.com
323   .sun.com
324   .msdn.microsoft.com
325  
326  # This site breaks easily.
327  {-block -fast-redirects}
328   .forbes.com
329
330 </literallayout>
331
332 <para>
333  See the comments in the configuration files themselves, or the 
334  <citetitle>user-manual</citetitle>
335  for explanations of the above syntax, and other <command>Privoxy</command>
336  configuration options.
337 </para>
338
339 </refsect1>
340
341
342 <!--   ~~~~~       New section      ~~~~~     -->
343 <refsect1><title>Files</title>
344 <!-- this is a cheesy way to do this, but WTF. -->
345 <literallayout> 
346  <filename>/usr/sbin/privoxy</filename>
347  <filename>/etc/privoxy/config</filename>
348  <filename>/etc/privoxy/default.action</filename>
349  <filename>/etc/privoxy/standard.action</filename>
350  <filename>/etc/privoxy/user.action</filename>
351  <filename>/etc/privoxy/default.filter</filename>
352  <filename>/etc/privoxy/trust</filename>
353  <filename>/etc/privoxy/templates/*</filename>
354  <filename>/var/log/privoxy/logfile</filename>
355 </literallayout>
356
357 <para>
358  Various other files should be included, but may vary depending on platform
359  and build configuration. More documentation should be included in the local
360  documentation directory.
361 </para>
362
363 </refsect1>
364
365
366 <!--   ~~~~~       New section      ~~~~~     -->
367 <refsect1><title>Signals</title>
368 <para>
369  <!-- command tag is used here to get proper looking format  -->
370  <command>Privoxy</command> terminates on the <command>SIGINT</command>,
371  <command>SIGTERM</command> and <command>SIGABRT</command> signals. Log
372  rotation scripts may cause a re-opening of the logfile by sending a 
373  <command>SIGHUP</command> to <command>Privoxy</command>. Note that unlike
374  other daemons,  <command>Privoxy</command> does not need to be made aware of
375  config file changes by <command>SIGHUP</command> -- it will detect them
376  automatically. 
377 </para>
378
379 </refsect1>
380
381 <!--   ~~~~~       New section      ~~~~~     -->
382 <refsect1><title>Notes</title>
383 <![%p-not-stable;[
384 <para>
385  This is a &p-status; version of <command>Privoxy</command>. Not 
386  all features are well tested.
387 </para>]]>
388 <para>
389  Please see the <citetitle>User Manual</citetitle> on how to contact the
390  developers for feature requests, reporting problems, and other questions.
391 </para>
392
393 </refsect1>
394
395 <!--   ~~~~~       New section      ~~~~~     -->
396 <refsect1><title>See Also</title>
397 <!-- Include seealso.sgml boilerplate: -->
398  &seealso;
399 <!-- end boilerplate -->
400 </refsect1>
401
402 <!--   ~~~~~       New section      ~~~~~     -->
403 <refsect1><title>Development Team</title>
404 <!-- Include p-authors.sgml boilerplate: -->
405  &authors;
406 <!-- end boilerplate -->
407 </refsect1>
408
409 <!--   ~~~~~       New section      ~~~~~     -->
410 <refsect1><title>Copyright and License</title>
411
412 <refsect2><title>Copyright</title>
413 <!-- Include copyright.sgml boilerplate: -->
414  &copyright;
415 <!-- end boilerplate -->
416 </refsect2>
417
418 <refsect2><title>License</title>
419 <!-- Include license.sgml boilerplate: -->
420  &license;
421 <!-- end boilerplate -->
422 </refsect2>
423 </refsect1>
424
425 </refentry>