What is Ajenti?
[Ajenti is] an admin's tool for a more civilized age, providing you with a fast and secure way to manage a remote Linux box at any time using everyday tools like a web terminal, text editor, file manager and others.-https://ajenti.org/
- Log into the Linux device
- Run the following commands in a terminal:
# update software repositories
sudo apt update
# install software updates
sudo apt upgrade -y
# install pre-requisites
sudo apt install build-essential python3-pip python3-dev python3-lxml python3-dbus python3-augeas libssl-dev python3-apt ntpdate -y
# upgrade pip
sudo pip3 install setuptools pip wheel -U
# install ajenti
sudo pip3 install ajenti-panel ajenti.plugin.ace ajenti.plugin.augeas ajenti.plugin.auth-users ajenti.plugin.core ajenti.plugin.dashboard ajenti.plugin.datetime ajenti.plugin.filemanager ajenti.plugin.filesystem ajenti.plugin.network ajenti.plugin.notepad ajenti.plugin.packages ajenti.plugin.passwd ajenti.plugin.plugins ajenti.plugin.power ajenti.plugin.services ajenti.plugin.settings ajenti.plugin.terminal
# create and edit ajenti.service
sudo nano /lib/systemd/system/ajenti.service - Paste the following configuration into the service file
[Unit]
Description=Ajenti panel
After=network.target
[Service]
Type=forking
PIDFile=/var/run/ajenti.pid
ExecStart=/usr/bin/python3 /usr/local/bin/ajenti-panel -d
ExecStartPost=/bin/sleep 5
[Install]
WantedBy=multi-user.target - Press CTRL+O, Enter, CTRL+X to write the changes
- Continue with the following commands:
# reload daemons
sudo systemctl daemon-reload
# enable and start ajenti service
sudo systemctl enable ajenti --now
# set the PANEL variable
PANEL=$(which ajenti-panel)
# create and edit the initscript
sudo nano /etc/init.d/ajenti - Paste the following into the init file
#!/bin/sh
### BEGIN INIT INFO
# Provides: ajenti
# Required-Start: $network $syslog $local_fs
# Required-Stop: $network $syslog $local_fs
# Should-Start: $local_fs
# Should-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Ajenti
# Description: Ajenti administration frontend
### END INIT INFO
if [ -e /lib/lsb/init-functions ]; then
. /lib/lsb/init-functions
log_success() {
log_success_msg "\$1"
}
log_failure() {
log_failure_msg "\$1"
}
else
. /etc/rc.d/init.d/functions
log_success() {
echo_success
echo "\$1"
}
log_failure() {
echo_failure
echo "\$1"
}
fi
NAME=Ajenti
PIDFILE=/var/run/ajenti.pid
case "\$1" in
start)
echo "Starting \$NAME:"
export LC_CTYPE=en_US.UTF8
if pidofproc -p \$PIDFILE \$PANEL > /dev/null; then
log_failure "already running"
exit 1
fi
if \$DAEMON -d ; then
log_success "started"
else
log_failure "failed"
fi
;;
stop)
echo "Stopping \$NAME:"
if pidofproc -p \$PIDFILE \$PANEL > /dev/null; then
killproc -p \$PIDFILE \$PANEL
/bin/rm -rf \$PIDFILE
log_success "stopped"
else
log_failure "not running"
fi
;;
restart)
\$0 stop && sleep 2 && \$0 start
;;
status)
if pidofproc -p \$PIDFILE \$PANEL > /dev/null; then
log_success "\$NAME is running"
else
log_success "\$NAME is not running"
fi
;;
*)
echo "Usage: \$0 {start|stop|restart|status}"
exit 1
esac
exit 0 - Press CTRL+O, Enter, CTRL+X to write the changes
- Continue with the following commands:
# make the init script executable
sudo chmod +x /etc/init.d/ajenti
# run the init script
sudo /etc/init.d/ajenti start - Open a web browser and navigate to http://DNSorIP:8000
- Login with the username root and the root Linux password
- Welcome to Ajenti