rename server command array from cmd_struct to server_cmds
[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 'username'. 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 'username'.
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="groupname"
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
137 section "mysql selector:"
138 #~~~~~~~~~~~~~~~~~~~~~~~~
139
140
141 option "mysql_host" -
142 #~~~~~~~~~~~~~~~~~~~~
143
144 "mysql server"
145
146         string typestr="ip or hostname"
147         default="localhost"
148         optional
149
150 option "mysql_port" -
151 #~~~~~~~~~~~~~~~~~~~~
152
153 "where mysql is listening"
154
155         int typestr="portnumber"
156         default="3306"
157         optional
158
159
160 option "mysql_user" -
161 #~~~~~~~~~~~~~~~~~~~~
162
163 "default value: username from /etc/passwd"
164
165         string typestr="username"
166         optional
167
168 option "mysql_passwd" -
169 #~~~~~~~~~~~~~~~~~~~~~~
170
171 "(required)"
172
173         string
174         optional
175
176 option "mysql_database" -
177 #~~~~~~~~~~~~~~~~~~~~~~~~
178
179 "name of mysql database"
180
181         string
182         default="paraslash"
183         optional
184
185 option "mysql_audio_file_dir"  -
186 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
187
188 "dir to search for audio files (required)"
189
190         string typestr="dirname"
191         optional
192
193 option "mysql_default_score" -
194 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
195
196 "scoring rule to use if stream definition
197 does not contain explicit score definition"
198
199         string
200         default="(LASTPLAYED() / 1440 - 1000 / (LASTPLAYED() + 1) - sqrt(NUMPLAYED()))"
201         optional
202
203
204
205
206 section "random selector"
207 #~~~~~~~~~~~~~~~~~~~~~~~~
208
209
210 option "random_dir" -
211 #~~~~~~~~~~~~~~~~~~~~
212
213 "dir to search for audio files"
214         string typestr="dirname"
215         default="/home/music"
216         optional
217
218
219
220
221 section "http sender"
222 #~~~~~~~~~~~~~~~~~~~~
223
224
225 option "http_port" -
226 #~~~~~~~~~~~~~~~~~~~
227
228 "tcp port for http streaming"
229
230         int typestr="portnumber"
231         default="8000"
232         optional
233
234 option "http_default_deny" -
235 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
236
237 "deny connections from hosts which are not
238 explicitly allowed"
239
240         flag off
241
242 option "http_access" -
243 #~~~~~~~~~~~~~~~~~~~~~
244
245 "Add given host/network to access control
246 list (whitelist if http_default_deny was
247 given, blacklist otherwise) before opening
248 the tcp port. This option can be given
249 multiple times. Example: '192.168.0.0/24'
250 whitelists/blacklists the 256 hosts
251 192.168.0.x"
252
253         string typestr="a.b.c.d/n"
254         optional
255         multiple
256
257 option "http_no_autostart" -
258 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
259
260 "do not open tcp port on server startup"
261
262         flag off
263
264 option "http_max_clients" -
265 #~~~~~~~~~~~~~~~~~~~~~~~~~~
266
267 "maximal simultaneous connections,
268 non-positive value means unlimited"
269
270         int typestr="number"
271         default="-1"
272         optional
273
274
275
276
277 section "dccp sender"
278 #~~~~~~~~~~~~~~~~~~~~
279
280
281 option "dccp_port" -
282 #~~~~~~~~~~~~~~~~~~~
283
284 "port for dccp streaming"
285
286         int typestr="portnumber"
287         default="5001"
288         optional
289
290
291
292
293 section "ortp sender"
294 #~~~~~~~~~~~~~~~~~~~~
295
296 option "ortp_target" -
297 #~~~~~~~~~~~~~~~~~~~~~
298
299 "Add given host/port to the list of targets.
300 This option can be given multiple times.
301 Example: '224.0.1.38:1500' instructs the ortp
302 sender to send to udp port 1500 on host
303 224.0.1.38 (unassigned ip in the Local
304 Network Control Block 224.0.0/24). This is
305 useful for LAN-streaming."
306
307         string typestr="a.b.c.d:p"
308         optional
309         multiple
310
311 option "ortp_no_autostart" -
312 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
313
314 "do not start to send automatically"
315
316         flag off
317
318 option "ortp_default_port" -
319 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
320
321 "default udp port if not specified"
322
323         int typestr="portnumber"
324         default="1500"
325         optional
326
327 option "ortp_header_interval" H
328 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
329
330 "time between extra header sends"
331
332         int typestr="milliseconds"
333         default="2000"
334         optional
335
336 option "ortp_jitter_compensation" j
337 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
338
339 "non-zero values enable ortp's adaptive
340 jitter compensation"
341
342         int typestr="milliseconds"
343         default="400"
344         optional