Ajenti is a highly extensible platform. The core of the platform provides HTTP server, Socket engine and Plugin container. The extensibility is implemented via a system of extension plugins.
The backend is written in Python (Ajenti Core). The frontend is written in Angular application hosted in the core plugin shell.
For more information about the architecture see the Architecture and how it works.
- HTTP 1.1 Support.
- Websockets with fallback to XHR polling.
- Fast event-loop based processing.
- Flexible routing.
- Session sandboxing.
- SSL with client certificate authentication.
- >1000 requests per second.
- 30 MB RAM footprint + 5 MB per session.
- Highly modular Python API. Everything is a module and can be removed or replaced.
- Builtin webserver API supports routing, file downloads, GZIP, websockets and more.
- Transparent SSL client authorization.
- Plugin architecture
- Dependency injection
- Server-side push and socket APIs.
- Pluggable authentication and authorization.
- Stock authenticators: UNIX account, password, SSL client certificate and Mozilla Persona E-mail authentication.
- Unprivileged sessions isolated in separate processes.
- Fail2ban rule
- Clean, modern and responsive UI. Single-page, no reloads.
- Live data updates and streaming with Socket.IO support.
- Full mobile and tablet support.
- LESS support.
- Numerous stock directives.
- Angular framework
- Debian 9 or later
- Ubuntu Bionic or later
- RHEL 8 or later
- Can be run on other Linux or BSD systems with minimal modifications.
- Supports Python 3.5+.