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