Important
2.0 is now this repositoryβs default branch. Use it to run or deploy Horilla (a plain git clone checks it out). To contribute code, branch from and open PRs against dev/v2.0 β GitHub still pre-selects 2.0 as the PR base, so switch it manually. v1 (1.0/master) is deprioritized, with fixes considered case-by-case rather than on a guaranteed schedule. Full details β Discussion #1127.
A comprehensive, free, and open-source Human Resource Management System (HRMS) designed to streamline HR operations and enhance organizational efficiency.
- π₯ Employee Management - Centralized workforce data with LDAP integration
- π― Recruitment - End-to-end hiring process from job posting to onboarding
- π Onboarding & Offboarding - Structured workflows for employee lifecycle
- β° Attendance & Time Tracking - Biometric integration and automated check-in/out
- ποΈ Leave Management - Policy enforcement, approvals, and balance tracking
- π° Payroll - Automated salary processing, tax calculations, and compliance
- π Performance Management - Goal setting, reviews, and continuous feedback
- π’ Asset Management - Track and manage company resources
- π« Helpdesk - Centralized HR support and ticketing system
2.0(default) β the latest stable v2 snapshot. This is what a plaingit clonegives you. Use it to run or deploy Horilla.dev/v2.0β the active integration branch. If you want to contribute code, branch from and open PRs against this, not2.0.1.0/masterβ v1, now deprioritized (fixes considered case-by-case, no guaranteed schedule). Not deleted, but no longer where active development happens.
See Discussion #1127 for full background on this transition.
Published for linux/amd64 and linux/arm64 as
horilla/horilla-hr:
docker pull horilla/horilla-hr:2.1.5Pin an exact version in production rather than latest, so a deploy cannot
pick up a new release unattended; see
all tags for the current
one. The
repository overview documents
every environment variable, the volumes to back up, and a working Compose file.
First boot applies the full migration set before the web server binds, which takes a few minutes on an empty database.
# Clone the repository (defaults to the stable 2.0 branch)
git clone https://github.com/horilla/horilla-hr.git
cd horilla-hr
# Start with Docker Compose
docker compose up -d
# Access the application
open http://localhost:8000Full Docker guide, including production deployment: docker/README.md
Requires Python 3.12, 3.13 or 3.14, and pip 21.3 or newer. Python 3.15 is
not usable yet: spacy declares Requires-Python <3.15 and is imported at
module scope, so the app cannot start on it.
# Clone and setup (defaults to the stable 2.0 branch)
git clone https://github.com/horilla/horilla-hr.git
cd horilla-hr
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Upgrade pip FIRST. A venv inherits the system pip, and an older one does not
# recognise current manylinux wheel tags -- it then tries to compile packages
# like cryptography and PyMuPDF from source, which needs a C toolchain most
# machines do not have. The Docker build already does this; do the same here.
python -m pip install --upgrade pip
# Install dependencies
pip install -r requirements.txt
# Setup environment
cp .env.dist .env
# Edit .env with your configuration
# Initialize database
python manage.py migrate
python manage.py compilemessages
python manage.py collectstatic
# Run development server
python manage.py runserverFor detailed installation instructions, configuration guides, and platform-specific setup instructions, please visit our comprehensive documentation:
Our documentation includes:
- Step-by-step installation for all supported platforms
- Database configuration guides
- Environment setup instructions
- Production deployment best practices
- Troubleshooting common issues
- Advanced configuration options
For production deployment guides including Nginx, Apache, and cloud platforms:
We welcome contributions! Please see our Contributing Guide for details.
# Fork and clone your fork
git clone -b dev/v2.0 https://github.com/YOUR_USERNAME/horilla-hr.git
cd horilla-hr
# Add upstream remote
git remote add upstream https://github.com/horilla/horilla-hr.git
# Create feature branch
git checkout -b feature/your-feature-name
# Install development dependencies
pip install -r requirements.txt
# Submit pull requestNote:
2.0is the repo default, so GitHub pre-selects it as your PR base. Before submitting, change the base branch todev/v2.0β that's where active development and reviews happen, not2.0.
- Follow PEP 8 for Python code
- Use Black for code formatting
- Write tests for new features
- Update documentation for user-facing changes
- π Authentication & Authorization - Role-based access control
- π‘οΈ Data Protection - Encrypted sensitive data storage
- π Audit Trails - Comprehensive activity logging
- π« Input Validation - XSS and injection protection
- π Session Security - Secure session management
Please report security vulnerabilities via GitHub Private Vulnerability Reporting, not email. Do not create public GitHub issues for security vulnerabilities. See SECURITY.md for full details.
- Always use HTTPS in production
- Regularly update dependencies
- Use strong passwords and enable 2FA
- Monitor logs for suspicious activities
- π Documentation: docs.horilla.com
- π¬ GitHub Discussions: GitHub Discussions
- π Bug Reports: GitHub Issues
- β¨ Feature Requests: GitHub Issues
For enterprise support, custom development, and consulting services:
- π§ Email: [email protected]
- π Website: www.horilla.com
This project is licensed under the LGPL-2.1 License - see the LICENSE file for details.
Made with β€οΈ by the Horilla Team
β Star us on GitHub | π Report Bug | π‘ Request Feature