Ajenti es un panel de administración de servidores ligero y de código abierto escrito en Python. A diferencia de los paneles de hosting como HestiaCP o Virtualmin, no gestiona dominios ni correo: ofrece una interfaz web para ver el estado del sistema, controlar servicios de systemd, editar archivos, abrir una terminal y administrar paquetes. En este tutorial instalarás Ajenti 2 en Ubuntu 24.04, iniciarás sesión con tu usuario sudo y restringirás el acceso al panel para que no quede expuesto a Internet.

Requisitos previos

Para seguir esta guía necesitas:

  • Un servidor con Ubuntu 24.04 LTS o Debian 12, por ejemplo un VPS de CubePath.
  • Un usuario no root con privilegios sudo y una contraseña definida (Ajenti autentica contra las cuentas del sistema).
  • UFW activo con el acceso SSH permitido. Si aún no lo tienes, ejecuta sudo ufw allow OpenSSH y sudo ufw enable.
  • La IP pública desde la que vas a administrar el servidor (your_ip), si quieres abrir el panel solo a ella.

Paso 1: Instalar las dependencias

Ajenti 2 se instala en un entorno virtual de Python en /opt/ajenti. Actualiza el sistema e instala curl:

sudo apt update
sudo apt upgrade -y
sudo apt install -y curl

Paso 2: Instalar Ajenti con el script oficial

El proyecto publica un script que instala las dependencias del sistema, crea el entorno virtual, instala los paquetes de Ajenti desde PyPI y registra el servicio de systemd. Los antiguos repositorios repo.ajenti.org pertenecen a Ajenti 1, que ya no se mantiene, así que no los uses.

Descarga el script y revísalo antes de ejecutarlo:

curl -fsSL https://raw.githubusercontent.com/ajenti/ajenti/master/scripts/install-venv.sh -o ajenti-install.sh
less ajenti-install.sh

Ejecútalo con privilegios de root:

sudo bash ajenti-install.sh

La instalación tarda unos minutos, sobre todo mientras compila algunas dependencias de Python. Al terminar, comprueba que el servicio está activo y habilitado en el arranque:

sudo systemctl status ajenti --no-pager
● ajenti.service - Ajenti panel
     Loaded: loaded (/etc/systemd/system/ajenti.service; enabled; preset: enabled)
     Active: active (running) since Fri 2026-09-25 10:12:31 UTC; 20s ago

Comprueba que escucha en el puerto 8000:

sudo ss -tlnp | grep 8000
LISTEN 0      128          0.0.0.0:8000       0.0.0.0:*    users:(("python3",pid=2345,fd=8))

Si el servicio no arranca, revisa su registro:

sudo journalctl -u ajenti -n 50 --no-pager

Paso 3: Restringir el acceso al puerto 8000

Ajenti da acceso completo al sistema, así que no abras el puerto 8000 a todo el mundo. Elige una de estas dos opciones.

Opción A: permitir solo tu IP

Si administras el servidor desde una IP fija, permite el puerto 8000 únicamente desde ella. Sustituye your_ip por tu IP pública:

sudo ufw allow from your_ip to any port 8000 proto tcp
sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
8000/tcp                   ALLOW       your_ip

Opción B: acceder por un túnel SSH

Si tu IP cambia, no abras el puerto: accede a través de SSH. Desde tu equipo local, crea un túnel que reenvíe el puerto local 8000 al 8000 del servidor:

ssh -L 8000:localhost:8000 your_user@your_server_ip

Mientras la sesión SSH siga abierta, el panel estará disponible en https://localhost:8000 en tu navegador. Con esta opción UFW no necesita ninguna regla adicional, ya que el tráfico llega por el puerto SSH.

Paso 4: Iniciar sesión en el panel

Abre https://your_server_ip:8000 (o https://localhost:8000 si usas el túnel). Ajenti genera un certificado autofirmado durante la instalación, por lo que el navegador mostrará un aviso; acéptalo.

Inicia sesión con tu usuario del sistema (your_user) y su contraseña. Por defecto, la sesión se abre con los permisos de ese usuario. Para realizar tareas de administración, usa la opción Elevate del menú de usuario, que vuelve a pedir tu contraseña y aplica los privilegios de sudo.

Si quieres iniciar sesión como root, el usuario root necesita una contraseña, pero en Ubuntu está bloqueado por defecto y es preferible mantenerlo así y usar la elevación con sudo.

Paso 5: Usar los módulos principales

La interfaz se organiza en un menú lateral con estos módulos:

  • Dashboard: widgets con la carga del sistema, el uso de CPU, memoria y disco y el tiempo de actividad. Puedes añadir o quitar widgets con el botón de edición.
  • Services: lista las unidades de systemd con su estado. Desde aquí puedes iniciar, detener, reiniciar, habilitar o deshabilitar servicios sin usar systemctl.
  • File manager: navega por el sistema de archivos, sube y descarga archivos y cambia permisos. Los cambios en archivos de sistema requieren haber elevado la sesión.
  • Notepad: editor de texto con resaltado de sintaxis para editar archivos de configuración.
  • Terminal: una consola completa en el navegador, útil cuando no tienes un cliente SSH a mano.
  • Packages: busca, instala y elimina paquetes de apt.
  • Plugins: instala y actualiza módulos adicionales de Ajenti.

Para comprobar que la elevación funciona, abre Services, busca cron y pulsa Restart. Después verifica desde SSH que el servicio se ha reiniciado:

systemctl status cron --no-pager | grep Active
     Active: active (running) since Fri 2026-09-25 10:25:04 UTC; 12s ago

Paso 6: Revisar la configuración del panel

La configuración de Ajenti está en /etc/ajenti/config.yml. La sección bind define la dirección y el puerto de escucha, y la sección ssl, el certificado. Ábrela para revisarla:

sudo nano /etc/ajenti/config.yml

Si usas exclusivamente el túnel SSH de la opción B, puedes hacer que Ajenti escuche solo en la interfaz local cambiando host en la sección bind:

bind:
  host: 127.0.0.1
  mode: tcp
  port: 8000

Guarda el archivo y reinicia el servicio para aplicar el cambio:

sudo systemctl restart ajenti
sudo ss -tlnp | grep 8000
LISTEN 0      128        127.0.0.1:8000       0.0.0.0:*    users:(("python3",pid=2456,fd=8))

Ahora el panel no es accesible desde fuera aunque alguien abra el puerto en el cortafuegos, y sigue funcionando a través del túnel.

Paso 7: Actualizar Ajenti

Ajenti y sus plugins se actualizan desde la sección Plugins del panel, que avisa cuando hay versiones nuevas. También puedes actualizarlos desde SSH con el pip del entorno virtual:

sudo /opt/ajenti/bin/pip list --outdated | grep -i ajenti

Si aparecen actualizaciones, instálalas indicando los paquetes listados, por ejemplo:

sudo /opt/ajenti/bin/pip install --upgrade ajenti-panel ajenti.plugin.core
sudo systemctl restart ajenti

Solución de problemas

  • El navegador no carga el panel. Comprueba que el servicio está activo con sudo systemctl status ajenti y que UFW permite tu IP en el puerto 8000 con sudo ufw status. Si Ajenti escucha en 127.0.0.1, solo funcionará a través del túnel SSH.
  • El inicio de sesión falla con credenciales correctas. Ajenti usa las cuentas del sistema: confirma que el usuario tiene contraseña (los usuarios creados solo con clave SSH no la tienen) y defínela con sudo passwd your_user.
  • No puedes modificar servicios o archivos de sistema. La sesión no está elevada. Usa Elevate en el menú de usuario; tu usuario debe pertenecer al grupo sudo (compruébalo con groups your_user).

Conclusión

Ya tienes Ajenti 2 funcionando en Ubuntu 24.04 con el acceso limitado a tu IP o a un túnel SSH, y sabes gestionar servicios, archivos y paquetes desde el navegador. Ajenti es útil como complemento a SSH para tareas rápidas; si necesitas gestionar sitios web, correo y DNS para varios clientes, un panel de hosting como HestiaCP o Virtualmin encaja mejor. Como siguiente paso, revisa los plugins disponibles y protege el acceso SSH con claves y Fail2ban.