Getting Started with Core Development¶
Attention
This article is only useful to the developers interested in developing the Ajenti core itself. For plugin/extension development, see Getting started with plugin development
Required knowledge¶
Python 3.x
async programming with gevent
HTML
CoffeeScript (with AngularJS)
LESS
Prerequisites¶
The following is the absolutely minimal set of software required to build and run Ajenti:
git
bower, babel, babel-preset-es2015 and lessc (from NPM)
Debian/Ubuntu extras:
python3-dbus (ubuntu)
Automatic Installation¶
The following script will perform a complete automatic installation under Debian or Ubuntu, using virtual environment with Python. The virtual environment is then located in /opt/ajenti and the cloned git repository in /opt/ajenti/ajenti. This install script will install a lot of dependencies, this may take several minutes.
curl https://raw.githubusercontent.com/ajenti/ajenti/master/scripts/install-dev.sh | sudo bash -s -
After a successful installation, do the following to activate the dev mode:
Activate the virtual environment : source /opt/ajenti/bin/activate
Navigate in the git repository : cd /opt/ajenti/ajenti
Launch a rundev recipe : make rundev ( quit with Ctrl+ C )
Call https://localhost:8000 in your browser ( you will get some warnings because of the self-signed certificate, it’s perfectly normal.
Manual installation¶
First, it’s necessary to complete the install for plugin developpement mentioned here : Dev getting started
Download the source:
git clone git://github.com/ajenti/ajenti.git
Install the dependencies:
# Debian/Ubuntu
sudo apt-get install build-essential python3-pip python3-dev python3-lxml libffi-dev libssl-dev libjpeg-dev libpng-dev uuid-dev python3-dbus gettext
# RHEL
sudo dnf install gcc python3-devel python3-pip libxslt-devel libxml2-devel libffi-devel openssl-devel libjpeg-turbo-devel libpng-devel dbus-python gettext
cd ajenti
sudo pip3 install -r ajenti-core/requirements.txt
sudo pip3 install ajenti-dev-multitool
sudo npm install -g coffee-script less bower
Download and install Bower dependencies:
make bower
Ensure that resource compilation is set up correctly and works (optional):
make build
Launch Ajenti in dev mode:
make rundev
Navigate to http://localhost:8000/.
Hint
Changes in CoffeeScript and LESS files will be recompiled automatically when you refresh the page; Python code will not. Additional debug information will be available in the console output and browser console. Reloading the page with Ctrl-F5 (Cache-Control: no-cache) will unconditionally rebuild all resources