How to Install Ajenti Control Panel to Manage Linux Servers

Ajenti is an open-source web-based system management control panel for managing remote Linux system administration tasks from the web browser much similar to the Webmin system administration tool.

Ajenti is a much powerful and lightweight tool, that provides a fast and responsive web interface for managing small server set-ups and is also best suitable for VPS and Dedicated servers.

[ You might also like: Best Control Panels to Manage Linux Servers ]

It has been built with many pre-made plugins for configuring and monitoring server software and services such as Apache, Cron, File System, Firewall, MySQL, Nginx, Munin, Samba, FTP, Squid, and many other tools like File Manager, Code Editor for developers and Terminal access.

Requirements

  • Debian 9 or later
  • Ubuntu Bionic or later
  • RHEL 8 or later

In this article, you will learn how to install Ajenti Control Panel on a fresh Linux system to manage a variety of Linux server management tasks from a web browser.

Installing Ajenti Control Panel in Linux

To install Ajenti, first, you need to update and upgrade your system software to the latest version as shown.

$ sudo apt update && sudo apt upgrade -y    [On Ubuntu & Debian]
$ sudo dnf update && sudo dnf upgrade -y    [On RHEL]

Once system updates are completed, reboot the system before starting the installation of Ajenti.

$ sudo systemctl reboot

After reboot, download the Ajenti installation script using the following curl command, which will install Ajenti along with all the needed dependencies as shown.

Install Ajenti on Debian/Ubuntu

$ curl https://raw.githubusercontent.com/ajenti/ajenti/master/scripts/install.sh | sudo bash -s -

Install Ajenti on RHEL/Rocky & AlmaLinux

On RHEL-based distributions, you need to enable the EPEL repository to install needed Ajenti dependencies as shown.

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ dnf install -y gcc python3-devel python3-pip python3-pillow python3-augeas python3-dbus chrony openssl-devel redhat-lsb-core

After installing all the required dependencies, now install Ajenti using the installation script as shown.

$ curl https://raw.githubusercontent.com/ajenti/ajenti/master/scripts/install.sh | sudo bash -s -
Installing Ajenti Control Panel
Installing Ajenti Control Panel
Ajenti Installation Completes
Ajenti Installation Completes

After Ajenti installation finishes, open the “8000” port on the firewall/router for remote access of the web interface.

$ sudo ufw allow 8000   [On Ubuntu & Debian]
$ sudo firewall-cmd --permanent --zone=public --add-port=8000/tcp  [On RHEL]
$ sudo firewall-cmd --reload

To access the Ajenti control panel web interface, open a web browser and type the IP of the server where we’ve installed Ajenti, and enter credentials of your system: username “root” and root password.

https://localhost:8000
OR
https://ip-address:8000
Ajenti Login
Ajenti Login
Ajenti Control Panel Dashboard
Ajenti Control Panel Dashboard
Terminal Access from Ajenti
Terminal Access from Ajenti

The Ajenti service can be started, stopped, restarted using the following commands.

$ sudo systemctl stop ajenti
$ sudo systemctl start ajenti
$ sudo systemctl restart ajenti
$ sudo systemctl status ajenti

Uninstall Ajenti Control Panel in Linux

Ajenti is a group of Python modules installed with pip, issued with a systemd script. So it’s essential to delete the systemd script, then the Python libraries, and the configurations files.

$ sudo systemctl stop ajenti.service
$ sudo systemctl disable ajenti.service
$ sudo systemctl daemon-reload
$ sudo rm -f /lib/systemd/system/ajenti.service

Then simply remove all Python modules:

$ sudo pip3 uninstall -y aj ajenti-panel ajenti.plugin.ace ajenti.plugin.auth-users ajenti.plugin.core ajenti.plugin.dashboard ajenti.plugin.filesystem ajenti.plugin.passwd ajenti.plugin.plugins ajenti.plugin.session-list ajenti.plugin.settings

If you don’t need configuration files, just delete the directory /etc/ajenti/:

$ sudo rm -rf /etc/ajenti/
Uninstall Ajenti Control Panel
Uninstall Ajenti Control Panel

For more information visit the Ajenti homepage.

Ravi Saive
I am an experienced GNU/Linux expert and a full-stack software developer with over a decade in the field of Linux and Open Source technologies

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

49 thoughts on “How to Install Ajenti Control Panel to Manage Linux Servers”

  1. Ravi, great tutorial. Thank you.

    But, unfortunately during install i got this error: [Errno -1] Package does not match intended download

    If someone encountered this error as well you should execute the following command as noted in http://bit.ly/1rqdVOL:
    yum clean metadata

    After that, it works.

    Reply
  2. hi
    i was install ajenti on centos 6.5 minimal and the part of my iptables is:
    -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 8000 -j ACCEPT
    -A INPUT -m state –state NEW -m udp -p udp –dport 8000 -j ACCEPT
    -A INPUT -j REJECT –reject-with icmp-host-prohibited
    -A FORWARD -j REJECT –reject-with icmp-host-prohibited
    COMMIT
    but when i try to access web with port 8000 i dont have this
    please help me for solve this problem
    my 8000 port is open and in listening.
    thanks

    Reply
  3. Hi Guys,

    I have very bad experience with Ajenti, I will recommend you not to use this product, I installed it on debian wheezy VPS server. After one week, it start broadcasting data from server. I got to know about this after three days when my VPS provider sent me a mail that you VPS has consumed data bandwidth of 180 GB in just three days, youneed to check the server.

    When I check this then I uninstalled this and data broadcasting stop after it. For security reason I have to configure whole server from start after reset up vps from vps provider.

    So again, I will not suggest anybody to use this.

    Regards
    Amit Bondwal

    Reply
  4. Hi greetings of the day
    am trying to install ajenti in ubuntu usinng aws.amazon server..

    i done with all settings and i open 8000 port number in firewall but also am unable to get web page on :8000 getting error as Webpage is not available
    Thanks

    Reply
  5. First off, thanks for the awesome posts! I read your other post where you talked about Ajenti, so I am trying it out. I wanted to add that with CentOS 6.5, I had to add my iptables rules up toward the top of the config file, not at the bottom. When I had them at the bottom, it was still blocking the port for some reason. I assume that one of the above rules is set to block all unconfigured traffic, but I am still fairly new at Linux firewall rules in general. Anyway, thanks for the great info! Looking forward to reading more of your posts!

    Sean

    Reply
  6. I have just initiated a new server – Ubuntu 12.04/Nginx 1.4.5 to test Ajenti on. I don’t understand probably the most fundamental part of how to make the vhosts work. The developer Eugene posts this – http://support.ajenti.org/topic/349870-ajenti-behind-nginx/

    I’m used to having a vhost like /etc/nginx/sites-enabled/domain.com…. with the files in /home/user/public_html/domain.com/public/

    So basically I don’t get how domain.com fetches the /ajenti files without some modification to his example.

    Any clarification on this would be greatly appreciated.

    thx
    stu

    Reply
  7. Hi, thank you for all your tutorials, i have a question; i can’t access to login screen , i did all the insctruction about the 8000 port.

    Thanks

    Reply
    • I think it’s the next option that will be added from @Ajenti Team, i agree that’s a little bit late to think about it or sad to forget about it.
      But i’m just like you waiting for the Webmail Management.

      Cheers
      Jenz

      Reply
  8. Yep, I’m getting the same error as Kumar, above.

    [root@xxx ~]# service iptables restart
    iptables: Applying firewall rules: iptables-restore: line 1 failed
    [FAILED]

    vi edit the iptables fails…

    Centos x64 6.4 – Digital Ocean.

    You can manually add at command line…
    But you still can’t access ip and port in the browser.

    Reply
    • To fix such error, you need to replace your iptables rules with below lines.

      # Firewall configuration written by system-config-firewall
      # Manual customization of this file is not recommended.
      *filter
      :INPUT ACCEPT [0:0]
      :FORWARD ACCEPT [0:0]
      :OUTPUT ACCEPT [0:0]
      -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      -A INPUT -p icmp -j ACCEPT
      -A INPUT -i lo -j ACCEPT
      -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
      -A INPUT -m tcp -p tcp --dport 80 -j ACCEPT
      -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
      -A INPUT -j REJECT --reject-with icmp-host-prohibited
      -A FORWARD -j REJECT --reject-with icmp-host-prohibited
      COMMIT
      

      And restart iptables again….

      Reply
  9. Hi
    I tried to follow your commands but having these problem using cent os 6 32 bit

    == After adding those two lines when i restart iptables i get error on line 1 .

    I am newbie in servers any help would be appreciated

    Reply
  10. Get this error, cant install Ajenti in Ubuntu 12.04

    The following packages have unmet dependencies:
    ajenti : Depends: python-requests (>= 0.12.0) but 0.8.2-1 is to be installed
    E: Unable to correct problems, you have held broken packages.

    Reply
  11. ajenti installation instructions doesn’t work on fedora 18 nor fedora 19 , I had the epel-installed and followed the instructions all I get is Errno 14 and errno 256 ” both fedora 18 and 19 ”

    even though you did mention in the article ” we’re going to show you how we going to install Ajenti Server Manager tool on skip skip skip Fedora 19/18/17/16/15/14/13/12,

    Reply
      • thank you, ill keep checking for your updates on the fedora installation issues , on their website it does not mention anything about Fedora , older web did

        also I just tested it on my debian box and my centos box and the instructions worked perfectly , except fedora , haven’t tried it on Ubuntu

        Reply
  12. Ravi,

    Can you suggest a similar control panel that can run on a low end Fedora12 VPS?
    Config similar to:
    Memory: 64MB min/128MB Burstable | 500GB

    Thanks.

    Reply
  13. Hey i installed Ajenti on centos 6.4 64bit as instructed and i can’t login from another computer.

    When i tried to start it with “ajenti-panel -v” in ssh it all looks ok except for the following error:

    “ERROR SSL tunnel failed to start”

    What could be the problem?

    Thank you in advance.

    Reply
  14. Is it possible to monitor remote server from this ???

    Also is there is any alert services are there,if web,mysql,postfix services went down OR full of disk space ?

    Reply
  15. Hello,

    I’m trying to install Ajenti on a clean Fedora 12 VPS box, but am ending up with the following message when I reach the yum install ajenti command:

    —–
    # yum install ajenti
    http://repo.ajenti.org/ng/centos/12/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 : http://repo.ajenti.org/ng/centos/12/x86_64/repodata/repomd.xml
    Trying other mirror.
    Error: Cannot retrieve repository metadata (repomd.xml) for repository: ajenti. Please verify its path and try again
    —–

    Thanks in anticipation.

    Reply
  16. Hello Techmint,

    After installing Ajenti. I had to install any ajenti service. Bcoz i m not able to access the url.

    Reply
  17. I have the same problem as Rimdeker
    Cleanups/updating and even forcing installs do not help.

    apt-get install python-requests
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    python-requests : Depends: python2.6 but it is not installable
    Depends: python (< 2.7) but 2.7.3-0ubuntu2 is to be installed
    Recommends: python-gevent but it is not going to be installed
    Recommends: python-oauthlib but it is not installable
    E: Unable to correct problems, you have held broken packages.

    It seems that python-requests still stuck with an older version and refuses to be installed under one of my virtual machines, I was able to install it on the other virtual machine, but I noticed that it does not start.

    Running
    ajenti-panel -v

    I noticed that it was complaining about missing module passlib
    Ran
    pip install passlib
    (Easiest way to install it, if you don't have pip installed, run apt-get install python-pip first)
    Restarted ajenti, now it runs. Hope this helps someone out there.
    Both virtual machines are running the same Ubuntu releases.

    lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 12.04.2 LTS
    Release: 12.04
    Codename: precise

    The failed install is most likely due to different apt sources.
    I'll run a comparison and debug this further.

    Reply
  18. I get following error when trying to install it on Ubuntu 12.04

    ~# apt-get install ajenti
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    ajenti : Depends: python-requests but it is not going to be installed
    E: Unable to correct problems, you have held broken packages.

    Reply
    • To fix this error, Please do a clean and update the system and then install dependencies. If you still get same error, remove that python-requests package and try to install ajenti again..lets see.

      $ sudo apt-get clean
      $ sudo apt-get update
      $ sudo apt-get install python-requests
      $ apt-get install ajenti
      
      Reply
      • This does not help, I am still getting the same error message. Python-requests seems to be stuck in an old version and does not want to upgrade.

        Reply
          • I have the same problem, and my ubuntu server is the 12.04.3 version, which is supposed to be supported by Ajenti.

            The exact error I get is the following:

            The following packages have unmet dependencies:
            ajenti : Depends: python-requests (>= 0.12.0) but 0.8.2-1 is to be installed
            E: Unable to correct problems, you have held broken packages.

          • I was having the same issue, I found instructions on another site which didn’t match up with the instructions posted here and my problem was solved.

            Above, the instructions say to run command:
            echo “deb http://repo.ajenti.org/ng/debian main main” >> /etc/apt/sources.list

            However, if you add an ‘ubuntu’ after the last ‘main’ it works (at least it did for me). So the command looks like:
            echo “deb http://repo.ajenti.org/ng/debian main main ubuntu” >> /etc/apt/sources.list

            You can reach this same effect by using VIM and editing your /etc/apt/sources.list file if you already ran the command above.

Got something to say? Join the discussion.

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.