Working on my first server deployment, looking for advice

Discussion in 'Bukkit Discussion' started by Ghost1227, Sep 11, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    Ghost1227

    I'm working on setting up my first Minecraft server and I could use a little advice. The server this will be on is a dedicated server running CentOS 6. Following the basic install from the wiki was simple enough, but it's very minimalistic and not well suited to a 24/7 server. So my question is this... What has everyone found to be the 'perfect' MC server setup? How do you handle backups/upgrades/restarts/etc? Any thoughts that those with more experience have would be greatly appreciated.

    Thanks in advance for any help you can all provide, and thanks to the devs for such a great service!
     
  2. Offline

    Takel

    A 'perfect' set-up is purely subjective to what you want and what your users will want.

    I run my server on my own hardware, so I can't say too much about that apart from it's fairly well featured. If you've got a VPS, then it'll play a really heavy role on what you can do and can't do due to RAM restrictions as well as possible CPU limitations.

    Plug-ins, it really depends on the kind of environment you want to foster. I personally shy away from 'megalithic' plug-ins which do too much (Essentials being the prime offender here IMHO). Part of that is personal preference to roll my own solutions and not be tied down to potential conflicts between plug-ins.

    If you want to have a good grip on what can happen on your server, you need plug-ins that allow you to monitor and get evidence on what happens (loggers), something that allows you to to live roll backs to changes (again, some loggers can do this) and you'll want a plug-in that will let you control what commands or features users will have, which are permission control plug-ins. On the point of permissions, there are two major stand outs: bPermissions and PermissionsEX (PEX). I personally use PEX since I love the way it handles inheritance and multi-world granularity and the compatibility layer it comes with lets plug-ins that only use the old Niji Permissions model function for a bit longer until the authors have changed over. PEX also has the ModifyWorld module which lets you have greater control over build/interact restrictions which is perfect when you want to prevent random joiners from doing too much on the server.
    With logging plug-ins, there's LogBlock, Hawkeye and BigBrother. I personally use Hawkeye because it has rollback previews and a nice php UI to query the logs.

    Going on permissions for a little longer, I try not to use the server op status if at all possible. A lot of plug-ins have the tendency to grant full permissions to server ops, which may not be desired. I use Command Book to allow for the various 'op' commands to be allocated via permission switches. The server management plug-ins that I use (back-ups, auto-saves, anything that has world or server wide effects) have permission controlled commands so I'm able to create a Server Operator permissions group without needing to use the actual server ops. I'm in the belief that access should be allocated by the minimal needed for one to do their task.

    From that point onwards, you're going to need to figure out what 'kind' of server you'll be having. My server doesn't change the formula too much, but has a large number of plug-ins that add convenience or expand the options to build interesting things. I'm not too limited by how many plug-ins I can run since my server has a low population and it's running on dedicated personal hardware with more grunt than most VPS solutions.

    It is possible to run multiple 'flavours' of servers using multiple-worlds, though some plug-ins may actually necessitate multiple server instances to have proper separation. The Multiverse plug-in is the 'leader' in multi-world management, but I personally prefer the WormholeXTreme Worlds plug-in due to its very fine control over world settings.

    Backups, updates and restarts...
    I use three backup streams which give similar effects to a Grandfather/Father/Son methodology. I use MineBackup to make half-hourly backups if there is player activity. These backups are retained for 7 days. I run manual backups via shell scripts daily during the lull periods on the world data and server logs and these are retained for as long as feasible. Obviously, the data beyond 1-2 months is on the verge of being totally useless. Finally, I make weekly backups of all server data including plug-ins. This is in addition to Hawkeye providing individual block change roll-backs.
    Updates are done on a weekly cycle. I've got a lot of plug-ins so it's useful to dedicate a day of the week to do a full scan on which plug-ins have updated, read the change-log to see what has been changed and upgrade if necessary. Certain high importance plug-ins are checked every few days.
    When it comes to CraftBukkit updates, the server gets its state forked over into a development/testing instance and the update is tested against all plug-ins to check for any incompatibilities. Incompatibilities are then checked against the forums to see if it is a known problem and monitored for the appropriate updates. If the plug-in itself is abandoned, then it's time to check for alternatives. Testing new plug-ins as well as establishing their configuration is done in the same manner.
    As for restarts, I used to run a wrapper which automatically restarted the server every day, but after tweaking the Java VM environment I'm finding the RAM usage is clearing itself out well enough for that not to be necessary unless I need to do plug-in updates. Obviously, I try not to impact users with server restarts but standard common courtesy applies if an urgent restart is necessary (15-30 min warning with intervals counting down)
     
  3. Thats pretty much the same how I do it except I use baskit to do plugin snapshots before updating. Also it helps on managing dev/test instances of the Server. For remote management I use the MCWrapper and the JSON Api for iPhone Administratiin.

    Overall u really should plan in some time when it comes to administrating a server it takes a lot of practice to get used to all the changes and not loosing sight of things.

    Good Luck =)
     
Thread Status:
Not open for further replies.

Share This Page