Digital Paint Discussion Board
Paintball 2: The Game => Server Discussion => Topic started by: Henrod on March 26, 2009, 09:11:23 PM
-
Seeing the GT servers going offline permanently is sad to see. I must admit that I took them for granted as most of us did. As many of you know, I work at an ISP. I have access to an AT&T symmetrical 100 MB Ethernet backbone. I have permission to set up DP servers on this line and would be willing if I could get some help. I am willing to buy, maintain, and host these servers but I will need help. I do have at my disposal several, older, computers. Usually they have 1.6 GHz processors and I can load in 2 gigs of ram and fast hard drives. This would serve at least in the interim until eR33t's are back on-line. I also would be interested in buying one, longterm server and was wondering if the experts could tell me if this is sufficient or if I am going about this the wrong way. http://www.tigerdirect.com/applications/SearchTools/item-details.asp?EdpNo=3408713&CatId=2846
I also would need some help with the initial setup as I have never done this before. I do have basic computer knowledge, both hardware and software, but I am mostly self taught. I am asking EXPERIENCED members to offer suggestions and point me in the right direction as I would like to get this rolling before GT servers go offline.
Step 1. The Build.
What specs do I need to run a decent DP server? As I understand it, I can use intergrated video card as pushing pixels around is not a function of the server. Is a Pentium 4 sufficient processor for a 16 person server? Is Windows xp an acceptable OS or should I run Linux? I have absolutely no Linux experience although I have used command based OS before.
I will check back for advice, as well as keep this thread updated with progress. Currently have 3 computers ready to deploy if I can get some help from you guys. Hopefully, this can help the community stay on its feet in the midst of everyone talking about how this game is dieing.
-
1. we ran 3 dp servers and 3 CS servers on a dual p3-450 setup on 512mb of mem running Slackware.
2. Linux is your friend. Ubuntu will probably be easy. Install the OS for a server. No need for any graphical crap.
3. Don't worry about a RAID if you don't have it. Remember: It's only DP.
4. Check eBay for 1850 or 2850 series Dell servers. This Server (http://cgi.ebay.com/Dell-PowerEdge-1850-Dual-3GHz-Xeon-Rackmount-Server-2GB_W0QQitemZ180340309606QQihZ008QQcategoryZ51215QQssPageNameZWDVWQQrdZ1QQcmdZViewItem) would run about 6, 16 player servers without breaking a sweat.
Ask Vinnie. He remembers SnowSTORM.
-
Knack I feel so retarded right now. I didn't even think about our empty rackspace and I have ubuntu installed on my laptop right now. I know linux a bit, I'm not quite sure what I was thinking about when I wrote that. On your suggestion, I will probably pick up one of the 1850s for now and see how it goes. finally west coasters will have some ping lol. VC-DUB servers FTW!
I will update this thread and ask for some OS and server settings advice when I get hardware.
-
;D
You can catch me on YIM during the day if you need help. Vince has my hookup.
-
Kack I feel so retarded right now.
Well, I can see why... I would too if I called him Kack :D
-
OK. I'm runing a few test servers over the next couple of days from our old 2003 server. I can successfully open one server over port 27910. How do I open another server on port 27911. It is opened on the routers, I just need to know where in the server.cfg I can manage which port the server runs on. I'll do a quick search now, but if anyone knows off the top of their head, it would be much appreciated. More updates to come.
-
Server config.
Add in this line: set port 27911
-
Server arrived today and is too long for our rack :/. I'm sure a little grinding will get that puppy in there no problem though lol. More updates to come!
-
Server arrived today and is too long for our rack :/. I'm sure a little grinding will get that puppy in there no problem though lol. More updates to come!
DON'T GRIND THE PUPPY :(
Get on vent.
-
NO!!!!!
Put the grinder down and step away from the server
I'm calling vinnie on you.....
On Edit:
You must have some small racks. That's a standard size server.
-
Installing Ubuntu Server 8.1.0 currently, had some trouble finding an iso burning program that actually worked. Currently checking ISO integrity, this is taking forever.
P.S. I was joking about the grinding Knack, you silly goose. It fits but it sticks out a few inches further than our other servers. No Biggie.
-
Does anyone know if you can actually start X or whatever its called these days on the server version?
-
imgburn is the only iso proggy I use to burn isos.
Cameron, yes you can. You just open another console, login , and start X.
-
ok :).
-
Ubuntu installed smoothly, downloading updates, downloading dp, and moving all map files to external hd for transfer.
-
;D
-
After some retarded roadblocks, maps are loaded onto the server and config is set. I trhink I'm ready to put this server in the rack after I get a static IP for remote login. I know very little about this linux command line and I'm too tired to start learning tonight. Tommorrow i will bug the hell out of knack all day :).
-
/me places henrod on ignore :p
-
Currently a Pub and a Speed Pub are up and running. The map rotation will be set today. Match Servers will go up when I can get an IRC match script or learn how to make one. Hopefully by the end of the weekend.
-
weeeee!
Good job Henry
-
Currently a Pub and a Speed Pub are up and running. The map rotation will be set today. Match Servers will go up when I can get an IRC match script or learn how to make one. Hopefully by the end of the weekend.
You can also talk to br55HiT about the match script he had one for GT servers but im sure it's easy to change that to your servers.
-
Working with Henrod on that now. :)
-
sk89q also set up a server reserving system that works through a web page and allows people to select different server settings. I've been meaning to set that up on the EV1 servers for some time, but I haven't gotten around to it.
-
sk89q also set up a server reserving system that works through a web page and allows people to select different server settings. I've been meaning to set that up on the EV1 servers for some time, but I haven't gotten around to it.
I've already given henry that, but he said he was having problems, so when I get net at my new house I'll help him fix it up :).
-
OK. I've been pretty busy the last week so this had to be set aside. I'm currently having trouble with sk89q's server reserve. After configuring it several times I always get this error when I click the lease server button:
Parse error: syntax error, unexpected '{' in /home/vcweb02/public_html/pball/reserve.php on line 106
I have looked at the reserve.php and found all { are closed and I have very little PHP experience. Any help would be greatly appreciated. Basically all I did was rename the config file, as the readme instructed, and put in the appropriate server names, IP's, and ports.
-
post reserve.php and lets take a look
-
<?php // $Id: reserve.php 12 2008-07-30 17:28:32Z the.sk89q $
/**
* reserve.php - does the work of reserving
*
* @version: $Id: reserve.php 12 2008-07-30 17:28:32Z the.sk89q $
* @license http://www.gnu.org/copyleft/gpl.html
* @package dpmatchreserve
*
*/
require_once "./common.php";
require_once "include/DigitalPaintServer.php";
$smarty->assign('title', 'Lease a Match Server');
$errors = array();
// ===============================
// Get input
// ===============================
$server = $_POST['server'];
$password = $_POST['password'];
$login_password = $_POST['login'];
$bot_check = trim($_POST['botcheck']);
$server_info = @$CONFIG['servers'][$server];
if (!isset($CONFIG['servers'][$server]) && ($CONFIG['enable_autoselect'] && $server != "autoselect")) {
$errors[] = 'A valid server was not selected. Select a valid server to lease.';
}
if (strval($password) === "") {
$errors[] = 'A password must be provided for players to use to login.';
} else if (preg_match("#[^A-Za-z0-9\\-_!@\\#\\$%\\^&\\*\\(\\)\\+=\\\\/\\{\\}\\[\\]\\.,\\?><~`\\|:]#", $password)) {
$errors[] = 'The password provided contained invalid characters. Stick to standard ASCII characters. No spaces are allowed.';
} else if (strlen($password) > 30) {
$errors[] = 'The password is too long. Shorten it.';
}
if (strval($login_password) === "") {
$errors[] = 'A login password must be provided for you to use to change the map and manage players.';
} else if (preg_match("#[^A-Za-z0-9\\-_!@\\#\\$%\\^&\\*\\(\\)\\+=\\\\/\\{\\}\\[\\]\\.,\\?><~`\\|:]#", $login_password)) {
$errors[] = 'The login password provided contained invalid characters. Stick to standard ASCII characters. No spaces are allowed.';
} else if (strlen($login_password) > 30) {
$errors[] = 'The login password is too long. Shorten it.';
}
if ($CONFIG['bot_check_string'] && $bot_check != $CONFIG['bot_check_string']) {
$errors[] = 'Enter the correct value for the spam-bot check';
}
// ===============================
// Process custom settings
// ===============================
$custom_vars = array();
foreach ($CONFIG['user_settings'] as $cvar => $opt) {
$input = $_POST["var_$cvar"];
if (strval($input) === "") continue;
if ($opt['type'] == 'int') {
if (!is_numeric($input)) {
$errors[] = "The value of <em>$cvar</em> must be an integer";
} else if ($input < $opt['min']) {
$errors[] = "The value of <em>$cvar</em> must be equal to or greater than {$opt['min']}";
} else if ($input > $opt['max']) {
$errors[] = "The value of <em>$cvar</em> must be equal to or less than {$opt['max']}";
} else {
$custom_vars[$cvar] = intval($input);
}
} else if ($opt['type'] == 'float') {
if (!is_numeric($input)) {
$errors[] = "The value of <em>$cvar</em> must be a float";
} else if ($input < $opt['min']) {
$errors[] = "The value of <em>$cvar</em> must be equal to or greater than {$opt['min']}";
} else if ($input > $opt['max']) {
$errors[] = "The value of <em>$cvar</em> must be equal to or less than {$opt['max']}";
} else {
$custom_vars[$cvar] = floatval($input);
}
} else if ($opt['type'] == 'bool') {
if ($input == "true") {
$custom_vars[$cvar] = '1';
} else if ($input == "false") {
$custom_vars[$cvar] = '0';
}
}
/*else if ($opt['type'] == 'string') {
if (strlen($input) > 200) {
$errors[] = "The value of <em>$cvar</em> is too long";
} else {
$custom_vars[$cvar] = $input;
}
}*/
}
// ===============================
// Is the server available?
// Or auto-select as necessary
// ===============================
if (count($errors) == 0) {
try {
if ($CONFIG['enable_autoselect'] && $server == "autoselect") {
$found_open = false;
foreach ($CONFIG['servers'] as $server => $server_info) {
$paintball = new DigitalPaintServer($server_info['host'], $server_info['port'], $server_info['rcon_password']);
if (!$paintball->is_online()) {
continue;
} else if (count($paintball->get_players()) > 0) {
continue;
} else if ($CONFIG['grace_period'] > 0) {
$last_lease = @filemtime("cache/last_lease_$server");
if ($last_lease > time()-$CONFIG['grace_period']) {
continue;
}
}
$found_open = true;
break;
}
if (!$found_open) {
$errors[] = "All servers are currently unavailable; please try again later";
}
} else {
$paintball = new DigitalPaintServer($server_info['host'], $server_info['port'], $server_info['rcon_password']);
if (!$paintball->is_online()) {
$errors[] = "<em>".htmlspecialchars($server_info['name'])."</em> is currently offline; please try another server";
} else if (count($paintball->get_players()) > 0) {
$errors[] = "<em>".htmlspecialchars($server_info['name'])."</em> is currently in use; please try another server";
} else if ($CONFIG['grace_period'] > 0) {
$last_lease = @filemtime("cache/last_lease_$server");
if ($last_lease > time()-$CONFIG['grace_period']) {
$errors[] = "<em>".htmlspecialchars($server_info['name'])."</em> was leased by another individual too recently (and it is in the grace period); try another server";
}
}
}
} catch (DPSBadRCONPasswordException $e) {
show_fatal_error("Please report this error to the webmaster of this website: the configured RCON password for <em>".htmlspecialchars($server_info['name'])."</em> is incorrect");
} catch (DPSRCONPasswordUnsetException $e) {
show_fatal_error("Please report this error to the webmaster of this website: there is no configured RCON password for <em>".htmlspecialchars($server_info['name'])."</em>");
} catch (DPSConnectionException $e) {
show_fatal_error("The connection to <em>".htmlspecialchars($server_info['name'])."</em> was lost; please try again");
}
}
// ===============================
// Any errors?
// ===============================
if (count($errors) > 0) {
$smarty->assign('errors', $errors);
$smarty->display('error.tpl');
exit;
}
// ===============================
// Lease it out
// ===============================
// Grace period
if ($CONFIG['grace_period'] > 0) {
if (!$fp = @fopen("cache/last_lease_$server", "w")) {
show_fatal_error("Please report this error to the webmaster of this website: could not write lease grace tracking files to the cache directory (chmod may be necessary)");
}
fclose($fp);
}
try {
// Load the default map
if (isset($CONFIG['default_map']) && !empty($CONFIG['default_map'])) {
if ($CONFIG['use_map_command']) {
$paintball->rcon("map ".$CONFIG['default_map']);
} else {
$paintball->rcon_new_map($CONFIG['default_map']);
}
}
// What variables do we need to change?
$login_vars = array('password' => $password,
"oppass{$server_info['op_pass_num']}" => $login_password);
$changed_vars = array_merge($CONFIG['default_settings'], $custom_vars, $login_vars);
foreach ($changed_vars as $cvar => $value) {
$paintball->rcon_set_variable($cvar, $value);
}
// Execute commands
$commands = explode("\n", $CONFIG['exec_commands_post']);
foreach ($commands as $command) {
$command = trim($command);
if (!$command) {
continue;
}
$paintball->rcon($command);
}
} catch (DPSBadRCONPasswordException $e) {
show_fatal_error("Please report this error to the webmaster of this website: the configured RCON password for <em>".htmlspecialchars($server_info['name'])."</em> is incorrect");
} catch (DPSRCONPasswordUnsetException $e) {
show_fatal_error("Please report this error to the webmaster of this website: there is no configured RCON password for <em>".htmlspecialchars($server_info['name'])."</em>");
} catch (DPSConnectionException $e) {
show_fatal_error("The connection to <em>".htmlspecialchars($server_info['name'])."</em> was lost; please try again");
}
// ===============================
// Send it off
// ===============================
header(sprintf("Location: {$CONFIG['base_url']}/play.php?server=%d&password=%s&login=%s", $server, urlencode($password), urlencode($login_password)));
exit;
-
OK. Got the static IP set on the server FINALLY. Stupid network interface kept clearing out the gateway until I entered the gateway first, then the subnet and static IP. Now that I can access my server remotely, does anyone know how to access the Ubuntu remotely from Vista? I syccessfully logged in from another linux machine so I know that I have the server set up properly. I swear I tried 10 thing I found on google unsuccesfully. Anyone have a proven program to access the desktop form a windows machine? moving a monitor , keyboard, and mouse over to the rack at work is a pain and I'd like to manage the server from home if possible. Without having a Linux box at home that is. I'd rather stay away from a dual boot if possible as well.
-
Henrod, i'll tell you on vent l8r. Mums sorta annoying when I'm supposed to be doing h/w, lol. I'll teach you how to create a virtual image to the server, thats what I'm gonna do, since I intercoursed up my version of ubuntu :P.
-
I got mIRC installed on the server box using wine, so the match servers will be bookable when Henrod goes back to the server and puts the script in it.
-
Henrod, i'll tell you on vent l8r. Mums sorta annoying when I'm supposed to be doing h/w, lol. I'll teach you how to create a virtual image to the server, thats what I'm gonna do, since I intercoursed up my version of ubuntu :P.
Cameron,
When you do this, write up a post on it.
-
About how to create a virtual image? Sure. I'll post it in other stuff when I'm finished writing it up :).
-
:D
-
:D
Done, check other stuff :).
-
Turns out the mIRC fails to run scripts on linux properly, I can't even run it with wine now, my remote connection just crashes along with the servers, so temporarily they will be offline and once Henrod loads the script onto a Windows machine they'll be good to go :), that indicates to you Henrod, do that :).
-
Apparently you don't have PHP 5 or something. Line 106 is the try { block, which was added in v5.
-
Apparently you don't have PHP 5 or something. Line 106 is the try { block, which was added in v5.
Ahh, thats why it worked when I tested it on my webspace then. Another thing, after I re-installed wine and just tried to configure it, it crashes the remote desktop connection, any particular reason? It seems to do the same with anything that relys on wine.
-
They're up.... make a post Henrod, geez.
Pub: 76.194.190.16:27910
Speed: 76.194.190.16:27911
Match 1: 76.194.190.16:27912
Match 2: 76.194.190.16:27913
Match 3: 76.194.190.16:27914
Match 4: 76.194.190.16:27915
Right now Warwulf has got his script running on Match 1, so !fang will book that server in #team_s2k. When Henrod goes back to work, he should be able to get them all going since wine wont run on the server without crashing everything, I think it'll be !match1 !match2, etc atm.