46d966821e2c79bd993752f441f8926549e2d39e
[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 2.49 2014/05/26 10:48:39 fabiankeil Exp $
9
10  Copyright (C) 2001-2012 Privoxy Developers http://www.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 "3.0.24">
46 <!entity p-status "UNRELEASED">
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 <!entity % seealso-extra "IGNORE">    <!-- for excluding sections of seealso -->
53 ]>
54
55 <refentry id="privoxy">
56 <refentryinfo>
57  <date>2012-11-08</date>
58 </refentryinfo>
59 <refmeta>
60  <refentrytitle>privoxy</refentrytitle>
61  <manvolnum>1</manvolnum>
62  <refmiscinfo>
63   Privoxy &p-version;<![%p-not-stable;[ &p-status;]]>
64  </refmiscinfo>
65 </refmeta>
66
67 <refnamediv>
68  <refname><application>privoxy</application></refname>
69  <refpurpose>Privacy Enhancing Proxy</refpurpose>
70 </refnamediv>
71
72 <refsynopsisdiv>
73  <cmdsynopsis>
74   <command>privoxy</command>
75   <arg><option>--chroot</option></arg>
76   <arg><option>--config-test</option></arg>
77   <arg><option>--help</option></arg>
78   <arg><option>--no-daemon</option></arg>
79   <arg><option>--pidfile </option><replaceable class="parameter">pidfile</replaceable></arg>
80   <arg><option>--pre-chroot-nslookup </option><replaceable class="parameter">hostname</replaceable></arg>
81   <arg><option>--user </option><replaceable class="parameter">user[.group]</replaceable></arg>
82   <arg><option>--version</option></arg>
83   <arg><replaceable class="parameter">configfile</replaceable></arg>
84  </cmdsynopsis>
85
86 </refsynopsisdiv>
87
88
89 <!--   ~~~~~       New section      ~~~~~     -->
90 <refsect1><title>Options</title>
91  <para>
92   <command>Privoxy</command> may be invoked with the following command line
93   options:
94  </para>
95
96  <variablelist>
97
98   <varlistentry>
99     <term>--chroot</term>
100      <listitem>
101       <para>
102        Before changing to the user ID given in the --user option, chroot to
103        that user's home directory, i.e. make the kernel pretend to the
104        <command>Privoxy</command> process that the directory tree starts
105        there. If set up carefully, this can limit the impact of possible
106        vulnerabilities in <command>Privoxy</command> to the files contained in
107        that hierarchy.
108       </para>
109     </listitem>
110   </varlistentry>
111
112   <varlistentry>
113     <term>--config-test</term>
114       <listitem>
115        <para>
116          Exit after loading the configuration files before binding to
117          the listen address. The exit code signals whether or not the
118          configuration files have been successfully loaded.
119        </para>
120        <para>
121          If the exit code is 1, at least one of the configuration files
122          is invalid, if it is 0, all the configuration files have been
123          successfully loaded (but may still contain errors that can
124          currently only be detected at run time).
125         </para>
126        <para>
127          This option doesn't affect the log setting, combination with
128          "--no-daemon" is recommended if a configured log file shouldn't
129          be used.
130        </para>
131       </listitem>
132   </varlistentry>
133
134   <varlistentry>
135     <term>--help</term>
136       <listitem>
137        <para>
138          Print brief usage info and exit.
139         </para>
140       </listitem>
141   </varlistentry>
142
143   <varlistentry>
144     <term>--no-daemon</term>
145      <listitem>
146       <para>
147         Don't  become  a daemon, i.e. don't fork and become process group
148         leader, don't detach from controlling tty, and do all logging there.
149       </para>
150     </listitem>
151   </varlistentry>
152
153   <varlistentry>
154     <term>--pidfile <replaceable class="parameter">pidfile</replaceable></term>
155      <listitem>
156       <para>
157         On startup, write the process ID to <replaceable class="parameter">pidfile</replaceable>.
158         Delete the <replaceable class="parameter">pidfile</replaceable> on exit.
159         Failure to create or delete the <replaceable class="parameter">pidfile</replaceable>
160         is non-fatal. If no <command>--pidfile</command> option is given, no PID file will be used.
161       </para>
162     </listitem>
163   </varlistentry>
164
165   <varlistentry>
166     <term>--pre-chroot-nslookup <replaceable class="parameter">hostname</replaceable></term>
167      <listitem>
168       <para>
169         Initialize the resolver library using <replaceable class="parameter">hostname</replaceable>
170         before chroot'ing. On some systems this reduces the number of files
171         that must be copied into the chroot tree.
172      </para>
173     </listitem>
174   </varlistentry>
175
176   <varlistentry>
177     <term>--user <replaceable class="parameter">user[.group]</replaceable></term>
178      <listitem>
179       <para>
180        <!-- Note: replaceable is maybe the wrong tag, but generates  -->
181        <!-- correct looking man output.                              -->
182        After (optionally) writing the PID file, assume the user ID of
183        <replaceable class="parameter">user</replaceable> and the GID of
184        <replaceable class="parameter">group</replaceable>, or, if the optional
185        <replaceable class="parameter">group</replaceable> was not given, the default group of
186        <replaceable class="parameter">user</replaceable>. Exit if the privileges are not
187        sufficient to do so.
188      </para>
189     </listitem>
190   </varlistentry>
191
192   <varlistentry>
193     <term>--version</term>
194       <listitem>
195        <para>
196          Print version info and exit.
197         </para>
198       </listitem>
199   </varlistentry>
200
201  </variablelist>
202
203  <para>
204   If the <filename>configfile</filename> is not specified on  the  command  line,
205   <command>Privoxy</command>  will  look for a file named
206   <filename>config</filename> in the current directory. If no
207   <filename>configfile</filename> is found, <command>Privoxy</command> will
208   fail to start.
209  </para>
210
211 </refsect1>
212
213
214 <!--   ~~~~~       New section      ~~~~~     -->
215 <refsect1><title>Description</title>
216 <!-- Include privoxy.sgml boilerplate: -->
217  &p-intro;
218 <!-- end boilerplate -->
219 </refsect1>
220
221
222 <!--   ~~~~~       New section      ~~~~~     -->
223 <refsect1><title>Installation and Usage</title>
224 <para>
225  Browsers can either be individually configured to use
226  <command>Privoxy</command> as a HTTP proxy (recommended),
227  or <command>Privoxy</command> can be combined with a packet
228  filter to build an intercepting proxy
229  (see <filename>config</filename>).  The default setting is  for
230  localhost,  on port  8118 (configurable in the main config file).  To set the
231  HTTP proxy in Firefox, go through: <command>Tools</command>;
232  <command>Options</command>; <command>General</command>;
233  <command>Connection Settings</command>;
234  <command>Manual Proxy Configuration</command>.
235 </para>
236 <para>
237  For Internet Explorer, go through: <command>Tools</command>;
238  <command>Internet Properties</command>; <command>Connections</command>;
239  <command>LAN Settings</command>.
240 </para>
241 <para>
242  The Secure (SSL) Proxy should also be set to the same values, otherwise
243  https: URLs will not be proxied. Note: <command>Privoxy</command> can only
244  proxy HTTP and HTTPS traffic. Do not try it with FTP or other protocols.
245  HTTPS presents some limitations, and not all features will work with HTTPS
246  connections.
247 </para>
248
249 <para>
250  For other browsers, check the documentation.
251 </para>
252 </refsect1>
253
254
255 <!--   ~~~~~       New section      ~~~~~     -->
256 <refsect1><title>Configuration</title>
257 <para>
258  <command>Privoxy</command> can be configured with the various configuration
259  files. The default configuration files are: <filename>config</filename>,
260  <filename>default.filter</filename>, <filename>default.action</filename> and
261  <filename>default.action</filename>. <filename>user.action</filename> should
262  be used for locally defined exceptions to the default rules in
263  <filename>match-all.action</filename> and <filename>default.action</filename>,
264  and <filename>user.filter</filename> for locally defined filters. These are
265  well commented.  On Unix and Unix-like systems, these are located in
266  <filename>/etc/privoxy/</filename> by default.
267 </para>
268 <para>
269  <command>Privoxy</command> uses the concept of <command>actions</command>
270  in order to manipulate the data stream between the browser and remote sites.
271  There are various actions available with specific functions for such things
272  as blocking web sites, managing cookies, etc. These actions can be invoked
273  individually or combined, and used against individual URLs, or groups of URLs
274  that can be defined using wildcards and regular expressions. The result is
275  that the user has greatly enhanced control and freedom.
276 </para>
277 <para>
278  The actions list (ad blocks, etc) can also be configured with your
279  web browser at <ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
280  (assuming the configuration allows it).
281  <command>Privoxy's</command> configuration parameters  can also  be viewed at
282  the same page. In addition, <command>Privoxy</command> can be toggled on/off.
283  This is an internal page, and does not require Internet access.
284 </para>
285 <para>
286  See the <ulink
287  url="http://www.privoxy.org/user-manual/"><citetitle>User Manual</citetitle></ulink> for a detailed
288  explanation of installation, general usage, all configuration options, new
289  features and notes on upgrading.
290 </para>
291 </refsect1>
292
293
294
295 <!--   ~~~~~       New section      ~~~~~     -->
296 <refsect1><title>Files</title>
297 <!-- this is a cheesy way to do this, but WTF. -->
298 <literallayout>
299  <filename>/usr/sbin/privoxy</filename>
300  <filename>/etc/privoxy/config</filename>
301  <filename>/etc/privoxy/match-all.action</filename>
302  <filename>/etc/privoxy/default.action</filename>
303  <filename>/etc/privoxy/user.action</filename>
304  <filename>/etc/privoxy/default.filter</filename>
305  <filename>/etc/privoxy/user.filter</filename>
306  <filename>/etc/privoxy/trust</filename>
307  <filename>/etc/privoxy/templates/*</filename>
308  <filename>/var/log/privoxy/logfile</filename>
309 </literallayout>
310
311 <para>
312  Various other files should be included, but may vary depending on platform
313  and build configuration. Additional documentation should be included in the local
314  documentation directory.
315 </para>
316
317 </refsect1>
318
319
320 <!--   ~~~~~       New section      ~~~~~     -->
321 <refsect1><title>Signals</title>
322 <para>
323  <!-- command tag is used here to get proper looking format  -->
324  <command>Privoxy</command> terminates on the <command>SIGINT</command>
325  and <command>SIGTERM</command> signals. Log
326  rotation scripts may cause a re-opening of the logfile by sending a
327  <command>SIGHUP</command> to <command>Privoxy</command>. Note that unlike
328  other daemons,  <command>Privoxy</command> does not need to be made aware of
329  config file changes by <command>SIGHUP</command> -- it will detect them
330  automatically. Signals other than the ones listed above aren't explicitly
331  handled and result in the default action defined by the operating system.
332 </para>
333
334 </refsect1>
335
336 <!--   ~~~~~       New section      ~~~~~     -->
337 <refsect1><title>Notes</title>
338 <![%p-not-stable;[
339 <para>
340  This is a &p-status; version of <command>Privoxy</command>. Not
341  all features are well tested.
342 </para>]]>
343 <para>
344  Please see the <citetitle>User Manual</citetitle> on how to contact the
345  developers, for feature requests, reporting problems, and other questions.
346 </para>
347
348 </refsect1>
349
350 <!--   ~~~~~       New section      ~~~~~     -->
351 <refsect1><title>See Also</title>
352 <!-- Include seealso.sgml boilerplate: -->
353  &seealso;
354 <!-- end boilerplate -->
355 </refsect1>
356
357 <!--   ~~~~~       New section      ~~~~~     -->
358 <refsect1><title>Development Team</title>
359 <!-- Include p-authors.sgml boilerplate: -->
360  &authors;
361 <!-- end boilerplate -->
362 </refsect1>
363
364 <!--   ~~~~~       New section      ~~~~~     -->
365 <refsect1><title>Copyright and License</title>
366
367 <refsect2><title>Copyright</title>
368 <!-- Include copyright.sgml boilerplate: -->
369  &copyright;
370 <!-- end boilerplate -->
371 </refsect2>
372
373 <refsect2><title>License</title>
374 <!-- Include license.sgml boilerplate: -->
375  &license;
376 <!-- end boilerplate -->
377 </refsect2>
378 </refsect1>
379
380 </refentry>