McMyAdmin licence migration plan.

March 10, 2014 at 3:44 PMPhonicUK

After many months, the new CubeCoders software licencing system is built and running. The new system offers a number of benefits:

  • No more dependencies on email addresses for the licence. You'll be able to switch email address much more easily in the future.
  • The server ID no longer needs to be requeried each time McMyAdmin starts up.
  • Proper invoicing facilities, with nice printable PDF invoices for your records.
  • Better key tracking and management. You'll be able to see how many remaining usages you have on each licence you own.
  • Greater licencing flexibility. It means we'll be able to have a wider variety of licence types to suit different users better.
The next stage is getting everything moved over to using it. With nearly 200K users, this is a difficult task.
 
So the migration is going to be done in stages, the current plan looks like this:
 
1) Dual Licencing
 
The first step is to release a version of McMyAdmin capable of handling both the new licences and the old ones, and that can continue operating just using a 'legacy' licence. During this step the old style licences will continue to be issued.
 
2) New purchases moved to new system.
 
Next is to have all new issued licences switch to being issued by the new system. This will be done a couple of weeks after the dual-licencing release to allow for the gap between downloading McMyAdmin and purchasing a licence. Old style licences will continue to be valid.
 
3) Automated migration of legacy licences to 'modern' licences.
 
After that the legacy licences will be automatically converted to the new style. This will trigger emails being sent out to everyone affected over a period of time with the new details in. McMyAdmin instances with valid licences will automatically collect their 'new' licence from the licence server without requiring any user interaction. During this stage the legacy licences will still be valid in the event that McMyAdmin cannot contact the licence servers due to the increased load.
 
4) Termination of legacy licences.
 
Once all licences have been moved over to the new system, another version of McMyAdmin will be released without the legacy licence system and will only run or activate with a 'modern' licence.
 
5) Mandatory update to 'modern' licence version.
 
About six weeks after the modern-licence only version of McMyAdmin is released, a mandatory update notice will be sent out to older versions. In addition, the legacy licence server will report a licence failure to all remaining legacy instances.
 
Other notes:
 
  • Anyone who has a free or complimentary licence will need to contact CubeCoders to request a new licence to be generated. These licences will not migrate automatically.
  • Enterprise hosts will be required to fill in a short form to migrate their licence. This is only done once for the whole licence (not per-instance) to collect information such as business type and VAT registration numbers (if applicable)
  • Linux users may have to install a new binary to update when the time comes, but all settings will remain.

Posted in: McMyAdmin

Tags:

Email issues and missing keys.

May 28, 2013 at 2:56 PMPhonicUK

We've been having an issue with our mail server, and some licence keys have been lost as a result.

If you've recently purchased McMyAdmin, and do not receive your key by 12:00 GMT 29/05/2013 (Wednesday) - please do the following:

- Visit https://ssl.mcmyadmin.com/keyrecovery/

- Enter your paypal email address and select "Find Licence"

If after doing that you *still* don't have your licence within an hour of doing that, use the contact form at http://phonicuk.com/Contact.aspx with a subject of "NOKEY" and we'll send it to you by hand.

Note that the key recovery page linked above isn't usable until the day after your purchase (the transactions are processed in the early morning)

Apologies for any inconvenienced caused. We hope to have the issues resolved before the close of play today.

Posted in: McMyAdmin

Tags:

McMyAdmin to undergo external penetration testing.

May 17, 2013 at 10:38 AMPhonicUK

At some point during this month, McMyAdmin is going to be subjected to external penetration testing by a specialist security firm here in the UK.

It will be tested for issues including potential authentication bypasses, XSS attacks, session spoofing/hijacking and other issues that could compromise security for hosts or end users.

Once complete, McMyAdmin will be the only Minecraft control panel to have undergone professional security testing for the benefit of its users.

While there are currently no known vulnerabilities in McMyAdmin, the purpose of this exercise it to make absolutely sure. Security is no accident.

Posted in: McMyAdmin | Security

Tags: , ,

Proposed McMyAdmin Extension development guidelines.

April 30, 2013 at 11:51 AMPhonicUK

McMyAdmin is moving more towards the point that part of its strength will be in the extra features provided by 3rd party extensions provided by other users. This of course naturally points things in the direction of a 'extension marketplace' where people can distribute extensions.

Whether or not they could be charged for is an interesting question, since they are simply HTML and Javascript and thus very easy to reverse engineer. However MCMA is able to provide signing and verification to prevent people using extensions they aren't allowed to (to some degree) - however in the immediate term, its likely that the initial release of such a market would have all the extensions being free.

So that in mind, there would be some sense in having a set of guidelines for what Extensions should or should not do in order to provide a good user experience.

Below is a first draft of the restrictions. Comments are invited by users and developers.

Extensions must (mandatory)

  • work on Internet Explorer 9 (or newer), Google Chrome and Mozilla Firefox as a minimum with equal functionality on all 3 browsers (exceptions may be made for bleeding-edge technologies such as WebGL)
  • warn the user before deleting or modifying any user data (such as permissions)
  • store user configuration using the extension configuration APIs and not via any other means.
  • not modify the McMyAdmin control panel outside of their own designated tab.
  • not permanently store any sensitive data (such as usernames, passwords, ip addresses, etc)
  • not use javascript or HTML included from external sources (all used code and markup assets must ship with the extension itself)
  • not manipulate any of McMyAdmins existing functionality.
  • not use obfuscated source code. All extension source should be human readable.
  • not attempt to replace the version of jQuery loaded by McMyAdmin

Extensions should (strongly advised, but not entirely mandatory)

  • conform to McMyAdmins overall look and feel (using the same CSS classes) where possible.
  • avoid using 3rd party services outside of the developers control.
  • not modify McMyAdmins own settings without notifying the user that it is about to do so first.
 
If you have any comments about the existing proposed rules or would like to suggest some of your own, you may post them below.

Posted in: McMyAdmin

Tags: , ,

McMyAdmin to be owned by CubeCoders Limited

February 26, 2013 at 11:59 AMPhonicUK

This is a move long overdue, but finally it's happening.

Last week I started the process of moving my business operations to run as a fully fledged limited company here in the UK.

The final switch over will happen on the 1st of April this year. Meaning that at that point, all McMyAdmin related licences and contracts will move to being with myself to being with CubeCoders Limited.

Among other changes that are going to go along with this, all existing McMyAdmin Pro and Enterprise licences are being reissued either on or shortly after April 1st.

This will also trigger a mandatory update in McMyAdmin to change to using the new licencing server. Those with existing entered keys should find that their licence key is automatically swapped over without any intervention on their part.

Part of the move to the new licencing system is to no longer tie licences to email addresses or Paypal accounts to make them more flexible.

All existing licence keys will remain usable for a number of months after the changeover to give people time to migrate - but there will be a point at which old licence keys cease to be usable. There will be measures in place to help people recover lost keys if they have not managed to migrate by that time and the automated systems are unable to assist.

All in all this should be a largely transparent and painless transition, with many long term improvements once everything is done and dusted.

Posted in: McMyAdmin

Tags:

Announcing McMyAdmin XS - manage multiple McMyAdmin servers from a single interface.

January 26, 2013 at 8:02 PMPhonicUK

 

McMyAdmin XS allows you to manage multiple McMyAdmin instances from a single web interface. Like McMyAdmin it is entirely self contained with everything it needs to operate. You will be able to:

  • View average CPU+RAM usage across all monitored servers
  • Group servers into arbitrary categories (for example, you could group all the servers on a single physical machine together)
  • Perform mass operations such as restarts or updates across either all servers, or all servers in a categories.
  • View an individual servers panel from within the same interface to access all of that servers settings.
  • Auto-add any existing Pro servers by supplying your McMyAdmin Pro licence key.
  • Auto-add servers by scanning a subnet for instances (Only available to McMyAdmin Enterprise users).
A few notes about the restrictions surrounding McMyAdmin XS:
  • 32-bit systems are entirely unsupported. McMyAdmin XS will not start on any 32 bit system.
  • McMyAdmin XS will not permit running as root/administrator. It must be run as a restricted user.
  • McMyAdmin Personal servers cannot be managed via McMyAdmin XS. Only McMyAdmin Pro and Enterprise servers may be managed.
Like McMyAdmin itself, McMyAdmin XS includes a scheduler. It will allows you to schedule certain tasks across all managed servers.
 
McMyAdmin XS will be made freely available to all McMyAdmin Pro/Enterprise users.
 
Screenshots and further details to follow.

Posted in: McMyAdmin | McMyAdmin XS

Tags:

The development principals behind McMyAdmin.

December 24, 2012 at 2:54 PMPhonicUK

I'm often asked how I decide to do things in McMyAdmin, or why I chose to implement some things or not others. So I'm going to try and give a little insight into how I do things or why I do things a certain way.

So these are some of the principles and ideas behind developing McMyAdmin:

"If users are hand-editing configuration files as part of day-to-day administration, you are doing something wrong".

Bare in mind that the context for this is in terms of your average user. Not a seasoned server administrator, but someone who doesn't know their FTP from their SCP and doesn't have a clue what a public and private key are.

It's quite a basic idea when it comes down to it - keep things simple. But this has several implications. What do you do when there is a configuration structure that doesn't translate well into a graphical interface?

What this usually means is that certain functionality is omitted in order to keep the user interface simple. Take the Users and Groups management for example, there is no per-user management at the moment. Why? Well you get the same result by creating a single group just for that one user, and it keeps the user interface and mental model very simple. Users belong to groups, and groups determine what the members of that group can and can't do. In addition it translates well into most other permission models relatively easily.

Similarly McMyAdmin deliberately lacks a file editor at the moment. I could at any moment put in a file browser (with safety restrictions to only allow editing of configuration files, etc) with a basic text editor, but for anyone but an experienced user this would deliver a very poor user experience when compared to the rest of McMyAdmin. Everywhere you look in McMyAdmin there are small indications about what something does. If you look at the settings for example each setting has a small description next to it explaining what the setting does, and it is impossible to give a 'wrong' value (since you're usually just picking from a predefined set of values). A 'dumb' text editor however leaves the user with no clue what is expected of them. In addition users who are advanced enough to know how to manage plain-text configuration files by hand are often quite happy to do so outside of the web interface (via SFTP/SCP).

In an ideal world, plugins/mods could include a meta-configuration file that specifies the format and acceptable values for a configuration file that a UI can be automatically derived from (and the feasibility of this is being investigated) but this does have an interesting set of challenges.

"Keeping 95% of your users very happy is more important than keeping 100% of your users marginally happy".

If you are but a mere mortal, time is a finite resource. So making sure that it's being used optimally is very important in the world of software development. In terms of McMyAdmin development what this translates to is having fewer features by only implementing those that the majority of users would use, but making sure they are well presented and thoroughly polished. Adding more features that very few users would use means less time making sure existing features are well rounded and pleasant to use.

Of course this comes with some trade offs. Power users would likely be more tolerant of features being slightly rough around the edges and would accept that if it meant getting an interesting new feature, but sometimes the cost of implementing a feature only used by a small number of users makes it uneconomical. 

Sometimes however what happens is the feature appears much much later, with many alterations to the original idea in order to make it user friendly and something that feels pleasant to use. For example the new MCMA scheduler that allows tasks to be executed in response to certain events is very simple to use and allows for a lot of flexibility, but it went though many iterations before something usable came out as the end result.

"Consistency is key"

One of the things I'm often asked is why some settings from the server.properties file (like the server IP and port) are omitted from the web interface. The answer of course is for the hosting companies who don't want users to be trying to mess around with those settings. I'm then subsequently asked why I don't allow those settings normally and just hide them for those on hosting companies.

The issue here is consistency. If a user uses McMyAdmin locally or on a server to which they have full access and sees what can be done via the web interface, they would have a poor user experience if they used McMyAdmin on a managed host and found that certain features weren't there. This doesn't apply quite so much to the server IP and port since those are usually things that you set once and never need to touch again, but the idea is the same - keep things as similar as possible between different versions so that users have a consistent experience no matter what environment they use MCMA in.

There are a few exceptions to this of course, but with the sole exception of server sleeping (hosting providers can force sleeping to be enabled and disable the ability to turn it off) they are features that you never actually see in the web interface (things like using LDAP authentication)

Questions from Visitors

Ben asks:

"Couldn't you put in a Advanced mode in the panel which does allow you to go more in depth with plugin configs?"

Well Ben, yes I could. But I don't for a moment think that 'normal' users would be discouraged from going and trying to use it and possibly making mistakes that negatively impact their server. Warnings don't go too far except to be a 'I told you so' point after the user has done something daft - for example the Permissions exporter setting gives you a massive full screen warning telling the user that their data is about to be overwritten and to take a backup if they want to keep it, and some still fail to do so only to be made to look really silly when you point out they were warned.

There is also the issue again of consistency. Hosting providers would almost certainly disable any advanced mode to keep support costs in check, so it'd deliver a poor experience to find that certain features were only sometimes available.

LACDH asks:

"So basically it's your way or the highway?"

That's a slightly blunt way of looking at it but it's parly true. I ultimately decide what goes into McMyAdmin and how, although Enterprise providers get a very heavy say in terms of features they need to run their businesses effectively.

But again extensions allow you to add things that I either haven't thought of, or have for whatever reason decided not to add (yet).

Jimmy asks:

"I heard previously that MCMA will support multi-world backups. I've noticed that this hasn't been implemented yet. Is there something you're waiting on or another thing that's preventing this feature from being implemented?"

It is indeed getting it. It has been slow because it's been tricky to come up with a model for how users will configure multiple worlds. Multi-world support in McMyAdmin also includes support for permissions exporting and not just backups so that's been the bottleneck. I've been reluctant to add one but not the other due to user expectations.

The initial approach was to let users add worlds, then they'd add groups to the worlds, and users to the groups. The problem with this was it meant duplicating identical groups for different worlds too often and it was very laborious.

What I've settled for instead is that when you're editing a group you get to specify which worlds it's going to be applied to with a list of tick boxes for each world configured, and MCMA will automatically handle any configuration duplication as necessary to make it work. It's a tad tricky under the hood but it gives a very nice end-user experience.

 

If you have any more questions about why I decide to do things a certain way, please feel free to post a comment and I'll update this post with as good an answer as I can manage.

Posted in: McMyAdmin

Tags: ,

Things that suck about McMyAdmin right now, and what's being done about them.

November 13, 2012 at 3:37 PMPhonicUK

I would be a very poor developer if I didn't acknowledge that my software has it's weaknesses, because unless as a developer you are aware of your software's shortcomings you can never improve upon them.

So here are the areas that I think most urgently need the most improvement, and what I intend to do about it:

Backups

While only being able to backup the main world was fine in McMyAdmin's early days with vanilla servers, it has become woefully inadequate for most users today.

So to sort this, a whole new backup system is being built for use in McMyAdmin 2.4. It will be able to:

  • Selectively backup and restore multiple worlds (you could back up all worlds, but only restore 1 if you wished).
  • Backup and restore your McMyAdmin permissions configuration.
  • Backup and restore all of your plugins and their configuration data.
The new backup format contains an archive manifest detailing what it contains, as well as information such a unique identifier, its name and when it was taken.
 
While initially these will only be full backups, the new format allows for incremental backups by tracking which backup ID it was based on. This functionality will be added down the line after 2.4.
 

Multiple world Support

Before even getting to user added worlds, the standard game has 3 worlds - the main world, the nether and the end. McMyAdmin needs to be better aware of all of these, plus user added worlds.

So starting with McMyAdmin 2.4 - you'll be able to:

  • Select which worlds will be included in automatic backups
  • Select which worlds will be available for permissions exporting
  • Automatically populate McMyAdmin with new worlds
McMyAdmin won't be trying to manage multiworld plugins for you, but it will detect worlds as you create and remove them.
 

Documentation

Arguably, the best software doesn't require documentation. It should be so intuitive and simple that the user understands how everything works just by playing with it.

Of course this is something of a pipe dream, some concepts such as handling permissions or some advanced scheduling mechanisms require some explanation, and forums do not constitute documentation.

So McMyAdmin 2.5 will be getting a new in-panel help mechanism to explain new concepts to the user, in addition to this a new 'welcome' guide will be made available to new users to help them get started faster.

 

Of course if there's something you think really sucks and would like to know what I plan to do about it, leave a comment! I'll try and address as many as I can.

Posted in: McMyAdmin | Minecraft

Tags:

Mandatory McMyAdmin Update

October 27, 2012 at 10:25 PMPhonicUK

The SSL certificate that McMyAdmin uses to securely communicate with the McMyAdmin licencing and management servers has been changed (as it has been recently renewed). McMyAdmin verifies the certificate used to ensure communications aren't intercepted and to prevent a man-in-the-middle-attack.

Versions of McMyAdmin older than 2.2.4.4 do not have information about the new certificate, and as such will not be able to communicate with the management servers.

Because of this, all versions of McMyAdmin prior to 2.2.4.4 will be forcibly updated on the 1st of December 2012 to the latest version at that time.

It is strongly advised that you update to 2.2.4.4 (or newer as applicable) as soon as possible to avoid being caught short by the update.

Apologies for any inconvenience caused.

Posted in: McMyAdmin

Tags:

Debunking Common McMyAdmin Myths

October 6, 2012 at 6:38 PMPhonicUK

I'd like to take a few moments just to talk about some common comments I see regarding McMyAdmin on my travels, ranging from the outdated, to the misinformed.

It is only really made for Windows

While the first versions of McMyAdmin (2 years ago when Minecraft was still in Alpha) were originally built for Windows, it is no longer at all true that McMyAdmin treats Linux as second class.

Once it became apparent that McMyAdmin was going to be a hit, I started focusing on Linux support. First this was just getting McMyAdmin to run in Mono, then dealing with some of the Linux-specific issues that came with this. And while this worked very well there were a number of issues:

  • Server administrators were not happy installing the large Mono framework to use a single application (and with the source weighing in at over 500MB uncompressed, I don't blame them either)
  • Many distributions had outdated versions of Mono in their repositories, resulting in bugs, performance issues and other headaches
  • Compiling a 'modern' version of mono was a long and complicated process
  • McMyAdmin still 'looked' like a Windows application (having a .exe file extension), adding to the feel that Linux was an afterthought
  • It was difficult to track down and debug issues with such a large variety of libraries and configurations

So with these issues in mind and since McMyAdmin was being rewritten for McMyAdmin 2 - a native Linux version was developed for 64 bit systems on Linux systems using Linux development tools. It doesn't require the Mono runtime to be installed and is just a single binary that only depends on the standard Linux libraries.

There's no point using McMyAdmin if you know how to use the command line

McMyAdmin makes it possible to automate a great deal of tasks that would be very difficult to achieve using the command line alone, at the very least you'd end up writing some persistent scripts and at that point you're more or less reinventing the wheel.

A few examples of things that would be non-trivial without McMyAdmin or similar:

  • Being able to restart the server at the same time each day, but only do so if there aren't currently any players online.
  • Changing the type of whitelisting currently applied to the server on a schedule.
  • Restarting the server based on its RAM usage.
  • Safely taking a backup (requires sending save-off before copying and save-on afterwards, and waiting until the save-off had completed before actually performing the backup)

In addition to the above, McMyAdmin also makes it much faster to perform day-to-day administration tasks.

So I present a selection of tasks that would be slower to perform on the command line:

  • Updating the server (a single button click safely stops the server and fetches the latest version)
  • Swapping from one permissions plugin to another (McMyAdmin writes out its permission data in whatever format you'd like)
  • Setting up a regular scheduled event (which ordinarily would require editing your crontab, McMyAdmin just takes care of the schedule for you)
It doesn't matter if you're an experienced user or a novice, McMyAdmin has features that will benefit you. And if you don't want to use a particular feature, it's not forced upon you.

It stops you from being able to do things on the command line if you prefer to do it that way

Not at all true, when the Minecraft server is running - what you see on the command line is the same as you would without McMyAdmin. You see the output of the Minecraft server, and anything you enter is sent to the Minecraft server same as normal. McMyAdmin even has some of its own commands to make life easier, for example /restart to quickly restart the server, or /setconfig [key] [value] which allows you to change settings of either McMyAdmin or the Minecraft server.

It isn't extensible / you can't add your own features to it

Since McMyAdmin 2.1, it has been possible to write your own extensions for McMyAdmin. They allow you to add your own tabs to McMyAdmin's main web interface to extend its functionality. Some people use them to integrate DynMap into their panel, and many hosting companies use it to integrate their support page or other functionality into the panel to deliver a seamless experience for their users.

In addition McMyAdmin has a powerful JSON based API which makes it easy to integrate McMyAdmin with your own software, or leverage its functionality in new ways. Anything that can be done from the panel can be done from the API (since the panel uses that same API!) - Have a peek at the API reference.

McMyAdmin also has a branding mechanism which allows hosts to alter its appearance so that it matches their corporate image.

It has to be updated every time a new version of Minecraft is released

It is very rare that a new release of Minecraft requires McMyAdmin to be updated to keep its current functionality. Generally speaking an update is only required in order to take advantage of any new functionality/settings added to the Minecraft server since the previous release.

The only major exception to this has been when Minecraft 1.3 came out as the format of some messages was changed. Much of McMyAdmin still worked if it wasn't updated and only the chat was affected.

It's heavy on resources

A typical running McMyAdmin instance with 50 online players consumes roughly 45-55MB of RAM (With no activity it can consume as little as 15MB) and too little CPU usage to measure. Compared to the hundreds of megabytes a Minecraft server of that size would need, it's a drop in the ocean.

The Windows version is shown for ease of grabbing a quick screenshot with everything in (The numbers are very similar with the Linux version), showing several running McMyAdmin instances and their CPU/Memory usage after 12 days of uptime (the amount of time my main test server had been online when I took this)

It has an outdated, ugly user interface

What?

Just one of the themes that McMyAdmin 2 ships with.

 

If you have any other myths or things you've heard that you'd like me to comment on, feel free just to leave them as comments and I'll update this post.

Posted in: Linux | McMyAdmin

Tags: