Seems a few people have been asking of late, so here it is:
Using this guide its assumed that you have a server running linux, and can connect to it over SSH etc, and have root. Its also assumed you know your way around and have a brain. Its also assumed you know your way around tremulous, even if just the client.
We will be installing tremded under its own user, running under screen.
Global Setup: (This stuff happens once per box, regardless of how many servers you want to run).
Step 1:Add a group called tremded. This is the group that all your tremulous servers will be in, and anyone who is supposed to have access to them.
addgroup tremded
Step 2:Go to /usr/local/games/ (or wherever) and install tremulous.
The files can be gotten from
http://prdownloads.sourceforge.net/tremulous/tremulous-1.1.0.zip?download, and should all be owned by that group you just made. Should also be chmod 755/644.
cd /usr/local/games/
wget 'http://prdownloads.sourceforge.net/tremulous/tremulous-1.1.0.zip?download'
unzip tremulous-1.1.0.zip
rm tremulous-1.1.0.zip # May want to move it some place else for future use instead.
chown -R root:tremded ./tremulous
chmod -R a=rX,u+w ./tremulous
cd tremulous
Step 3:Get a newer tremded.
You can either compile your own , or just use MG's. (Backport patches:
http://patches.mercenariesguild.net/index.php?do=details&task_id=2 MG's:
http://projects.mercenariesguild.net/projects/mgtremded/files )
Dump this over the current tremded.x86 you have. (Make sure its owned by the right user/group etc again).
Step 4:Download any additional maps and dump them in base here.
Per server setup: (Do this once per server you want)
Step 1:Create a user for this server to run under. Should be in the tremded group. For this I'm assuming the user is called server1, yours probably shouldn't be.
adduser --disabled-password --ingroup tremded server1
Everything after this point should be done as user server1 not root or your user.Step 2:Get a good QVM. I recommend Lakitu7's from:
http://projects.mercenariesguild.net/projects/lakitu7-qvm/filesMake a directory ~/.tremulous/base/vm/ and put your new game.qvm there.
mkdir -p ~/.tremulous/base/vm/
cd ~/.tremulous/base/vm/
wget -O game.qvm http://projects.mercenariesguild.net/attachments/download/50/game.qvm # May well be a newer link by the time you read this.
Step 3:Make sure it works. This has the added benefit of making a few files etc for you.
Once its all running right, type quit to kill it.
cd
/usr/local/games/tremulous/tremded.x86 +set dedicated 1 +map atcs
quit
Step 4:Set everything else up.
You can get a template maprotation.cfg and server.cfg from /usr/local/games/tremulous/base/, and copy them into ~/.tremulous/base/ and edit them.
maprotation.cfg is in the manual, and theres plenty about server.cfg around here.
You should also edit your admin.dat if you feel like it. If there is no admin.dat, then step 3's test didn't go right.
You probably want to get rid of the map line at the end, so you can re-exec the config if you ever change it without nuking the server.
Step 5:start it properly. Something like this should work:
screen -d -m -S tremded /usr/local/games/tremulous/tremded.x86 +set dedicated 2 +exec server.cfg +map atcs
You probably want to dump that in a nice shiny script to make things easy.
You can also add +set net_port and +set net_ip to set the IP and port it listens on.
Step 6:(as root)
Make it all owned right, and make the directory's SGID so you can change stuff from other users in the tremded group:
chmod -R ug=rwX,o= ~server1/
chown -R server1:tremded ~server1/
find ~server1 -type d -exec chmod g+s {} +
You can also add the following to your sudoers to allow anyone in the tremded group to sudo to the servers:
Runas_Alias TREM = server1, server2, etc
%tremded ALL=(TREM) ALL
If you want to be able to hook the screen from other users on the system, which you probably do, you can use something like this in ~server1/.screenrc
multiuser on
acladd david
acladd someotheruser
and then use screen -r server1/ to get to it.
I can pretty much guarantee something in this is wrong as I typed it in one block with zero planning.
If you spot mistakes say.