How to Install Ajenti with Nginx and SSL on FreeBSD 10.2
Abstract: chmod 600 ajenti.key SSL Generated on directory "/usr/local/etc/ssl/". Step 6 - Install and Configure Nginx In this tutorial we will use nginx as reve
Ajenti is open source web based system management tools, control panel for your server based on python. Support for many distro like Ubuntu, CentOS, Debian and Unix FreeBSD. Ajenti coded with python, it is lightweight control panel with beautiful interface. It is allow you to manage your services on your server, manage apache, cron jobs, firewall, mysql database etc. Ajenti is powerfull and easy to install.
In this tutorial we will guide you to install ajenti with nginx as the web server, and then configure SSL for ajenti on freebsd 10.2. we will guide you to install ajenti from pip (Package management in python), install all package needed by ajenti from freebsd ports, and then install and configure nginx to running in front of ajenti with SSL enabled.
Prerequisite
- FreeBSD 10.2 - 64bit.
- Root Privileges.
Log in to your freebsd server and update the repository :
freebsd-update fetch freebsd-update installStep 2 - Install Package needed
In this step we will install all package that needed by ajenti. We will install all of it from the freebsd ports. Just go to the ports directory "/usr/ports/", then choose the package, compile and install it.
Ajenti need py-gevent, so go to the directory of py-gevent :
cd /usr/ports/devel/py-gevent
then install it with command :
make install clean
install : Compile and install the ports.
clean : Remove the work directory and other temporary files used for building the ports.
Next, Install all of this ports just like install py-gevents above.
# Install py-lxml cd /usr/ports/devel/py-lxml make install clean # Install Pyhton pip cd /usr/ports/devel/py-pip make install clean # Install py-ldap module cd /usr/ports/net/py-ldap make install clean # Install jpeg module that needed by Pillow python imaging library. cd /usr/ports/graphics/jpeg make install clean
Wait all of it.
Step 3 - Install AjentiOn linux distribution like ubuntu and centos, we can install ajenti from the repository. But in this tutorial FreeBSD 10.2, we will install ajenti from the pip command. Pip is a package management system used to install and manage software packages written in Python.
So let's install :
pip install ajenti
Now configure it.
Step 4 - Configure AjentiDownload ajenti service script from github to "/etc/rc.d/" directory with wget command :
wget --no-check-certificate https://raw.github.com/ajenti/ajenti/1.x/packaging/files/ajenti-bsd -O /etc/rc.d/ajenti
Next, change the permission of the service file :
chmod +x /etc/rc.d/ajenti
Service script for ajenti is configured, so let's download the configuration file for ajenti. Before we download it, we need to make a symlink for python binary command :
ln -s /usr/local/bin/python2 /usr/bin/python
And create new directory for ajenti configuration file :
mkdir -p /usr/local/etc/ajenti/ mkdir -p /etc/ajenti/
Next, download the configuration file to directory "/usr/local/etc/ajenti/", and create a symlink for config file to directory "/etc/ajenti/" :
wget --no-check-certificate https://github.com/ajenti/ajenti/raw/1.x/config.json -O /usr/local/etc/ajenti/config.json ln -s /usr/local/etc/ajenti/config.json /etc/ajenti/config.json
Then edit the config file with nano editor :
nano -c /etc/ajenti/config.json
On the line 35, change the value to "true".
"authentication": true,
Save and exit.
If all is done, add ajenti to run at boot time with sysrc command, and then start it :
sysrc ajenti_enable=yes service ajenti start
Visit your server IP on port 8000, 192.168.1.103:8000.
Step 5 - Generate Self Signed SSL CertificateIn this step we will generate new self signed SSL certificate. Go to "/usr/local/etc/" directory and make new directory called "ssl".
cd /usr/local/etc/ mkdir ssl cd /usr/local/etc/ssl
Now generate the self signed SSL certificate file with single openssl command :
openssl req -new -x509 -nodes -out ajenti.crt -keyout ajenti.key FILL With YOUR INFO
Now change the permission of the private key :
chmod 600 ajenti.key
SSL Generated on directory "/usr/local/etc/ssl/".
Step 6 - Install and Configure NginxIn this tutorial we will use nginx as reverse proxy for ajenti that running on port 8000. Install nginx from the freebsd repository with pkg command :
pkg install nginx
Next, Configure the virtualhost for ajenti.
Go to nginx directory and create new directory for virtualhost called "vhost" :
cd /usr/local/etc/nginx/ mkdir vhost
Go to vhost directory and create new file ajenti.conf with nano editor :
cd /usr/local/etc/nginx/vhost nano -c ajenti.conf
Paste nginx virtualhost configuration below :
server { # Domain server_name myajenti.co; client_max_body_size 20m; # Nginx listening on port 80 and 443 listen 80; listen [::]:80; listen 443 default ssl; # SSL Certificate File ssl_certificate /usr/local/etc/ssl/ajenti.crt; ssl_certificate_key /usr/local/etc/ssl/ajenti.key; # Redirect HTTP to HTTPS if ($scheme = http) { return 301 https://$server_name$request_uri; } # Proxy pass configuration for ajenti location ~ /ajenti.* { rewrite (/ajenti)$ / break; rewrite /ajenti/(.*) /$1 break; proxy_pass http://127.0.0.1:8000; proxy_redirect / /ajenti/; proxy_set_header Host $host; proxy_set_header Origin http://$host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; } }
Save and exit.
Now activate the nginx virtualhost by editing the main configuration file nginx.conf on nginx directory :
cd /usr/local/etc/nginx/ nano -c nginx.conf
Add before the end of the line below :
includ vhost/*.conf
Save and exit.
Now add nginx to the boot time, then start it and restart ajenti :
sysrc nginx_enable=yes service nginx start service ajenti restart
Visit your domian : myajenti.co/ajenti
Log in to ajento with the default account username "root" and password "admin".
Ajenti Dashbord.
List of Ajenti Plugins.
Service page to manage the service on the server.
Ajenti with nginx and SSL is installed on FreeBSD 10.2.
ConclusionAjenti is web based system management tools based on python. It is lightweight and powerful, we can manage the service of the server from the admin web. Available on Linux and Unix distribution including FreeBSD. We can start and stop the service from the web page. Ajenti run on port 8000, and we can use Nginx or apache as the reverse proxy for ajenti with SSL enabled on the front end web server(Nginx or Apache). It is easy to install and configure an have a beautiful Interface.