webperimental: killstack decides stack protects.
[freeciv.git] / doc / man / freeciv-server.6.in
blob895ba61cb67c445035b603e03608b760e152c369
1 .\" Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold
2 .\"   This program is free software; you can redistribute it and/or modify
3 .\"   it under the terms of the GNU General Public License as published by
4 .\"   the Free Software Foundation; either version 2, or (at your option)
5 .\"   any later version.
6 .\"
7 .\"   This program is distributed in the hope that it will be useful,
8 .\"   but WITHOUT ANY WARRANTY; without even the implied warranty of
9 .\"   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 .\"   GNU General Public License for more details.
11 .\"
12 .TH FREECIV 6 "December 10th 2011"
13 .SH NAME
14 freeciv-server \- The server for the Freeciv game
15 .SH SYNOPSIS
16 .B freeciv-server \
17 [ \-A|\-\-Announce \fIprotocol\fP ] \
18 [ \-b|\-\-bind \fIaddress\fP ] \
19 [ \-B|\-\-Bind\-meta \fIaddress\fP ] \
20 [ \-d|\-\-debug \fIlevel_number\fP ] \
21 [ \-e|\-\-exit\-on\-end ] \
22 [ \-F|\-\-Fatal [ \fIsignal_number\fP ] ] \
23 [ \-f|\-\-file \fIfilename\fP ] \
24 [ \-h|\-\-help ] \
25 [ \-i|\-\-identity \fIaddress\fP ] \
26 [ \-k|\-\-keep ] \
27 [ \-l|\-\-log \fIfilename\fP ] \
28 [ \-M|\-\-Metaserver \fIaddress\fP ] \
29 [ \-m|\-\-meta ] \
30 [ \-p|\-\-port \fIport\fP ] \
31 [ \-q|\-\-quitidle \fItime\fP ] \
32 [ \-R|\-\-Ranklog \fIfilename\fP ] \
33 [ \-r|\-\-read \fIfilename\fP ] \
34 [ \-S|\-\-Serverid \fIid\fP ] \
35 [ \-s|\-\-saves \fIdirectory\fP ] \
36 [ \-\-scenarios \fIdirectory\fP ] \
37 [ \-v|\-\-version ]
39 Auth aware servers have additional parameters:
40 .B [ \-a|\-\-auth ] \
41 [ \-D|\-\-Database \fIfile\fP ] \
42 [ \-G|\-\-Guests ] \
43 [ \-N|\-\-Newusers ]
45 Servers with AI module support have an additional parameter:
46 .B [ \-L|\-\-LoadAI \fImodule\fP ]
48 .SH DESCRIPTION
49 Freeciv is a free turn-based multiplayer strategy game, in which each player
50 becomes the leader of a civilization, fighting to obtain the ultimate goal:
51 To become the greatest civilization.
53 Players of Civilization II\*R by Microprose\*R should feel at home, since one
54 aim of Freeciv is to have compatible rules. 
56 Freeciv is maintained by an international team of coders and enthusiasts, and is
57 easily one of the most fun and addictive network games out there!
59 This is the server program used to establish a Freeciv server - see also
60 .IR freeciv-client (6)
61 \&.
63 This manual page only lists the command line arguments. For details
64 of the directives necessary to configure
65 .B freeciv-server
66 see the Server Manual which can be found at
67 .UR @WIKI_URL@
68 the Freeciv website
69 .UE
70 as well as the documentation which is part of the Freeciv distribution.
71 .SH OPTIONS
72 The following options are accepted on the command line of the server. They may
73 not be combined; that is, "freeciv-server \-fp savegame.sav 5557" will not work,
74 instead you would need to enter "freeciv-server \-f savegame.sav \-p 5557". Most
75 options have a short form (single hyphen and single letter) and a long form
76 (double hyphen and a complete word); their effects are identical.
77 .TP
78 .BI "\-A \fIprotocol\fP, \-\-Announce \fIprotocol\fP"
79 Uses \fIprotocol\fP when announcing game in LAN.
80 Possible values for \fIprotocol\fP are:
82 \fBIPv4\fP
84 \fBIPv6\fP
86 \fBnone\fP
88 .TP
89 .BI "\-a, \-\-auth"
90 Enables server authentication and allows access to registered players only.
91 Requires the
92 .I \-\-Database
93 option to be specified.
94 .TP
95 .BI "\-b \fIaddress\fP, \-\-bind \fIaddress\fP"
96 Sets the \fIaddress\fP on which the server will listen for clients.
97 .TP
98 .BI "\-B \fIaddress\fP, \-\-Bind\-meta \fIaddress\fP"
99 Sets the \fIaddress\fP which request to metaserver are sent from. Defaults to
100 address given by
101 .I \-b
102 option.
104 .BI "\-d \fIlevel_number\fP, \-\-debug \fIlevel_number\fP"
105 Sets the amount of debugging information to be logged in the file named by the
106 .I \-l
107 option. Acceptable values for the \fIlevel_number\fP are:
109 \fB0\fP    for fatal messages only.
111 \fB1\fP    for fatal and error messages.
113 \fB2\fP    for fatal, error and warning messages
115 \fB3\fP    for fatal, error, warning and normal messages (default).
117 \fB4\fP    for fatal, error, warning, normal, and verbose messages.
120 .BI "\-D \fIfilename\fP, \-\-Database \fIfilename\fP"
121 Specifies a database configuration file for authentication. This file
122 specifies the details of the database. See README.fcdb in the Freeciv
123 distribution for details of its format.
125 .BI "\-e, \-\-exit\-on\-end"
126 When a game ends, exit instead of restarting.
128 .BI "\-F [ \fIsignal_number\fP ], \-\-Fatal [ \fIsignal_number\fP ]"
129 Raise a custom signal on failed assertion.  If \fIsignal_number\fP is not
130 specified, then the ABRT signal will be used.
132 .BI "\-f \fIfilename\fP, \-\-file \fIfilename\fP"
133 Loads a saved game (\fIfilename\fP) into the server before initialization,
134 instead of starting a new game. This is for reloading saved games, or for 
135 loading scenarios. See \fIENVIRONMENT\fP for where the server looks for
136 these files.
138 The distribution comes with several scenarios, typically stored in
139 \fI/usr/local/share/freeciv/scenarios\fP, for example:
142 \(bu
143 .I british\-isles\-85x80\-v2.80.sav
145 \(bu
146 .I earth\-160x90\-v2.sav
148 \(bu
149 .I earth\-80x50\-v3.sav
151 \(bu
152 .I europe\-200x100\-v2.sav
154 \(bu
155 .I hagworld\-120x60\-v1.2.sav
157 \(bu
158 .I iberian\-peninsula\-136x100\-v1.0.sav
161 .BI "\-G, \-\-Guests"
162 Allow guests to login as 'guest' when authentication is enabled.
164 .BI "\-h, \-\-help"
165 Prints out a description of the command line options and exits.
167 .BI "\-i \fIaddress\fP, \-\-identity \fIaddress\fP"
168 Reports the \fIaddress\fP to the metaserver.  Then, the metaserver will use
169 this address to redirect the users.
171 .BI "\-L \fImodule\fP, \-\-LoadAI \fImodule\fP"
172 Loads AI module. This option can appear multiple times to load different
173 modules.
175 .BI "\-l \fIfilename\fP, \-\-log \fIfilename\fP"
176 Defines a log file, \fIfilename\fP, to be produced during processing. Use the
177 .I \-d
178 option to set how much is logged.  By default, fatal, error, and normal
179 messages are printed to standard output.  With a log file, such messages go
180 to the log instead.
182 .BI "\-M \fIaddress\fP, \-\-Metaserver \fIaddress\fP"
183 Specifies the \fIaddress\fP of the metaserver to send your server's information
184 to. By default, the standard metaserver run by the Freeciv maintainers will
185 be used.
187 .BI "\-m, \-\-meta"
188 Directs the server to communicate with a metaserver, a place where Freeciv
189 servers can publish their presence. Freeciv clients consult the metaserver to
190 offer users a selection of games to join. By default the standard Freeciv 
191 metaserver is used. You may specify an alternate metaserver with the \fI\-M\fP
192 option.
194 .BI "\-k, \-\-keep"
195 Usually freeciv server stops sending updates to the metaserver, when there's
196 problems on the connection once. With this option it keeps on trying to send
197 further updates even after it has failed to send updated status once.
198 This option implies \fI\-m\fP option.
200 .BI "\-N, \-\-Newusers"
201 Allow new users to login and be registered in the players base if authentication
202 is enabled.
204 .BI "\-p \fIport\fP, \-\-port \fIport\fP"
205 Specifies the TCP \fIport\fP number to which clients will connect; players must know
206 this number to be able to connect if they are not to use the default of 5556
207 decimal. You may need to use this if 5556 is not available for your use on your
208 system, or if you would like to run multiple servers on the same system.
210 .BI "\-q \fItime\fP, \-\-quitidle \fItime\fP"
211 Quits if no players are present for the specified \fItime\fP, in seconds, and 
212 restarts a new server.
214 .BI "\-R \fIfilename\fP, \-\-Ranklog \fIfilename\fP"
215 Defines a log file, \fIfilename\fP, to be produced during processing. This log
216 contains information for player ranking.
218 .BI "\-r \fIfilename\fP, \-\-read \fIfilename\fP"
219 Specifies a file, \fIfilename\fP, of server commands which the server will 
220 automatically read and process, as if you had typed them in at the server's 
221 prompt. The distribution comes with a few examples, including files that set
222 options to be similar to Civilization I\*R and Civilization II\*R . The files
223 are named \fIciv1.serv\fP and \fIciv2.serv\fP, and are typically found at 
224 \fI/usr/local/share/freeciv/\fP.
226 .BI "\-S \fIid\fP, \-\-Serverid \fIid\fP"
227 Sets the server \fIid\fP. This is used to identify a particular running game.
229 .BI "\-s \fIdirectory\fP, \-\-saves \fIdirectory\fP"
230 Specifies the \fIdirectory\fP to place save game files created by the server.
231 This is especially useful when you're running more than one server on the same
232 system, as it inhibits your servers from clobbering other's save game files.
234 (This does not influence where the server looks when loading save game files;
235 see \fBFREECIV_SAVE_PATH\fP for that.)
237 .BI "\-\-scenarios \fIdirectory\fP"
238 Specifies the \fIdirectory\fP to place scenarios saved by the server (for
239 instance, those created with the in-game editor).
241 (This does not influence where the server looks when loading scenario files;
242 see \fBFREECIV_SCENARIO_PATH\fP for that.)
244 .BI "\-v, \-\-version"
245 Causes the server to display its version number and exit.
246 .SH EXAMPLES
248 .B freeciv-server \-\-file oldgame.sav \-\-port 2244
249 Starts a server on port \fI2244\fP, loading the save game file 
250 \fIoldgame.sav\fP.
252 .B freeciv-server \-R ranklog \-l logfile \-r script \-f oldgame.sav.gz -p 2244
253 Starts a server on port \fI2244\fP, loading the save game file 
254 \fIoldgame.sav.gz\fP. Ranking related events are written to \fIranklog\fP, other 
255 logging information is written to \fIlogfile\fP. When the server starts, it 
256 immediately executes the commands contained in \fIscript\fP.
258 .B freeciv-server -m -a -D fc_auth.conf -q 60 -p 2244 -d 2 -l logfile -r script -s ~/saves
259 Starts a server on port \fI2244\fP with authentication enabled and communicates 
260 its existence to the standard Freeciv metaserver. Fatal, error, and normal 
261 messages are written to \fIlogfile\fP. When the server starts it immediately 
262 executes the commands contained in \fIscript\fP. Save game files are stored in 
263 the \fI~/saves\fP directory. When there are no users on the server for \fI60\fP
264 seconds, the server will restart.
265 .SH COMMANDS
266 You may enter commands into the server at any time, either before or during the
267 running of a game. 
269 Type "help" or "help help" for starters.
270 .SH FILES
271 The Freeciv server requires the following files in the Freeciv data directory,
272 which is
273 .I /usr/local/share/freeciv
274 by default:
276 \(bu
277 .I default/buildings.ruleset
279 \(bu
280 .I default/cities.ruleset
282 \(bu
283 .I default/effects.ruleset
285 \(bu
286 .I default/game.ruleset
288 \(bu
289 .I default/governments.ruleset
291 \(bu
292 .I default/nations.ruleset
294 \(bu
295 .I default/techs.ruleset
297 \(bu
298 .I default/terrain.ruleset
300 \(bu
301 .I default/units.ruleset
303 \(bu
304 .I default/default.lua
306 \(bu
307 .I default/script.lua
309 These are the default rule sets used for the game. Alternate sets of rules can
310 be used by placing them in a separate directory and using the \fBrulesetdir\fP
311 command to change your server's ruleset directory. 
313 Type \fBhelp rulesetdir\fP for more information.
314 .SH ENVIRONMENT
315 The Freeciv server accepts these environment variables:
317 .BI FREECIV_CAPS
318 A string containing a list of "capabilities" provided by the server. The
319 compiled-in default should be correct for most purposes, but if you are familiar
320 with the capability facility in the source you may use it to enforce some
321 constraints between clients and server.
323 .BI FREECIV_COMPRESSION_LEVEL
324 Sets the compression level for network traffic.
326 .BI FREECIV_DATA_ENCODING
327 Sets the character encoding used for data files, savegames, and network
328 strings). This should not normally be changed from the default of UTF-8,
329 since that is the format of the supplied rulesets and the standard
330 network protocol.
332 .BI FREECIV_INTERNAL_ENCODING
333 Sets the character encoding used internally by \fBfreeciv-server\fP; this
334 encoding should not be visible at any interface. Defaults to UTF-8.
336 .BI FREECIV_LOCAL_ENCODING
337 Sets the local character encoding (used for the command line and terminal
338 output). The default is inferred from other aspects of the environment.
339 .TP 
340 .BI FREECIV_MULTICAST_GROUP
341 Sets the multicast group (for the LAN tab).
343 .BI FREECIV_DATA_PATH
344 A colon separated list of directories pointing to the
345 .B freeciv
346 data directories. By default Freeciv looks in the following directories,
347 in order, for any data files: the current directory; the "data" subdirectory
348 of the current directory; the subdirectory ".freeciv/@DATASUBDIR@" in the user's
349 home directory; and the directory where the files are placed by running
350 "make install".  If not set,
351 .BI FREECIV_SAVE_PATH
352 A colon separated list of directories pointing to the
353 .B freeciv
354 save directories. By default Freeciv looks in the following directories,
355 in order, for save files: the current directory; and the subdirectory
356 ".freeciv/saves" in the user's home directory.
358 (This does not affect where the server creates save game files; see the
359 .I \-\-saves
360 option for that.)
362 .BI FREECIV_SCENARIO_PATH
363 A colon separated list of directories pointing to the
364 .B freeciv
365 scenario directories. By default Freeciv looks in the following directories,
366 in order, for scenario files: the current directory; the "data/scenarios"
367 subdirectory of the current directory; the subdirectories
368 ".freeciv/@DATASUBDIR@/scenarios" and then ".freeciv/scenarios"
369 in the user's home directory; and the directory where the files are placed
370 by running "make install".
372 (This does not affect where the server creates scenario files; see the
373 .I \-\-scenarios
374 option for that.)
376 .BI HOME
377 Specifies the user's home directory.
379 .BI http_proxy
380 Set this variable accordingly when using a proxy.
382 \fBLANG\fP  or  \fBLANGUAGE\fP
383 Sets the language and locale on some platforms.
385 \fBLC_ALL\fP  or  \fBLC_CTYPE\fP
386 Similar to LANG (see documentation for your system).
388 .BI USER
389 Specifies the username of the current user.
390 .SH BUGS
391 Please report bugs to
392 .UR @BUG_URL@
393 the Freeciv bug tracker
397 .SH "MORE INFO"
398 See the
399 .UR @WIKI_URL@
400 Freeciv homepage
404 Updates and new info is first posted there.
405 .SH AUTHORS
406 The Freeciv Team <@MAIL_ADDRESS@>.
408 This manpage was originally put together by Florian Ernst 
409 <florian_ernst AT gmx.net> using the Server Manual and the comments in the 
410 sourcecode. It was updated by Ben Bettin <bwbettin AT gmail.com> to add new
411 features, integrate information from the website's online documentation, and 
412 for slight formatting adjustments. Feel free to use it as you wish.
413 .SH "SEE ALSO"
414 .IR freeciv-client (6)
415 and the Server Manual on the Freeciv homepage.