Ajenti
Ajenti is a multilingual web-based server administration panel. With It, it is possible to configure operating system internals, such as users, files, services or configuration files, as well as modify and control open source apps, such as the nginx, PHP, cron and others.
Ajenti is written in Python, running as its own process and web server. It defaults to TCP port 8000 for communicating, and is configured to use SSL with an automatically generated self-signed SSL certificate by default.
It is built around modules, which have an interface to the configuration files and the Webmin server. This makes it easy to add new functionality. Due to Webmin's modular design, it is possible for anyone who is interested to write plugins for desktop configuration.
Ajenti is being primarily developed by Eugene Pankov.
Features
Ajenti is fully compatible with the following distributions:
- Debian GNU/Linux Squeeze (6.0) and up
- Ubuntu 12.04 (Precise) and up
- CentOS 6.x
- RHEL
- FreeBSD (experimental)
Ajenti supports the following daemons / services:
- Webserver: Apache 2, nginx
- Nameserver: BIND, NSD
- File server: Samba, Netatalk
- Firewall: iptables, ConfigServer Security & Firewall
Ajenti is available via Git, tarballs and various package management systems (i.e. APT and RPM).
An overview of all features provided by Ajenti can be viewed on the project's website.
Ajenti V
A recently introduced add-on, Ajenti V, adds virtual web hosting capabilities to Ajenti.
Currently supported are:
- Webserver: nginx
- Mail: Courier, Exim
- FTP: Vsftpd, PureFTPd
- Programming languages: PHP, Ruby, Python, Node.js
Licensing controversy
Originally, up to and including version 1.2.11, Ajenti used to be distributed under terms of GNU Lesser General Public License version 3 (LGPL version 3), which is a free software license and is also approved by OSI and is DFSG-compliant. However, since version 1.2.11.2, docs/LICENSE file contained an additional clause:
Ajenti is licensed under LGPLv3, excluding following situations:
* For hosting businesses
* When provided as a part of paid hardware product
If one of these is the case, please refer to http://ajenti.org
for licensing options.
That requirement wasn't compatible with LGPL, as LGPL itself is an extension of GPL, giving more freedoms to the user. At the same time, GPL itself doesn't allow such clauses to be added. Because of this conflict of the licensing requirements the additional limitations are either void, or make the whole package not legally distributable.
In June 2014, the licensing ambiguity has been resolved by switching to a dual licensing model.