Difference between revisions of "Server Setup"

From ASSS Wiki
Jump to: navigation, search
(added section on directory server how-to)
m
 
(18 intermediate revisions by 8 users not shown)
Line 1: Line 1:
This page will guide you through the process of setting up an [[ASSS]] server. Before beginning you should definetely read the '''userguide''' located in /docs or [http://sscx.net/asss/userguide.html here].  It's probably most important to read the "File Layout" section, which describes the what you're looking at when you extract the ASSS package. Afterwards, visit the [http://sscx.net/asss/ ASSS website] and download the release you're looking for (Linux or Windows).
+
This page will guide you through the process of configuring an [[ASSS]] server. This page is a continuance of [[Installing ASSS|the installation instructions]].
 
 
You also want to make sure that if you are not going to use MySQL or Python that you disable the appropriate modules.  Or conversely, make sure that all the System Requirements are installed before proceeding any further.
 
 
 
== Building Linux Version ==
 
 
 
* tar zxvf asss-1.x.y.tar.gz
 
* cd asss-1.x.y/src
 
* edit [[Makefile]] (in your favorite text editor)
 
* make
 
 
 
  
 
== Configuring ASSS ==
 
== Configuring ASSS ==
  
You will probably want to take a look at the [[modules.conf]] config file before running ASSS for the first time to check for dependency issues.
+
You will probably want to take a look at the [[modules.conf]] file before running ASSS for the first time to check for dependency issues.
  
Note:  A ';' refers to a comment and all following characters before a newline are ignored.
+
Note:  A ';' precedes a comment and all following characters before a newline are ignored.
  
=== Changing Zone Name / Description ===
+
=== Changing Zone Name and Description ===
The zone name and description are both defined in the /conf/global.conf file. Edit this file and you will be able to change your zone's name / description:
+
The zone name and description are both defined in the /conf/[[global.conf]] file. Edit this file to set your zone's name and description. Set both Billing:ServerName and Directory:Name to your desired zone name, and set Directory:Description to the description you want listed on the [[directory server]]. You'll also want to set the current directory servers in Server1, Server2, etc. At this time the following directory servers work: ''sscentral.sscuservers.net'' and ''sscentral.subspacehq.com''.
  
 +
To have ASSS send its info to the directory servers, uncomment (remove the semicolon preceding) the ''directory'' module in [[modules.conf]]:
 
<pre>
 
<pre>
[ Billing ]
+
directory
;Proxy = bin/proxy
+
;billing
IP = 127.0.0.1
 
Port = 1850
 
ServerName = _ZONENAME_
 
Password = billingpw
 
 
</pre>
 
</pre>
  
 +
When you run ASSS you should see the following output on module load:
 
<pre>
 
<pre>
[Directory ]
+
I <cmod> loading C module 'directory' from 'internal'
Name = _ZONENAME_
+
I <directory> server on port 5000 using name 'YOUR ZONE NAME HERE'
Description = _ZONEDESCRIPTION_
+
I <directory> using 'sscentral.sscuservers.net' at 62.65.37.101 as a directory server
 +
I <directory> using 'sscentral.subspacehq.com' at 199.232.158.5 as a directory server
 +
</pre>
 +
and the following during normal ASSS operation:
 +
<pre>
 +
D <directory> sending information to directory servers
 
</pre>
 
</pre>
  
=== Changing Staff ===
+
=== Configuring Staff ===
Your staff is defined in /conf/staff.conf
+
Your staff is defined in /conf/[[staff.conf]].
  
 
In order to give yourself sysop you would change it to:
 
In order to give yourself sysop you would change it to:
Line 51: Line 44:
 
</pre>
 
</pre>
  
You may also need to log in once using ?passwd <subspace login password> and rejoining the zone before commands work. This is to validate that only someone using your password is allowed to use sysop commands, in case the [[Biller|Billing Server]] goes down, or you don't use a biller.
+
You may also need to log in once using ?passwd <subspace login password> and rejoining the zone before commands work. This is to validate that only someone using your password is allowed to use sysop commands, in case the [[Biller|Billing server]] goes down or you don't use a biller.
 +
 
 +
Notice that you have given yourself access to group Sysop in (global). This means that you will have Sysop privileges in all arenas. To limit a player to have only access in a single arena, put the player in the section pertaining to that arena. For example, to only have sysop powers in arena basketball you would do:
  
=== Changing Map ===
+
<pre>
To change the map you need to first put the map (.lvl file) you want to use into the /maps/ directory. Then you edit the settings in the arena you want your map to be in. Change General:Map to be the name of the .lvl file you want it to use.
+
[GroupPasswords]
 +
; this section is just "group-name = password"
 +
; groups that aren't listed can't be logged into by password.
  
=== Changing Settings ===
+
; the rest of the sections in this file are named after arena groups
To change what default arena is using, edit /arenas/(default)/arena.conf. Note that this file may use data from other files using #include statements. To override certain settings without editing them from the original files, you can define them at the end of a file. For example, if you wanted svs settings, but the map to be "mymap.lvl" you could set your arena.conf to be:
+
 
 +
basketball:_YOURNAME_ = Sysop
 +
 
 +
[(global)]
 +
; these are "playername = group"
 +
</pre>
 +
 
 +
Also note that Sysop is an arbitrary group that can have any number or privileges. You can make up your own groups, too, and limit their special abilities and commands. Say we wanted to add a group called SettingChanger, who could change the settings in a single arena (let's say basketball), but not use arena messages or spec other players. First we'll add the players (in this case, Priitk) to the appropriate group in staff.conf:
  
 
<pre>
 
<pre>
 +
[GroupPasswords]
 +
; this section is just "group-name = password"
 +
; groups that aren't listed can't be logged into by password.
 +
 +
; the rest of the sections in this file are named after arena groups
  
; drop in all of svs settings here
+
basketball:Priitk = SettingChanger
#include conf/svs/svs.conf
 
  
[General]
+
[(global)]
Map = mymap.lvl
+
; these are "playername = group"
 
</pre>
 
</pre>
  
=== Changing Modules ===
+
Then, in groupdef.conf we'll add the group and it's privileges.
You can change which modules your server uses. First make sure the compiled .dll file with your plugin is in the /dist/bin/ directory. Let's say our .dll file was called MyModules.dll and the module we were trying to use was called FreqWatcher. Now edit /conf/modules.conf and at the very end add:
 
  
 
<pre>
 
<pre>
MyModules:FreqWatcher
+
; conf/groupdef.conf
 +
; don't edit this file, edit the ones in groupdef.dir
 +
 
 +
[SettingChanger]
 +
#include groupdef.dir/default
 +
cmd_quickfix
 +
cmd_getsettings
 +
 
 +
changesettings
 +
 
 +
[default]
 +
#include groupdef.dir/default
 +
...
 
</pre>
 
</pre>
  
The order of the modules.conf file is important, as files that depend on other files must be listed after them (unless they take advantage of MM_POSTLOAD in their main module function). Usually when the server aborts while loading, the problem can be traced back to the modules.conf file (a module is missing, or in the wrong place).
+
And now the Priitk should be able to change the settings by using ?getsettings or ?quickfix, but only in arena basketball. Editing groupdef.conf directly is not recommended, so it's much cleaner to do something like
 +
 
 +
<pre>
 +
; conf/groupdef.conf
 +
; don't edit this file, edit the ones in groupdef.dir
 +
 
 +
[SettingChanger]
 +
#include groupdef.dir/default
 +
#include groupdef.dir/setchanger
 +
 
 +
[default]
 +
#include groupdef.dir/default
 +
...
 +
</pre>
  
=== Adding Your Zone to a Directory Server ===
+
and then create a file in groupdef.dir called setchanger which contains the privileges and commands:
  
Uncomment the ''directory'' module in [[modules.conf]]:
 
 
<pre>
 
<pre>
directory
+
cmd_quickfix
;billing
+
cmd_getsettings
 +
 
 +
changesettings
 
</pre>
 
</pre>
  
Edit the Directory section in [[global.conf]], and add in directory server addresses in Server1, Server2, etc ... At this time the following directory servers work: ''sscentral.sscuservers.net'' and ''sscentral.subspacehq.com''.
+
You've probably noticed that lines prefixed with cmd_ enable a player to use that command. Also, a line prefixed with privcmd_ allows a player to use a private command (one that can be messaged to a player). There are other capabilities, such as changesettings above, that a player needs in order to perform some actions, such as change the settings. Here's a complete list of the non-command capabilities (from [[grelminar]]'s [http://asss.yi.org/asss/files/userguide.html User Guide]):
 +
 
 +
 
 +
* <tt>seeprivarena</tt> controls whether private arena names are sent to a player for the ?arena command.
 +
* <tt>seeprivfreq</tt> determines if a player sees private freqs in the freq listing.
 +
* <tt>findinprivs</tt> is needed by a player running ?find for the server to report the names of private arenas. (Not implemented yet.)
 +
* <tt>seeepd</tt> allows players to see other ship's energy and specials from spectator mode. (''epd'' stands for extra position data.)
 +
* <tt>seesysoplogall</tt> allows a player to see all important log messages in the zone.
 +
* <tt>seesysoplogarena</tt> only allows a player to see only important log messages having to do with the arena he is currently in.
 +
* <tt>seemodchat</tt> allows players to see the moderator chat.
 +
* <tt>sendmodchat</tt> controls who can send moderator chat messages. Usually, these two capabilities would be given to the same people.
 +
* <tt>uploadfile</tt> allows a player to upload files. Note that the player must also have the cmd_putfile to upload a file using that command.
 +
* <tt>bypasslock</tt> allows players to switch ships even though the arena or themselves have been locked into a ship or into spectator mode by a staff member.
 +
* <tt>bypasssecurity</tt> lets players use unauthorized clients, or prevents kicking off for security checksum failures.
 +
* <tt>invisiblespectator</tt> makes players not show up on the list given when the person they are spectating uses the ?spec command.
 +
* <tt>unlimitedchat</tt> allows a player (e.g., a bot) to bypass chat flooding checks.
 +
* <tt>changesettings</tt> lets clients use the settings change packet (required for ?quickfix/?getsettings).
 +
* <tt>isstaff makes</tt> players show up in ?listmod output.
 +
* <tt>seeallstaff</tt> allows a player to see all non-default-group players, even if they lack isstaff.
 +
 
 +
Also see: http://sscx.net/asss/userguide.html#%_sec_4
 +
 
 +
=== Adding My Map ===
 +
To change the map you need to first put the map (.lvl file) you want to use into the /maps/ directory. Then you edit the settings in the [[arena]] you want your map to be in. Change General:Map to be the name of the .lvl file you want it to use.
 +
 
 +
=== Editing Arena Settings ===
 +
 
 +
To change the settings the default arena (called public in [[Subgame]]) is using, edit /arenas/(default)/[[arena.conf]]. Note that this file may use data from other files using #include statements. To override certain settings without editing them from the original files, you can define them at the end of a file. For example, if you wanted svs settings, but the map to be "mymap.lvl" you could set your arena.conf to be:
  
When you run ASSS you should see the following output on module load:
 
 
<pre>
 
<pre>
I <cmod> loading C module 'directory' from 'internal'
+
; drop in all of svs settings here
I <directory> server on port 5000 using name 'YOUR ZONE NAME HERE'
+
#include conf/svs/svs.conf
I <directory> using 'sscentral.sscuservers.net' at 62.65.37.101 as a directory server
+
 
I <directory> using 'sscentral.subspacehq.com' at 199.232.158.5 as a directory server
+
[General]
 +
Map = mymap.lvl
 
</pre>
 
</pre>
and the following during normal ASSS operation:
+
 
 +
=== Changing Modules ===
 +
You can change which modules your server uses. First make sure the compiled .dll file with your plugin is in the /dist/bin/ directory. Let's say our .dll file was called MyModules.dll and the module we were trying to use was called FreqWatcher. Now edit /conf/modules.conf and at the very end add:
 +
 
 
<pre>
 
<pre>
D <directory> sending information to directory servers
+
MyModules:FreqWatcher
 
</pre>
 
</pre>
 +
 +
The order of the modules.conf file is important, as files that depend on other files must be listed after them (unless they take advantage of MM_POSTLOAD in their main module function). Usually when the server aborts while loading, the problem can be traced back to the modules.conf file (a module is missing, or in the wrong place).
 +
  
 
== Running ASSS ==
 
== Running ASSS ==
Line 105: Line 171:
 
In Linux, just run ./scripts/run-asss, which handles ?shutdown -r. ''IMPORTANT:'' You will need to edit the ASSSHOME variable defined inside the script to point to the directory you extracted ASSS.
 
In Linux, just run ./scripts/run-asss, which handles ?shutdown -r. ''IMPORTANT:'' You will need to edit the ASSSHOME variable defined inside the script to point to the directory you extracted ASSS.
  
 +
[[Category:ASSS]]
 
[[Category:Guides]]
 
[[Category:Guides]]
[[Category:ASSS]]
 

Latest revision as of 03:56, 29 May 2011

This page will guide you through the process of configuring an ASSS server. This page is a continuance of the installation instructions.

Configuring ASSS

You will probably want to take a look at the modules.conf file before running ASSS for the first time to check for dependency issues.

Note: A ';' precedes a comment and all following characters before a newline are ignored.

Changing Zone Name and Description

The zone name and description are both defined in the /conf/global.conf file. Edit this file to set your zone's name and description. Set both Billing:ServerName and Directory:Name to your desired zone name, and set Directory:Description to the description you want listed on the directory server. You'll also want to set the current directory servers in Server1, Server2, etc. At this time the following directory servers work: sscentral.sscuservers.net and sscentral.subspacehq.com.

To have ASSS send its info to the directory servers, uncomment (remove the semicolon preceding) the directory module in modules.conf:

directory
;billing

When you run ASSS you should see the following output on module load:

I <cmod> loading C module 'directory' from 'internal'
I <directory> server on port 5000 using name 'YOUR ZONE NAME HERE'
I <directory> using 'sscentral.sscuservers.net' at 62.65.37.101 as a directory server
I <directory> using 'sscentral.subspacehq.com' at 199.232.158.5 as a directory server

and the following during normal ASSS operation:

D <directory> sending information to directory servers

Configuring Staff

Your staff is defined in /conf/staff.conf.

In order to give yourself sysop you would change it to:

[GroupPasswords]
; this section is just "group-name = password"
; groups that aren't listed can't be logged into by password.

; the rest of the sections in this file are named after arena groups

[(global)]
; these are "playername = group"
_YOURNAME_ = Sysop

You may also need to log in once using ?passwd <subspace login password> and rejoining the zone before commands work. This is to validate that only someone using your password is allowed to use sysop commands, in case the Billing server goes down or you don't use a biller.

Notice that you have given yourself access to group Sysop in (global). This means that you will have Sysop privileges in all arenas. To limit a player to have only access in a single arena, put the player in the section pertaining to that arena. For example, to only have sysop powers in arena basketball you would do:

[GroupPasswords]
; this section is just "group-name = password"
; groups that aren't listed can't be logged into by password.

; the rest of the sections in this file are named after arena groups

basketball:_YOURNAME_ = Sysop

[(global)]
; these are "playername = group"

Also note that Sysop is an arbitrary group that can have any number or privileges. You can make up your own groups, too, and limit their special abilities and commands. Say we wanted to add a group called SettingChanger, who could change the settings in a single arena (let's say basketball), but not use arena messages or spec other players. First we'll add the players (in this case, Priitk) to the appropriate group in staff.conf:

[GroupPasswords]
; this section is just "group-name = password"
; groups that aren't listed can't be logged into by password.

; the rest of the sections in this file are named after arena groups

basketball:Priitk = SettingChanger

[(global)]
; these are "playername = group"

Then, in groupdef.conf we'll add the group and it's privileges.

; conf/groupdef.conf
; don't edit this file, edit the ones in groupdef.dir

[SettingChanger]
#include groupdef.dir/default
cmd_quickfix
cmd_getsettings

changesettings

[default]
#include groupdef.dir/default
...

And now the Priitk should be able to change the settings by using ?getsettings or ?quickfix, but only in arena basketball. Editing groupdef.conf directly is not recommended, so it's much cleaner to do something like

; conf/groupdef.conf
; don't edit this file, edit the ones in groupdef.dir

[SettingChanger]
#include groupdef.dir/default
#include groupdef.dir/setchanger

[default]
#include groupdef.dir/default
...

and then create a file in groupdef.dir called setchanger which contains the privileges and commands:

cmd_quickfix
cmd_getsettings

changesettings

You've probably noticed that lines prefixed with cmd_ enable a player to use that command. Also, a line prefixed with privcmd_ allows a player to use a private command (one that can be messaged to a player). There are other capabilities, such as changesettings above, that a player needs in order to perform some actions, such as change the settings. Here's a complete list of the non-command capabilities (from grelminar's User Guide):


  • seeprivarena controls whether private arena names are sent to a player for the ?arena command.
  • seeprivfreq determines if a player sees private freqs in the freq listing.
  • findinprivs is needed by a player running ?find for the server to report the names of private arenas. (Not implemented yet.)
  • seeepd allows players to see other ship's energy and specials from spectator mode. (epd stands for extra position data.)
  • seesysoplogall allows a player to see all important log messages in the zone.
  • seesysoplogarena only allows a player to see only important log messages having to do with the arena he is currently in.
  • seemodchat allows players to see the moderator chat.
  • sendmodchat controls who can send moderator chat messages. Usually, these two capabilities would be given to the same people.
  • uploadfile allows a player to upload files. Note that the player must also have the cmd_putfile to upload a file using that command.
  • bypasslock allows players to switch ships even though the arena or themselves have been locked into a ship or into spectator mode by a staff member.
  • bypasssecurity lets players use unauthorized clients, or prevents kicking off for security checksum failures.
  • invisiblespectator makes players not show up on the list given when the person they are spectating uses the ?spec command.
  • unlimitedchat allows a player (e.g., a bot) to bypass chat flooding checks.
  • changesettings lets clients use the settings change packet (required for ?quickfix/?getsettings).
  • isstaff makes players show up in ?listmod output.
  • seeallstaff allows a player to see all non-default-group players, even if they lack isstaff.

Also see: http://sscx.net/asss/userguide.html#%_sec_4

Adding My Map

To change the map you need to first put the map (.lvl file) you want to use into the /maps/ directory. Then you edit the settings in the arena you want your map to be in. Change General:Map to be the name of the .lvl file you want it to use.

Editing Arena Settings

To change the settings the default arena (called public in Subgame) is using, edit /arenas/(default)/arena.conf. Note that this file may use data from other files using #include statements. To override certain settings without editing them from the original files, you can define them at the end of a file. For example, if you wanted svs settings, but the map to be "mymap.lvl" you could set your arena.conf to be:

; drop in all of svs settings here
#include conf/svs/svs.conf

[General]
Map = mymap.lvl

Changing Modules

You can change which modules your server uses. First make sure the compiled .dll file with your plugin is in the /dist/bin/ directory. Let's say our .dll file was called MyModules.dll and the module we were trying to use was called FreqWatcher. Now edit /conf/modules.conf and at the very end add:

MyModules:FreqWatcher

The order of the modules.conf file is important, as files that depend on other files must be listed after them (unless they take advantage of MM_POSTLOAD in their main module function). Usually when the server aborts while loading, the problem can be traced back to the modules.conf file (a module is missing, or in the wrong place).


Running ASSS

To run the windows version of ASSS, locate ASSS.bat and double click it. That's it! You now have your own zone up and running.

In Linux, just run ./scripts/run-asss, which handles ?shutdown -r. IMPORTANT: You will need to edit the ASSSHOME variable defined inside the script to point to the directory you extracted ASSS.