Ajenti Server Administration Panel

Ajenti es un ligero, modular server administration panel offering system administrators a web-based interface for managing server configuration, servicios, files, and system resources without complexity. Built on a clean architecture with extensible plugin support, Ajenti provides essential server management capabilities through both its core system and optional modules covering system monitoreo, file management, terminal access, servicio control, and task scheduling. This guide provides comprehensive coverage of Ajenti installation, configuration, and practical administration tasks.

Tabla de contenidos

Introducción

Ajenti distinguishes itself through its modular design and focus on essential administration tasks without unnecessary overhead. Unlike comprehensive hosting panels, Ajenti provides administrators with core system management capabilities while remaining lightweight and responsive. Perfect for managing individual servers, development environments, or small hosting operations, Ajenti's plugin architecture allows administrators to extend functionality as needed, maintaining a lean installation that consumes minimal system resources.

Requisitos del sistema

Ajenti operates efficiently on modest hardware while supporting complex administrative tasks:

  • Ubuntu 16.04 LTS or later
  • Debian 8 or later
  • CentOS 7 or later
  • Minimum 256 MB RAM (512 MB recommended)
  • At least 50 MB free disk space
  • Root or sudo access
  • Port 8000 available (Ajenti default)
  • systemd-based init system

Verifica system compatibility:

# Check OS version
cat /etc/os-release | head -5

# Verify available memory
free -h | grep Mem

# Check disk space
df -h / | tail -1

# Confirm port availability
sudo netstat -tulpn | grep 8000
sudo ss -tulpn | grep 8000

# Verify Python is installed
python3 --version

Pre-Instalaation Setup

System Preparation

# Update system packages
sudo apt update && sudo apt upgrade -y

# Install system dependencies
sudo apt install software-properties-common apt-transport-https -y

# Install Python and development tools
sudo apt install python3 python3-dev python3-pip -y

# Install build essentials
sudo apt install build-essential -y

# Verify pip is available
pip3 --version
python3 --version

Network Configuration

# Set hostname
sudo hostnamectl set-hostname ajenti.example.com

# Update hosts file
echo "127.0.0.1 ajenti.example.com" | sudo tee -a /etc/hosts

# Verify hostname
hostname
hostname -f

Firewall Setup

# Enable UFW firewall
sudo ufw enable

# Set default policies
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Allow required ports
sudo ufw allow 22/tcp      # SSH
sudo ufw allow 8000/tcp    # Ajenti panel

# Verify firewall
sudo ufw status verbose

Ajenti Instalaation

Adding Ajenti Repository

# Add Ajenti package repository
sudo apt-add-repository 'deb http://repo.ajenti.org/ajenti main main ubuntu'

# Add GPG key for repository
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0xB8D68D10

# Alternative method (if GPG fails)
wget -O - https://repo.ajenti.org/apt/KEY | sudo apt-key add -

# Update package lists
sudo apt update

Instalaing Ajenti

# Install Ajenti core package
sudo apt install ajenti -y

# Verify installation
sudo systemctl status ajenti

# Check Ajenti version
ajenti-panel --version

# Start Ajenti service
sudo systemctl start ajenti

# Enable Ajenti on boot
sudo systemctl enable ajenti

# Verify service is running
sudo systemctl is-active ajenti

Verificaing Instalaation

# Check listening ports
sudo netstat -tulpn | grep ajenti
sudo ss -tulpn | grep 8000

# View Ajenti logs
sudo tail -f /var/log/ajenti/panel.log

# Verify directory structure
ls -la /etc/ajenti/
ls -la /usr/local/ajenti/
ls -la /var/log/ajenti/

# Check Python packages
pip3 list | grep ajenti

Initial Configuration

Accessing Ajenti Web Interface

# Access Ajenti dashboard
# URL: http://your-server-ip:8000
# or http://your-hostname:8000

# Default credentials
# Username: root
# Password: admin

# First access will prompt password change
# Set new strong password (minimum 8 characters)

Changing Administrator Password

  1. Log in with default credentials
  2. Navigate to Settings > User Accounts
  3. Select root user
  4. Click "Change Password"
  5. Enter current and new password
  6. Confirm changes
# Via command line
sudo ajenti-config

# Edit configuration file
sudo nano /etc/ajenti/config.json

# Search for "password" field and hash new password:
# Generate hash: echo -n "password" | sha1sum

Initial System Configuration

Navigate to Settings to configure:

# Basic Settings
# - Server timezone
# - System language
# - Interface theme
# - Panel port (default 8000)

# Notification Settings
# - Email for alerts
# - System event notifications
# - Log level

# Security Settings
# - Session timeout
# - SSL configuration
# - Access control

Instalaing Optional Modules

# Access Ajenti plugins page
# Settings > Plugins

# Available modules:
# - Hostname management
# - Locale/timezone
# - Software management
# - Services
# - Power/restart
# - Terminal
# - File manager
# - Users and groups
# - Cron scheduler

# Enable plugins you need:
# Check box next to plugin
# Click "Apply"

# Or install via command line
sudo apt install ajenti-plugin-terminal -y
sudo apt install ajenti-plugin-filemanager -y
sudo apt install ajenti-plugin-services -y
sudo apt install ajenti-plugin-nginx -y

Dashboard and Monitoring

Understanding the Dashboard

The Ajenti dashboard provides:

# System information display
# - Hostname and IP addresses
# - Uptime and load average
# - Memory usage
# - Disk space
# - Network interfaces
# - Installed services status

# Monitor these metrics:
# Dashboard > System Status

# View detailed stats
# Navigate to Tools > System Information

Viewing System Resources

# Monitor CPU usage
# Dashboard > CPU Usage graph
# or top command in terminal

# Check memory utilization
free -h
cat /proc/meminfo | head -10

# Monitor disk space
df -h
du -sh /*

# View network activity
ip addr show
netstat -an | head -20

Customizing Dashboard Views

In Ajenti Settings:

# Configure dashboard widgets
# Settings > Dashboard
# - Enable/disable widgets
# - Arrange widget order
# - Set refresh intervals

# Example widgets:
# - System load
# - Memory usage
# - Disk usage
# - Network activity
# - Service status

File Manager and Navigation

Using Ajenti File Manager

# Access file manager
# Navigate to: Tools > File Manager
# or Files in sidebar

# Browse filesystem:
# - Expand folders
# - View file properties
# - Sort by name, size, date

# File operations:
# - Create new files/folders
# - Upload files
# - Download files
# - Edit file permissions

File and Folder Operations

# Create new folder
# File Manager > Right-click > Create Folder

# Upload files
# File Manager > Upload button
# Select file > Upload

# Edit file permissions
# File Manager > Select file > Properties
# Change permissions (Owner, Group, Mode)

# Edit text files
# File Manager > Select file > Edit
# Modify content > Save

# Delete files
# File Manager > Select file > Delete

Editing Configuration Files

# Access commonly edited files
# File Manager > Navigate to:
# /etc/hostname         - System hostname
# /etc/hosts           - Host resolution
# /etc/network/interfaces - Network configuration (older systems)
# /etc/ssh/sshd_config - SSH configuration
# /etc/sudoers         - Sudo permissions

# Edit in-place
# File Manager > Select file > Edit

# Example: Edit hostname
# /etc/hostname
# Change: your-new-hostname
# Save and restart service

Terminal Access

Accessing Ajenti Terminal

# Open web terminal
# Navigate to: Tools > Terminal

# Terminal features:
# - Full bash/shell access
# - Command history (arrow keys)
# - Copy/paste support
# - Multiple terminal sessions

# Common terminal commands in Ajenti:
ls -la              # List files
cd /path/to/dir     # Change directory
cat filename        # View file contents
sudo systemctl restart service  # Restart service

Terminal Operations

# System information commands
uname -a            # System info
hostname            # Display hostname
whoami              # Current user
pwd                 # Current directory
df -h               # Disk usage
free -h             # Memory usage
ps aux              # Running processes

# Network diagnostics
ifconfig            # Network interfaces
ip addr show        # IP configuration
netstat -an         # Network connections
ping -c 4 8.8.8.8   # Test connectivity
traceroute google.com  # Route diagnosis

# File operations
find /path -name "*.log"  # Find files
grep "pattern" filename    # Search in files
chmod 644 filename        # Change permissions
chown user:group file     # Change ownership

Running Long-Running Tasks

# Background execution in Ajenti terminal:

# Run command in background
command &

# Run with nohup for persistent execution
nohup long-running-command > /tmp/output.log &

# Monitor background processes
jobs
ps aux | grep "command-name"

# Kill background process
kill process-id

Service Management

Managing System Services

# Access service manager
# Navigate to: Tools > Services

# Service operations:
# - View all services
# - Start/stop services
# - Enable/disable on boot
# - Restart services
# - View service status

Common Service Operations

# List all services
sudo systemctl list-units --type=service

# Start a service
sudo systemctl start ssh
sudo systemctl start nginx

# Stop a service
sudo systemctl stop ssh

# Restart service
sudo systemctl restart mysql

# Enable service on boot
sudo systemctl enable ssh

# Disable service from auto-start
sudo systemctl disable ssh

# Check service status
sudo systemctl status ssh -l

# View service logs
sudo journalctl -u ssh -f
sudo journalctl -u nginx --lines=50

Managing Web Services

# Nginx operations
sudo systemctl restart nginx
sudo systemctl status nginx
sudo nginx -t        # Test configuration

# Apache operations
sudo systemctl restart apache2
sudo systemctl status apache2
sudo apache2ctl configtest

# MySQL/MariaDB operations
sudo systemctl restart mysql
sudo systemctl status mysql
mysql -u root -p -e "STATUS;"

# SSH service
sudo systemctl restart ssh
sudo systemctl status ssh

Service Monitoring

# Monitor active services
ps aux | grep -E "nginx|apache|mysql|ssh"

# Monitor service resource usage
top -p $(pgrep -f nginx)

# Check service ports
sudo netstat -tulpn | grep LISTEN
sudo ss -tulpn | grep LISTEN

# Monitor service logs
sudo tail -f /var/log/syslog
sudo journalctl -f

Cron Job Management

Accessing Cron Manager

# Navigate to: Tools > Cron

# Cron manager features:
# - View existing jobs
# - Create new jobs
# - Edit job schedules
# - Enable/disable jobs
# - Set job commands
# - Configure notifications

Creating Cron Jobs

# Create new cron job through Ajenti:
# Cron > Add > Fill form:
# - Schedule: Select frequency (hourly, daily, weekly, etc.)
# - Hour/Minute: Set exact time
# - Command: Enter command to execute
# - Enabled: Check to activate

# Example cron jobs:

# Daily backup at 2 AM
# 0 2 * * * /usr/local/bin/backup.sh

# Hourly log rotation
# 0 * * * * /usr/local/bin/rotate-logs.sh

# Weekly database optimization (Sunday 3 AM)
# 0 3 * * 0 /usr/local/bin/optimize-db.sh

# Monthly report generation (1st day at 4 AM)
# 0 4 1 * * /usr/local/bin/generate-report.sh

Cron Schedule Format

# Cron syntax: minute hour day month weekday command
# Minute: 0-59
# Hour: 0-23
# Day: 1-31
# Month: 1-12
# Weekday: 0-7 (0 and 7 = Sunday)

# Examples:
# 0 * * * * command          # Hourly
# 0 2 * * * command          # Daily at 2 AM
# 0 3 * * 0 command          # Weekly (Sunday 3 AM)
# 0 4 1 * * command          # Monthly (1st at 4 AM)
# */5 * * * * command        # Every 5 minutes
# 0 9-17 * * 1-5 command     # Every hour (9 AM-5 PM, Mon-Fri)

Supervisión Cron Jobs

# View cron execution logs
grep CRON /var/log/syslog

# View cron errors
sudo tail -f /var/log/syslog | grep CRON

# Check cron task status
ps aux | grep cron

# Verify cron job ran
sudo cat /var/log/syslog | grep "your-command"

# Test cron job manually
# Execute command from Ajenti terminal to verify syntax

User and Permission Management

Managing System Users

# Access user management
# Navigate to: Settings > User Accounts

# User operations:
# - Create new users
# - Delete users
# - Modify user properties
# - Change passwords
# - Set home directory
# - Assign shell

Creating and Managing Users

# Create user via Ajenti
# User Accounts > Add User > Fill form:
# - Username
# - Password
# - Full name
# - Home directory
# - Shell selection
# - Groups assignment

# Or via command line
sudo useradd -m -s /bin/bash username
sudo passwd username
sudo usermod -aG group username

# View existing users
cat /etc/passwd | grep bash

# Modify user properties
sudo usermod -aG sudo username      # Add to sudoers
sudo usermod -aG docker username    # Add to docker group
sudo usermod -d /new/home username  # Change home directory

# Delete user
sudo userdel -r username

Managing File Permissions

# Ajenti file manager permissions interface:
# File Manager > Select file > Properties > Permissions

# Or via command line
chmod 644 filename              # rw-r--r--
chmod 755 directory             # rwxr-xr-x
chmod 600 ~/.ssh/id_rsa         # Private key
chmod 644 ~/.ssh/id_rsa.pub     # Public key

# Change ownership
chown user:group filename
chown -R user:group /directory/

# Symbolic permissions
chmod u+x script.sh             # Add execute to user
chmod g-w file.txt              # Remove write from group
chmod o-r secret.txt            # Remove read from others

Group Management

# Create group
sudo groupadd groupname

# Add user to group
sudo usermod -aG groupname username

# View groups
groups username
cat /etc/group

# Delete group
sudo groupdel groupname

# Change group ownership
sudo chgrp groupname filename

Plugin Instalaation and Management

Available Ajenti Plugins

# Common Ajenti plugins:
# - Terminal: Web-based terminal access
# - File Manager: Web file browser
# - Services: Service start/stop/restart
# - Users: User management
# - Firewall (ufw): UFW firewall configuration
# - Nginx: Nginx web server configuration
# - Apache: Apache web server configuration
# - MySQL: MySQL/MariaDB management
# - Cron: Cron job scheduling
# - Power: System reboot/shutdown
# - Locale: Language and timezone settings
# - Hostname: System hostname configuration

Instalaing Plugins

# Method 1: Through Ajenti interface
# Settings > Plugins > Select plugin > Enable

# Method 2: Via package manager
sudo apt install ajenti-plugin-terminal -y
sudo apt install ajenti-plugin-filemanager -y
sudo apt install ajenti-plugin-services -y
sudo apt install ajenti-plugin-mysql -y
sudo apt install ajenti-plugin-nginx -y

# Method 3: Install from repository
sudo apt search ajenti-plugin

# Restart Ajenti to load new plugins
sudo systemctl restart ajenti

Managing Plugin Configuration

# Edit plugin settings
# Settings > Plugins > Select plugin > Configure

# Plugin configuration files
ls -la /etc/ajenti-plugins/

# Restart Ajenti after plugin changes
sudo systemctl restart ajenti

# Check plugin logs
sudo tail -f /var/log/ajenti/panel.log | grep plugin

# Verify plugin loaded
sudo systemctl status ajenti | grep -i plugin

System Customization

Customizing Ajenti Appearance

# Access appearance settings
# Settings > Appearance

# Customizable options:
# - Theme selection (dark/light)
# - Interface language
# - Font size
# - Color scheme
# - Custom CSS

# Apply changes
# Save settings > Interface updates automatically

Setting System Timezone

# Using Ajenti GUI
# Settings > Locale > Select Timezone

# Or via command line
sudo timedatectl set-timezone America/New_York
sudo timedatectl set-timezone UTC
sudo timedatectl set-timezone Europe/London

# Verify timezone
timedatectl
date

# Update system clock
sudo timedatectl set-ntp true

Configuring System Hostname

# Using Ajenti GUI
# Settings > Hostname

# Or via command line
sudo hostnamectl set-hostname new-hostname
echo "127.0.0.1 new-hostname" | sudo tee -a /etc/hosts

# Verify hostname
hostname
hostname -f

Security Configuration

Securing Ajenti Access

# Change Ajenti listening port
sudo nano /etc/ajenti/config.json
# "port": 8000 -> "port": 29999

# Restart service
sudo systemctl restart ajenti

# Restrict IP access
# Firewall > UFW > Allow from specific IP
sudo ufw allow from 192.168.1.100 to any port 8000

# Enable SSL/TLS
# Settings > Security > Enable HTTPS
# Upload certificate files

Setting Up SSL Certificate

# Generate self-signed certificate
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/ajenti/ajenti.key \
  -out /etc/ajenti/ajenti.crt

# Or use Let's Encrypt certificate
sudo certbot certonly --standalone -d ajenti.example.com

# Configure Ajenti to use certificate
sudo nano /etc/ajenti/config.json
# "ssl": true,
# "cert_path": "/path/to/cert.crt",
# "key_path": "/path/to/key.key"

# Restart Ajenti
sudo systemctl restart ajenti

User Authentication

# Change administrator password regularly
# Settings > User Accounts > Select user > Change Password

# Create additional administrator accounts
# Settings > User Accounts > Add User > Set admin role

# Configure session timeout
# Settings > Security > Session Timeout

# Monitor login attempts
sudo tail -f /var/log/auth.log | grep ajenti

Solución de problemas

Common Issues

# Ajenti won't start
sudo systemctl restart ajenti
sudo journalctl -u ajenti -f

# Cannot access web interface
# Check port: sudo netstat -tulpn | grep 8000
# Check firewall: sudo ufw status

# Forgot password
# Reset via command line:
sudo ajenti-panel --reset-password root

# Permission denied errors
# Check file ownership: ls -la /etc/ajenti/
# Fix permissions: sudo chown -R root:root /etc/ajenti/

# Plugin not loading
# Check logs: sudo tail -f /var/log/ajenti/panel.log
# Reinstall plugin: sudo apt reinstall ajenti-plugin-xxx
# Restart service: sudo systemctl restart ajenti

Optimización del rendimiento

# Monitor Ajenti resource usage
ps aux | grep ajenti

# Monitor system under load
top -b -n 1 | head -20

# Check memory usage
free -h

# Disk space optimization
sudo apt autoclean
sudo apt autoremove

# Limit background processes
# Terminal > ps aux | grep process-name
# Kill unnecessary processes: kill process-id

Log Analysis

# View Ajenti logs
sudo tail -f /var/log/ajenti/panel.log

# View system logs
sudo journalctl -u ajenti -f

# Search logs for errors
sudo grep -i error /var/log/ajenti/panel.log

# Monitor in real-time
sudo tail -f /var/log/syslog | grep ajenti

# Analyze authentication failures
sudo grep "authentication failure" /var/log/auth.log

Conclusión

Ajenti provides administrators with a lightweight, modular server management solution that balances functionality with simplicity. Its plugin-based architecture allows administrators to extend capabilities as needed while maintaining a lean, responsive installation suitable for individual servers, development environments, and small hosting operations.

By following the installation, configuration, and seguridad practices outlined in this guide, you establish a reliable platform for day-to-day server administration. From file management and servicio control to cron scheduling and system customization, Ajenti delivers essential tools without unnecessary complexity.

Regular seguridad updates, password rotation, and monitoreo ensure your Ajenti installation remains secure and efficient for long-term server administration.