write_common.h: Kill an unused function declaration.
[paraslash.git] / server.ggo
1 #########################
2 section "General options"
3 #########################
4
5 option "loglevel" l
6 #~~~~~~~~~~~~~~~~~~
7 "set loglevel (1-6)"
8 int typestr="level"
9 default="4"
10 optional
11 details="
12         Larger values mean less verbose output. Loglevel 1 (debug) gets
13         really noisy; a value of 2 (info) produces still noisy output,
14         but this won't fill up the disk quicky. Messaged logged with
15         loglevel 3 (notice) indicate normal but significant events
16         while level 4 (warning) logs unexpected events that can be
17         handled. Unhandled error conditions are logged with loglevel
18         5 (error) and crititcal errors are logged using loglevel 6
19         (crit).  Finally, loglevel 7 (emerg) is reserved for messages
20         that cause para_server to terminate immediately.
21 "
22
23 option "port" p
24 #~~~~~~~~~~~~~~
25 "listening port"
26 int typestr="portnumber"
27 default="2990"
28 optional
29 details="
30         para_server listens on this tcp port for incoming connections
31         from clients such as para_client. If the default port is
32         changed, the corresponding option of para_client must be used
33         to connect to para_server.
34 "
35
36 option "daemon" d
37 #~~~~~~~~~~~~~~~~
38 "run as background daemon"
39 flag off
40 dependon="logfile"
41 details="
42         Note that para_server refuses to start in daemon mode if no
43         logfile was specified.
44 "
45
46 option "user" u
47 #~~~~~~~~~~~~~~
48 "run as the given user"
49 string typestr="name"
50 optional
51 details="
52         para_server does not need any special privileges. If started
53         as root (EUID == 0) this option must be given at the command
54         line (not in the configuration file) so that para_server
55         can drop the root privileges right after parsing the command
56         line options, but before parsing the configuration file. In
57         this case, real/effective/saved UID are all set to the UID
58         of 'name'. As the configuration file is read afterwards,
59         those options that have a default value depending on the UID
60         (e.g. the directory for the configuration file) are computed
61         by using the uid of 'name'.  This option has no effect if
62         para_server is started as a non-root user (i.e.  EUID != 0)
63 "
64
65
66 option "group" g
67 #~~~~~~~~~~~~~~~
68 "set group id"
69 string typestr="group"
70 optional
71 details="
72         This option sets the group id according to 'group'. This option
73         is silently ignored if EUID != 0. Otherwise, real/effective
74         GID and the saved set-group ID are all set to the GID given by
75         'group'. Must not be given in the config file.
76 "
77
78 #############################
79 section "Configuration files"
80 #############################
81
82
83 option "logfile" L
84 #~~~~~~~~~~~~~~~~~
85 "where to write log output"
86 string typestr="filename"
87 optional
88 details="
89         If this option is not given, para_server writes the log
90         messages to to stderr
91 "
92
93 option "config_file" c
94 #~~~~~~~~~~~~~~~~~~~~~
95 "(default='~/.paraslash/server.conf'"
96 string typestr="filename"
97 optional
98 details="
99         para_server reads its config file right after parsing
100         the options that were given at the command line. If an
101         option is given both at the command line and in the
102         config file, the value that was specified at the command line
103         takes precedence.
104 "
105
106 option "user_list" -
107 #~~~~~~~~~~~~~~~~~~~
108 "(default='~/.paraslash/server.users')"
109
110 string typestr="filename"
111 optional
112
113
114 ##################################
115 section "virtual streaming system"
116 ##################################
117
118
119 option "autoplay" a
120 #~~~~~~~~~~~~~~~~~~
121 "start playing on startup"
122 flag off
123
124 option "autoplay_delay" -
125 #~~~~~~~~~~~~~~~~~~~~~~~~
126 "time to wait before streaming"
127 int typestr="ms"
128 default="0"
129 optional
130 dependon="autoplay"
131 details="
132         If para_server is started with the autoplay option, this option
133         may be used to set up a delay before para_server streams its
134         first audio file. This is useful for example if para_server
135         and para_audiod are started during system startup. The delay
136         time should be choosen large enough so that para_audiod is
137         already up when para_server starts to stream. Of course, this
138         option depends on the autoplay option.
139 "
140 option "announce_time" A
141 #~~~~~~~~~~~~~~~~~~~~~~~
142 "grace time for clients"
143
144 int typestr="ms"
145 default="300"
146 optional
147 details="
148         Clients such as para_audiod connect to para_server and execute
149         the stat command to find out whether an audio stream is
150         currently available. This sets the delay betweeen announcing
151         the stream via the output of the stat command and sending
152         the first chunk of data.
153 "
154
155 #############################
156 section "audio file selector"
157 #############################
158
159 option "afs_database_dir" D
160 #~~~~~~~~~~~~~~~~~~~~~~~~~~
161 "location of the database"
162 string typestr="path"
163 optional
164 details="
165         Where para_server should look for the  osl
166         database of the audio file selector. The default is
167         '~/.paraslash/afs_database'.
168 "
169
170 option "afs_socket" s
171 #~~~~~~~~~~~~~~~~~~~~
172 "Command socket for afs"
173 string typestr="path"
174 default="/var/paraslash/afs_command_socket"
175 optional
176 details="
177         For each server command that is handled by the audio file
178         selector, the child process of para_server connects to the
179         audio file selector via a local socket. This option specifies
180         the location of that socket in the file system.
181 "
182 option "afs_initial_mode" i
183 #~~~~~~~~~~~~~~~~~~~~~~~~~~
184
185 "Mood or playlist to load on startup."
186 string typestr="<specifier>/<name>"
187 optional
188
189 details="
190         The argument of this option must be prefixed with either 'p/'
191         or 'm/' to indicate whether a playlist or a mood should be
192         loaded. Example:
193                 --afs_initial_mode p/foo
194         loads the playlist named 'foo'.
195 "
196
197 #####################
198 section "http sender"
199 #####################
200
201
202 option "http_port" -
203 #~~~~~~~~~~~~~~~~~~~
204 "tcp port for http streaming"
205 int typestr="portnumber"
206 default="8000"
207 optional
208 details="
209         The http sender of para_server listens on this port for
210         incoming connections. Clients are expected to send the usual
211         http request message such as 'GET / HTTP/'.
212 "
213
214 option "http_default_deny" -
215 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
216 "make the http ACL a whitelist"
217 flag off
218 details="
219         The default is to use blacklists instead, i.e. connections
220         to the http sender are allowed unless the connecting host
221         matches a pattern given by a http_access option. This allows
222         to use access control the other way round: Connections are
223         denied from hosts which are not explicitly allowed by one or
224         more http_access options.
225 "
226
227 option "http_access" -
228 #~~~~~~~~~~~~~~~~~~~~~
229 "add an entry to the http ACL"
230 string typestr="a.b.c.d/n"
231 optional
232 multiple
233 details="
234         Add given host/network to access control list (whitelist if
235         http_default_deny was given, blacklist otherwise) before
236         opening the tcp port. This option can be given multiple
237         times. Example: '192.168.0.0/24' whitelists/blacklists the
238         256 hosts 192.168.0.x
239 "
240
241 option "http_no_autostart" -
242 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
243 "do not open tcp port on startup"
244 flag off
245 details="
246         If this option is given, the http sender does not listen on
247         its tcp port. It may be instructed to open this port at a
248         later time by using the sender command.
249 "
250
251 option "http_max_clients" -
252 #~~~~~~~~~~~~~~~~~~~~~~~~~~
253 "maximal number of connections"
254 int typestr="number"
255 default="-1"
256 optional
257 details="
258         The http sender will refuse connections if already that number
259         of clients are currently connected. A non-positive value
260         (the default) allows an unlimited number of simultaneous
261         connections.
262 "
263
264 #####################
265 section "dccp sender"
266 #####################
267
268
269 option "dccp_port" -
270 #~~~~~~~~~~~~~~~~~~~
271 "port for dccp streaming"
272 int typestr="portnumber"
273 default="8000"
274 optional
275 details="
276         See http_port for details.
277 "
278
279 option "dccp_default_deny" -
280 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
281 "make the dccp ACL a whitelist"
282 flag off
283 details="
284         See http_default_deny for details.
285 "
286
287 option "dccp_access" -
288 #~~~~~~~~~~~~~~~~~~~~~
289 "add an entry to the dccp ACL"
290 string typestr="a.b.c.d/n"
291 optional
292 multiple
293 details="
294         See http_access for details.
295 "
296
297 option "dccp_max_clients" -
298 #~~~~~~~~~~~~~~~~~~~~~~~~~~
299 "maximal number of connections"
300 int typestr="number"
301 default="-1"
302 optional
303 details="
304         See http_max_clients for details.
305 "
306
307 #####################
308 section "ortp sender"
309 #####################
310
311 option "ortp_target" -
312 #~~~~~~~~~~~~~~~~~~~~~
313 "add ortp target"
314 string typestr="a.b.c.d:p"
315 optional
316 multiple
317 details="
318         Add given host/port to the list of targets.  This option
319         can be given multiple times.  Example: '224.0.1.38:1500'
320         instructs the ortp sender to send to udp port 1500 on host
321         224.0.1.38 (unassigned ip in the Local Network Control Block
322         224.0.0/24). This is useful for LAN-streaming.
323 "
324
325 option "ortp_no_autostart" -
326 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
327 "do not start sending"
328 flag off
329 details="
330         If this option is given, ortp streaming may be activated at
331         a later time by using the sender command.
332 "
333
334 option "ortp_default_port" -
335 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
336 "udp port to send to"
337 int typestr="port"
338 default="1500"
339 optional
340
341 option "ortp_header_interval" H
342 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
343 "duration for sending header"
344 int typestr="ms"
345 default="2000"
346 optional
347 details="
348         As the ortp sender has no idea about connected clients it
349         sends the audio file header periodically if necessary. This
350         option is used to specify the duration of the interval between
351         sending the header. Shorter values decrease the average time
352         clients have to wait before being able to start playback,
353         but this also increases the amount network traffic. Note
354         that this affects only ogg vorbis streams as this is the only
355         audio format that needs an audio file header.
356 "
357
358 option "ortp_jitter_compensation" j
359 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
360 "configure jitter compensation"
361 int typestr="ms"
362 default="400"
363 optional
364 details="
365         ortp's adaptive jitter compensation gets activated whenever
366         this value is greater than zero. See the ortp documentation
367         about details on this feature.
368 "