Linux server administrators running dedicated or VPS servers don’t necessarily need a fancy control panel, and there are actually some reasons why using one might even be a bad idea, but if you do find yourself considering using one you’ll probably wonder which are the best choices.
The following is the criteria we used when searching for the best control panel:
- Quick and easy to set up
- Relatively modern and easy to use
- Not a web hosting panel (resource and customer control), just a general server management panel
- Suitable for install on an existing server setup, not just on new OS installations (disqualifies zpanel, vesta, and a bunch of others)
- In active development (disqualifying OpenPanel unfortunately)
- Open Source and Free Software
When you think about it these criteria aren’t that demanding. If you’re gonna use a control panel the whole point is for it to make managing things quicker and easier, to not burden you with features you might not need unless you actually want them (through a module or a plugin), and which you can try out or deploy without redoing your entire server setup. Being open source is likely what most server admins will prioritize, and active development simply makes common sense for security and support.
But when we look through the options not many fit the bill. The following two come out as the best, and probably the only, real choices.
Ajenti is a relatively new but promising control panel with an attractive and modern user interface. It offers management tools for a number of things, but they tend to be relatively simple and mainly good for reviewing what’s set up and adding new entries than any deep management. For example it appears you can add new cron jobs, but existing ones aren’t shown, though that could be due to a test configuration we had it on.
You can also list, add or remove hosts, nameservers, network interfaces, list and stop services, and set up firewall rules. It also provides management utilities for Apache, MySQL, Date & Time, OpenVPN, and all available services both running and stopped. We’re also offered a few nice tools like the file manager, a terminal, custom tasks tool, and a notepad. Finally it is extensible through python plugins, some of which are already bundled for built in functionality.
The user interface, albeit quite bright, is very attractive. Launching tools such as the terminal actually puts them in a new tab on top of the interface. There’s also a dashboard that can be customized with different widgets for a streamlined overview of your server. There is even a widget that allows you to specify a command or a script to run at a click of a button, and can be set to run in the terminal. Another widget allows you to start or stop any of the available services.
Getting Ajenti set up is extremely simple thanks to its quick automatic install for Debian, Ubuntu, RedHat, CentOS, and experimentally FreeBSD. The quick install is just a script that is downloaded and executed in one go. It doesn’t do anything naughty like overwriting stuff on your system. It merely adds its own repository, and then uses the package manager to install ajenti, and then starts it up, conveniently telling you where you can access it and how to log in.
All the info is linked from the Download section of the Ajenti home page.
Webmin at this point belongs to the old guard of open source server control panels, and that means it’s very well supported, and very powerful. It contains countless of features out of the box that allow you to review and configure just about any part of your system in detail, and run pretty much any task. It supports modules so that its functionality can be extended even further. They can be installed by simply pointing to their online location, and there are many available in the webmin module library.
While Webmin doesn’t look like much it’s power tends to largely make up for that, plus it supports themes, and there are a number of themes available. They aren’t just mere skins that only change up the styling of some elements a bit. They tend to be entire UI redesigns. Two great themes to recommend are the Stress Free Webmin Theme, and Bootstrap 3 Webmin Theme.
Since it is so popular chances are whichever Linux distribution you’re running it will be available from your official repositories. If not then official repositories or packages are offered, and they should work without trouble. Check the Webmin download page, particularly the “Webmin Installation” sidebar for all the info you need.
If the above doesn’t exactly excite you there are great arguments to be made against using a control panel. Whatever seeming convenience they may provide may come at the expense of abstracting what you need to know to really properly and safely manage a server. These panels should probably at best serve merely as occasional crutches, not to be relied upon exclusively and regularly, if at all.
1. They are awkward fits for specialized custom installations, creating additional work
A lot of us have multiple web sites on a single server configured to use virtual hosts. Some of us use an alternative server such as lighttpd. None of the above panels support this easily out of the box and the amount of effort that may be required to make a control panel support these could well exceed any benefit of having one to begin with.
That’s just one example, and there could be many others. Often the paths to certain configuration files that a control panel is expecting don’t match your own particular configuration. To sync those up is yet more work that could cause complications in the process.
It’s very difficult to have a control panel so sophisticated that it can seamlessly fit every reasonable configuration possible, and that’s what makes them ackward.
2. They can mess up your configuration files.
If you use a control panel to edit various configurations they will edit the appropriate configuration files. If you’ve had your own modifications in them, or have had a working configuration file provided by your distribution’s package manager, the control panel may make unexpected alterations that can mess things up. You can’t be sure unless you’re looking at the content of the configuration file directly, and understanding what’s being added or changed.
3. They can’t do everything
Considering the sheer number of possible configurations, services, and uses of a server in general it is next to impossible for a control panel to provide fancy GUIs for all of them. This is all the more true when you consider the rapid advancement of new technologies that panels are yet to get caught up with. If you’re using a panel to abstract certain tasks to make them quicker and easier to do, you’ll either end up limiting yourself to what the panel can manage, or you’re gonna have to step out of that comfort zone anyway.
4. Increased security risks
Control panels provide a yet another point of entry to a potential attacker, and a pretty potent one at that. It has root access to the entire system sitting behind a single user login on a typically public web page. It’s also a yet another bag of bugs and security vulnerabilities to worry about.
5. They may prevent you from learning important skills
Obviously, since they provide an abstraction layer on top of many tasks they also prevent you from learning how things really work under the hood. You end up learning and understanding within the paradigm of a control panel only. It’s best to deal with the system as is. It will result in more understanding of how things really work, better security practices, and ultimately a greater peace of mind knowing exactly what’s going on.