afs.cmd: Add documentation of the remaining commands.
[paraslash.git] / server.ggo
1 section "General options"
2 #~~~~~~~~~~~~~~~~~~~~~~~~
3
4 option "loglevel" l
5 #~~~~~~~~~~~~~~~~~~
6
7 "set loglevel (0-6)"
8
9         int typestr="level"
10         default="4"
11         optional
12
13 option "port" p
14 #~~~~~~~~~~~~~~
15
16 "listening port"
17
18         int typestr="portnumber"
19         default="2990"
20         optional
21
22 option "daemon" d
23 #~~~~~~~~~~~~~~~~
24
25 "run as background daemon"
26
27         flag off
28
29 option "user" u
30 #~~~~~~~~~~~~~~
31
32 "run as user 'name'. para_server does not
33 need any special privileges. If started as
34 root (EUID == 0) this option must be given at
35 the command line (not in the configuration
36 file) so that para_server can drop the root
37 privileges right after parsing the command
38 line options, but before parsing the
39 configuration file. In this case,
40 real/effective/saved UID are all set to the
41 UID of 'name'. As the configuration file
42 is read afterwards, those options that have a
43 default value depending on the UID (e.g. the
44 directory for the configuration file) are
45 computed by using the uid of 'name'.
46 This option has no effect if para_server is
47 started as a non-root user (i.e.  EUID != 0)"
48
49         string typestr="name"
50         optional
51
52
53 option "group" g
54 #~~~~~~~~~~~~~~~
55
56 "set group id to according to 'group'. This
57 option is silently ignored if EUID != 0.
58 Otherwise, real/effective GID and the saved
59 set-group ID are all set to the GID given by
60 'group'. Must not be given in the config file."
61
62         string typestr="group"
63         optional
64
65
66
67 section "Configuration files"
68 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69
70
71 option "logfile" L
72 #~~~~~~~~~~~~~~~~~
73
74 "(default=stdout/stderr)"
75
76         string typestr="filename"
77         optional
78
79 option "config_file" c
80 #~~~~~~~~~~~~~~~~~~~~~
81
82 "(default='~/.paraslash/server.conf'"
83
84         string typestr="filename"
85         optional
86
87 option "user_list" -
88 #~~~~~~~~~~~~~~~~~~~
89
90 "(default='~/.paraslash/server.users')"
91
92         string typestr="filename"
93         optional
94
95
96
97 section "virtual streaming system"
98 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
99
100
101 option "autoplay" a
102 #~~~~~~~~~~~~~~~~~~
103
104 "start playing on startup"
105
106         flag off
107
108 option "autoplay_delay" -
109 #~~~~~~~~~~~~~~~~~~~~~~~~
110 "Time to wait before autoplay starts. Ignored if
111 autoplay is off."
112         int typestr="milliseconds"
113         default="0"
114         optional
115
116
117 option "announce_time" A
118 #~~~~~~~~~~~~~~~~~~~~~~~
119
120 "Delay betweeen announcing the stream and sending data"
121
122         int typestr="milliseconds"
123         default="300"
124         optional
125
126
127 option "selector" S
128 #~~~~~~~~~~~~~~~~~~
129
130 "(default=random)"
131
132         string typestr="name"
133         optional
134
135 #############################
136 section "audio file selector"
137 #############################
138
139 option "afs_database_dir" D
140 #~~~~~~~~~~~~~~~~~~~~~~~~~~
141
142 "Directory containing the osl database of the
143 audio file selector.
144 (default='~/.paraslash/afs_database'"
145
146         string typestr="path"
147         optional
148
149
150 option "afs_socket" s
151 #~~~~~~~~~~~~~~~~~~~~
152
153 "Command socket for the audio file selector"
154
155         string typestr="path"
156         default="/var/paraslash/afs_command_socket"
157         optional
158
159 section "mysql selector"
160 #~~~~~~~~~~~~~~~~~~~~~~~
161
162
163 option "mysql_host" -
164 #~~~~~~~~~~~~~~~~~~~~
165
166 "mysql server"
167
168         string typestr="ip or hostname"
169         default="localhost"
170         optional
171
172 option "mysql_port" -
173 #~~~~~~~~~~~~~~~~~~~~
174
175 "where mysql is listening"
176
177         int typestr="portnumber"
178         default="3306"
179         optional
180
181
182 option "mysql_user" -
183 #~~~~~~~~~~~~~~~~~~~~
184
185 "default value: username from /etc/passwd"
186
187         string typestr="username"
188         optional
189
190 option "mysql_passwd" -
191 #~~~~~~~~~~~~~~~~~~~~~~
192
193 "(required)"
194
195         string
196         optional
197
198 option "mysql_database" -
199 #~~~~~~~~~~~~~~~~~~~~~~~~
200
201 "name of mysql database"
202
203         string
204         default="paraslash"
205         optional
206
207 option "mysql_audio_file_dir"  -
208 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
209
210 "dir to search for audio files (required)"
211
212         string typestr="dirname"
213         optional
214
215 option "mysql_default_score" -
216 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
217
218 "scoring rule to use if stream definition
219 does not contain explicit score definition"
220
221         string
222         default="(LASTPLAYED() / 1440 - 1000 / (LASTPLAYED() + 1) - sqrt(NUMPLAYED()))"
223         optional
224
225
226
227
228 section "random selector"
229 #~~~~~~~~~~~~~~~~~~~~~~~~
230
231
232 option "random_dir" -
233 #~~~~~~~~~~~~~~~~~~~~
234
235 "dir to search for audio files"
236         string typestr="dirname"
237         default="/home/music"
238         optional
239
240
241
242
243 section "http sender"
244 #~~~~~~~~~~~~~~~~~~~~
245
246
247 option "http_port" -
248 #~~~~~~~~~~~~~~~~~~~
249
250 "tcp port for http streaming"
251
252         int typestr="portnumber"
253         default="8000"
254         optional
255
256 option "http_default_deny" -
257 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
258
259 "deny connections from hosts which are not
260 explicitly allowed"
261
262         flag off
263
264 option "http_access" -
265 #~~~~~~~~~~~~~~~~~~~~~
266
267 "Add given host/network to access control
268 list (whitelist if http_default_deny was
269 given, blacklist otherwise) before opening
270 the tcp port. This option can be given
271 multiple times. Example: '192.168.0.0/24'
272 whitelists/blacklists the 256 hosts
273 192.168.0.x"
274
275         string typestr="a.b.c.d/n"
276         optional
277         multiple
278
279 option "http_no_autostart" -
280 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
281
282 "do not open tcp port on server startup"
283
284         flag off
285
286 option "http_max_clients" -
287 #~~~~~~~~~~~~~~~~~~~~~~~~~~
288
289 "maximal simultaneous connections,
290 non-positive value means unlimited"
291
292         int typestr="number"
293         default="-1"
294         optional
295
296
297
298
299 section "dccp sender"
300 #~~~~~~~~~~~~~~~~~~~~
301
302
303 option "dccp_port" -
304 #~~~~~~~~~~~~~~~~~~~
305
306 "port for dccp streaming"
307
308         int typestr="portnumber"
309         default="5001"
310         optional
311
312
313
314
315 section "ortp sender"
316 #~~~~~~~~~~~~~~~~~~~~
317
318 option "ortp_target" -
319 #~~~~~~~~~~~~~~~~~~~~~
320
321 "Add given host/port to the list of targets.
322 This option can be given multiple times.
323 Example: '224.0.1.38:1500' instructs the ortp
324 sender to send to udp port 1500 on host
325 224.0.1.38 (unassigned ip in the Local
326 Network Control Block 224.0.0/24). This is
327 useful for LAN-streaming."
328
329         string typestr="a.b.c.d:p"
330         optional
331         multiple
332
333 option "ortp_no_autostart" -
334 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
335
336 "do not start to send automatically"
337
338         flag off
339
340 option "ortp_default_port" -
341 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
342
343 "default udp port if not specified"
344
345         int typestr="portnumber"
346         default="1500"
347         optional
348
349 option "ortp_header_interval" H
350 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
351
352 "time between extra header sends"
353
354         int typestr="milliseconds"
355         default="2000"
356         optional
357
358 option "ortp_jitter_compensation" j
359 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
360
361 "non-zero values enable ortp's adaptive
362 jitter compensation"
363
364         int typestr="milliseconds"
365         default="400"
366         optional