Horilla
Open-source HRMS covering recruitment, attendance, payroll, and biometrics in one self-hosted Django application.
Horilla is a free and open-source Human Resource Management System built on Django and PostgreSQL, designed to give organizations full control over their HR operations without subscription fees or vendor lock-in. It covers the entire employee lifecycle from job application through offboarding, with each functional area—recruitment, onboarding, attendance, leave, payroll, asset management, and performance—implemented as a standalone Django app that can be enabled or disabled independently.
The system stands out for its approach to real-time data without a heavy frontend framework: HTMX powers dynamic interactions throughout the UI, keeping the stack simple while still delivering live attendance timers, drag-and-drop recruitment pipelines, and instant form feedback. Biometric hardware integration (Anviz, Dahua, COSEC, eTimeOffice devices) pulls attendance data directly from physical time clocks, eliminating manual punch-in errors and enabling automatic overtime and late-arrival calculations.
Horilla is deployable on Ubuntu, Windows, or macOS and ships with a Docker Compose configuration that pairs the application with PostgreSQL 16. A REST API layer built on Django REST Framework with JWT authentication and Swagger/ReDoc documentation is available for integrations, and the project recently added face detection-based attendance, LDAP authentication, geofencing, and Microsoft 365 login. Cybrosys Technologies maintains the project with consistent monthly releases and an active community of over 800 forks.
What You Get
- Attendance Tracking with Biometric Sync - Connects to Anviz, Dahua, COSEC, and eTimeOffice hardware to pull punch-in/out records automatically, with real-time timers, overtime calculation, and late/early-out detection built in.
- Payroll Automation - Generates payslips by combining attendance records, leave deductions, and configurable salary components, reducing manual payroll processing to a review-and-approve step.
- Recruitment Pipeline - Tracks candidates across customizable stages with a drag-and-drop Kanban board, bulk actions, interview scheduling, and a candidate self-service portal for application status.
- Leave Management - Supports multiple leave types with accrual policies, carryover rules, approval workflows, and department- or project-scoped configurations.
- Asset Management - Records company equipment with assignment history, condition tracking, and location logs so IT and HR can manage laptops, phones, and tools with accountability.
- Onboarding and Offboarding Workflows - Automates checklist-driven processes for new hires and departing employees, including document collection, equipment assignment, and access provisioning tasks.
- Helpdesk Module - Provides an internal ticketing system for HR-related employee support requests, with status tracking and resolution workflows.
- REST API and Integrations - Exposes JWT-secured endpoints documented via Swagger UI for integrations with external systems, plus optional LDAP, Microsoft 365, Google, and face detection add-ons.
Common Use Cases
- Manufacturing shift management - A plant HR team connects Horilla to biometric time clocks on the factory floor, automatically capturing shift attendance and feeding overtime hours directly into the payroll module each pay period.
- Scaling a multi-location retail business - Corporate HR deploys Horilla centrally and uses geofencing rules so employees at each store can only clock in when physically on-site, with consolidated attendance reports across locations.
- Government agency data sovereignty - A public-sector HR department runs Horilla on-premise to retain full control over employee records, using LDAP authentication to tie into the existing Active Directory infrastructure.
- Remote-first startup without SaaS budget - An HR lead self-hosts Horilla on a small VPS to handle hiring pipelines, offer letters, equipment assignment, and leave requests for a distributed 50-person team without paying per-seat fees.
- Performance review cycle management - A mid-sized company uses the performance management module to run quarterly review cycles, track KPIs, and link appraisal outcomes to salary adjustments in the payroll module.
Under The Hood
Architecture
Horilla uses Django’s MTV pattern organized as a collection of loosely coupled apps—recruitment, attendance, payroll, leave, asset, helpdesk, and others—each with its own models, views, forms, filters, and URL routes. Business logic is coupled directly to Django’s ORM rather than mediated through a service or repository layer, which keeps the code approachable but means view functions sometimes carry significant query logic. Cross-cutting concerns like permission enforcement are handled through reusable decorators and a custom template tag system that adapts UI elements to the current user’s role, implementing server-side access control without client-side complexity. An addon registration mechanism in horilla_apps.py allows optional modules such as biometric integration, LDAP, face detection, and geofencing to be bolted on without modifying the core settings file.
Tech Stack The backend runs Django 4.2 on Python 3.10, backed by PostgreSQL 16 deployed via Docker Compose with health-checked startup and SCRAM-SHA-256 authentication. HTMX drives dynamic UI updates across the application, enabling real-time attendance timers, inline form submissions, and partial page refreshes without a JavaScript framework. The frontend layer uses Alpine.js for lightweight reactive state, Select2 for searchable dropdowns, jQuery UI for drag-and-drop interactions, and Ionicons served via a custom kebab-case-to-SVG mapping system. Asset bundling is handled by Laravel Mix despite the Django backend, creating a structural mismatch. Django REST Framework with drf-yasg provides a JWT-authenticated REST API layer with interactive Swagger and ReDoc documentation. Additional integrations include APScheduler for background tasks, django-haystack for search, and libraries for PDF generation, Excel export, biometric device protocols, and Google Calendar.
Code Quality
Test files exist in every app directory but contain only placeholder stubs with no actual test cases, leaving the codebase without automated test coverage. The API module includes a separate tests.py but it is similarly empty. Code style is enforced at commit time via pre-commit hooks running Black and isort, ensuring consistent formatting and import ordering across contributors. Views contain a mix of function-based and class-based patterns with reasonable docstrings and descriptive naming. Error handling in view functions typically uses Django’s messages framework for user feedback but rarely raises or propagates typed exceptions, making silent failures possible in edge cases. The lack of a CI pipeline means formatting is the only automated quality gate.
What Makes It Unique Horilla’s most distinctive technical decision is its combination of biometric hardware protocols (Anviz TCP, Dahua SDK, COSEC, eTimeOffice) directly with the payroll engine in a single open-source package, eliminating the middleware vendor that most HRMS deployments require between time clocks and payroll. The HTMX-first approach lets the server render partial HTML for every interaction, keeping the frontend footprint minimal while still delivering Kanban-style pipeline boards and live attendance timers. The addon system allows face detection attendance, geofencing clock-in, and Microsoft 365 calendar sync to be layered on top of the core without forking the application. Role-based UI rendering via custom Django template tags adapts navigation and form fields to permissions at render time, meaning sensitive controls never reach the browser for unauthorized users.
Self-Hosting
Horilla is released under the GNU Lesser General Public License version 2.1 (LGPL-2.1). In practical terms, this means you can use, modify, and deploy the software commercially without paying any licensing fees. If you distribute a modified version of Horilla itself, you must make your modifications available under the same license. However, you can integrate Horilla with proprietary systems or build private customizations on top of it without being required to open-source your surrounding application code—the LGPL’s ‘library’ exception gives more flexibility than a full GPL would.
Running Horilla yourself requires a PostgreSQL database server, a Python runtime, and enough compute to handle your employee count—a small VPS with 2 CPUs and 2GB of RAM is sufficient for teams under a few hundred people. The Docker Compose configuration makes initial setup straightforward, but ongoing operations are entirely your responsibility: you handle backups, database vacuuming, OS patching, SSL termination, and scaling if your organization grows. The project ships with an entrypoint.sh but no built-in backup automation, health monitoring, or log aggregation, so you will need to layer those on separately. Biometric device integration requires direct network access between the Horilla server and the physical hardware, which constrains cloud deployment options.
Horilla does not currently offer a paid cloud or enterprise tier—the project is maintained by Cybrosys Technologies as an open-source initiative with commercial consulting services available separately. This means there is no SLA, no vendor-managed upgrade path, and no guaranteed support beyond the GitHub issue tracker and community forums. In exchange, you retain complete ownership of your HR data, pay no per-seat fees regardless of headcount, and can extend the codebase without restriction. Organizations evaluating this trade-off against a managed HRMS SaaS should account for the internal engineering time required to maintain the deployment, particularly for major version upgrades, which have historically introduced database schema changes across many modules simultaneously.
Related Apps
Odoo
ERP · CRM · Productivity
The open source ERP platform that integrates CRM, accounting, inventory, manufacturing, and 60+ business apps into one seamlessly connected suite.
Odoo
OtherERPNext
ERP · Invoicing Finance
100% free, open-source ERP unifying accounting, manufacturing, inventory, CRM, HR, and POS in a single self-hostable platform.
ERPNext
GPL 3.0Frappe HR
Human Resources
Complete open-source HRMS for employee lifecycle, attendance, payroll, and performance — built on Frappe Framework with a mobile PWA.