NINJAM server setup guide
To set up a NINJAM server, first find a host that has an abundance of outbound
bandwidth. Or if you want to use NINJAM on a LAN with all of the hosts local,
that is an option as well. The server can currently run on Windows, OS X, Linux, and FreeBSD. To download the server for your platform, see
the download page.
To install the server, extract the archive (or copy the contents of the .dmg if on a mac) to a directory, then edit the example configuration file to suit your
needs. Here is a list of the configuration items and what they mean:
- Port n - port for server to listen on. The default is 2049.
- ServerLicense filename.txt - forces users to view and agree to the license provided to connect. This is useful if you want to run a public server and make people who contribute to a jam license their parts under a Creative Commons or similar license (or whatever license you choose)
- MaxUsers n - maximum number of users allowed.
- MaxChannels n n - set the maximum channels per user for normal (first parameter) and anonymous (second parameter) users.
- SetLog filename - logs to file named "filename". If not specified, logs to standard output.
- SessionArchive path interval - if set, archives all recordings to the path provided, and creates a new subdirectory every "interval" minutes. If interval is 0, the interval is 30 seconds.
- DefaultTopic topic - default server topic.
- DefaultBPM bpm - default server BPM (range 20 to 400)
- DefaultBPI bpi - default server BPI (range 2 to 1024)
- AnonymousUsers yes|no|multi - allow users to log in anonymously (if no, only users with a valid login/password will be allowed). If multi is specified, then multiple anonymous users from the same IP with the same nickname can log in.
- AnonymousUsersCanChat yes|no - allow anonymous users to send chat messages (if no, they can play, but can't contribute to the chat)
- AnonymousMaskIP yes|no - if yes, mask the last number in anonymous users' addresses.
- AllowHiddenUsers yes|no - if no, users without any channels will appear in the user list. otherwise, they will not.
- User username password [permissions] - This adds an authorized user to the user list. If permissions are specified, the default permissions are overridden. Specify * for all access, or include any combination of the following to enable them:
- C - allow this user to chat with other users
- T - allow this user to set the server topic
- B - allow this user to adjust BPM / BPI of server
- K - allow this user to kick other people
- R - allow this user to log in even when server is full
- M - allow this user to log in multiple times
- ACL mask allow|deny|reserve - This adds an entry to the Access Control List (ACL). The configuration file can have any number of these, and the first match is used. mask is in the format of x.x.x.x/y, i.e. 192.168.0.0/16 or 66.88.120.240/28. allow specifies to allow connections, deny specifies to not, and reserve specifies to always allow (even if there are too many users connected).
- SetKeepAlive n - sets connection keepalive time to "n" seconds. Recommended value is 3.
- SetPID filename - writes process PID to "filename". Only valid on non-Windows systems.
Once you've set the configuration the way you think you will like it, you can run the server:
- On OS X/Linux/FreeBSD (OS X will require you to open a terminal and go to the proper directory):
./ninjamsrv configfilename.cfg
- On Windows (after opening a command line, and going to the proper directory):
ninjamsrv configfilename.cfg
If you need ot change the configuration once the server is running, you can restart it by hitting R (on Windows), or by using the command "killall -HUP ninjamsrv" (on Linux/FreeBSD/OS X).