# **Horilla 🦍** [](https://www.gnu.org/licenses/lgpl-3.0) [](https://hub.docker.com/r/horilla/horilla) **Horilla** is a Free and Open Source HRMS (Human Resource Management System) Software designed to streamline HR processes and enhance organizational efficiency.  --- ## **Installation** Horilla can be installed on your system by following the steps below. Ensure you have **Python**, **Django**, and a **database** (preferably PostgreSQL) installed as prerequisites. --- ## **Prerequisites** ### **1. Python Installation** #### **Ubuntu** 1. Open the terminal and install Python: ```bash sudo apt-get install python3 ``` 2. Verify the installation: ```bash python3 --version ``` #### **Windows** 1. Download Python from the [official website](https://www.python.org/downloads/windows/). 2. During installation, ensure you select **"Add Python to PATH"**. 3. Verify the installation: ```bash python --version ``` #### **macOS** 1. Install Homebrew (if not already installed): ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` 2. Install Python: ```bash brew install python ``` 3. Verify the installation: ```bash python3 --version ``` --- ### **2. PostgreSQL Installation** #### **Ubuntu** 1. **Update System Packages**: ```bash sudo apt update && sudo apt upgrade -y ``` 2. **Install PostgreSQL**: ```bash sudo apt install postgresql postgresql-contrib -y ``` 3. **Start and Enable PostgreSQL**: ```bash sudo systemctl start postgresql sudo systemctl enable postgresql ``` 4. **Verify Installation**: ```bash psql --version ``` 5. **Configure PostgreSQL Database and User**: - Switch to the `postgres` user: ```bash sudo su postgres psql ``` - Create a new role and database: ```sql CREATE ROLE horilla LOGIN PASSWORD 'horilla'; CREATE DATABASE horilla_main OWNER horilla; \q ``` - Exit the `postgres` user: ```bash exit ``` --- #### **Windows** 1. **Download PostgreSQL**: - Download the installer from the [PostgreSQL Official Site](https://www.postgresql.org/download/windows/). 2. **Install PostgreSQL**: - Follow the setup wizard and set a password for the PostgreSQL superuser. 3. **Verify Installation**: ```powershell psql -U postgres ``` 4. **Configure PostgreSQL Database and User**: - Access PostgreSQL: ```powershell psql -U postgres ``` - Create a new role and database: ```sql CREATE ROLE horilla LOGIN PASSWORD 'horilla'; CREATE DATABASE horilla_main OWNER horilla; \q ``` --- #### **macOS** 1. **Install PostgreSQL via Homebrew**: ```bash brew install postgresql ``` 2. **Start PostgreSQL**: ```bash brew services start postgresql ``` 3. **Verify Installation**: ```bash psql --version ``` 4. **Configure PostgreSQL Database and User**: - Create a database and user: ```bash createdb horilla_main createuser horilla psql -c "ALTER USER horilla WITH PASSWORD 'horilla';" ``` --- ## **Install Horilla** Follow the steps below to install **Horilla** on your system. Horilla is compatible with **Ubuntu**, **Windows**, and **macOS**. --- ### **1. Clone the Repository** #### **Ubuntu** ```bash sudo git init sudo git remote add horilla https://horilla-opensource@github.com/horilla-opensource/horilla.git sudo git pull horilla master ``` #### **Windows** ```powershell git init git remote add horilla https://horilla-opensource@github.com/horilla-opensource/horilla.git git pull horilla master ``` #### **macOS** ```bash git init git remote add horilla https://horilla-opensource@github.com/horilla-opensource/horilla.git git pull horilla master ``` ### **2. Set Up Python Virtual Environment** #### **Ubuntu** 1. Install `python3-venv`: ```bash sudo apt-get install python3-venv ``` 2. Create and activate the virtual environment: ```bash python3 -m venv horillavenv source horillavenv/bin/activate ``` 3. Install dependencies: ```bash pip install -r requirements.txt ``` #### **Windows** 1. Create and activate the virtual environment: ```powershell python -m venv horillavenv .\horillavenv\Scripts\activate ``` 2. Install dependencies: ```powershell pip install -r requirements.txt ``` #### **macOS** 1. Create and activate the virtual environment: ```bash python3 -m venv horillavenv source horillavenv/bin/activate ``` 2. Install dependencies: ```bash pip install -r requirements.txt ``` ### **3. Configure Environment Variables** 1. Rename the environment file: ```bash mv .env.dist .env ``` 2. Edit the `.env` file and set the following values: ```env DEBUG=True TIME_ZONE=Asia/Kolkata SECRET_KEY=django-insecure-j8op9)1q8$1&@^s&p*_0%d#pr@w9qj@lo=3#@d=a(^@9@zd@%j ALLOWED_HOSTS=www.example.com,example.com,* DB_INIT_PASSWORD=d3f6a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d DB_ENGINE=django.db.backends.postgresql DB_NAME=horilla_main DB_USER=horilla DB_PASSWORD=horilla DB_HOST=localhost DB_PORT=5432 ``` --- ### **4. Run Django Migrations** Follow these steps to run migrations and set up the database. #### **Ubuntu/macOS** 1. Apply migrations: ```bash python3 manage.py makemigrations python3 manage.py migrate ``` #### **Windows** 1. Apply migrations: ```powershell python manage.py makemigrations python manage.py migrate ``` --- ### **5. Enable Translation** To enable translations and breadcrumbs text, compile the translations using the following commands. #### **Ubuntu/macOS** ```bash python3 manage.py compilemessages ``` #### **Windows** ```powershell python manage.py compilemessages ``` --- ### **6. Run the Project** To run the project locally, execute the following commands. #### **Ubuntu/macOS** ```bash python3 manage.py runserver ``` #### **Windows** ```powershell python manage.py runserver ``` --- ### **Accessing Horilla** If everything is configured correctly, you should be able to access your Horilla app at **http://localhost:8000**.  #### **Initial Setup** From the login page, you will have two options: 1. **Initialize Database**: Use this option to initialize the Horilla database by creating a super admin, headquarter company, department, and job position. Authenticate using the `DB_INIT_PASSWORD` specified in the `.env` file. 2. **Load Demo Data**: Use this option if you want to work with demo data. Authenticate using the `DB_INIT_PASSWORD` specified in the `.env` file. #### **Running on a Custom Port** If you wish to run the Horilla application on a different port, specify the port number after the `runserver` command. For example: ```bash python3 manage.py runserver 8080 # For Ubuntu/macOS python manage.py runserver 8080 # For Windows ``` ## **Features** - **Recruitment** - **Onboarding** - **Employee Management** - **Attendance Tracking** - **Leave Management** - **Asset Management** - **Payroll** - **Performance Management System** - **Offboarding** - **Helpdesk** --- ## **Roadmap** - **Calendar App** - Development Under Process - **Project Management** - Development Under Process - **Chat App** - Development Under Process - **More to come...** --- ## **Languages and Tools Used**
--- ## **Authors** [Cybrosys Technologies](https://www.cybrosys.com/) --- ## **About** [Horilla](https://www.horilla.com/) is an open-source HRMS solution designed to simplify HR operations and improve organizational efficiency. --- This README provides a comprehensive guide to installing and setting up Horilla on various platforms. If you encounter any issues, feel free to reach out to the Horilla community for support. Happy coding! 🚀