How to Install IceHrm on EndeavourOS

IceHrm is an open-source HR management system that enables businesses to manage their human resources more effectively. In this tutorial, we will guide you through the steps to install IceHrm on EndeavourOS.

Prerequisites

Before you begin, ensure that your EndeavourOS system is up-to-date and that you have root access or sudo rights. IceHrm is a web-based application, so ensure that you have a web server (such as Apache or Nginx) installed and running on your system.

Step 1: Install PHP and related Packages

To run IceHrm on your system, you need to install PHP and several related packages. Run the following command in your terminal to install them:

sudo pacman -S php php-fpm php-intl php-gd php-curl php-zip php-dom php-mbstring

Step 2: Install and Configure MariaDB

IceHrm uses a database to store its data. You can use any database of your choice, but in this tutorial, we will use MariaDB. Run the following command to install MariaDB:

sudo pacman -S mariadb

After installation, start the MariaDB service and enable it to start at boot time with the following commands:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Next, secure your MariaDB installation by running the following command:

sudo mysql_secure_installation

This command will guide you through the process of securing your MariaDB installation, including setting a root password and removing anonymous users.

Step 3: Create a Database and User for IceHrm

IceHrm needs a database and a user to access it. Use the following commands to log in to MariaDB and create a new database and user:

sudo mysql
CREATE DATABASE icehrm;
CREATE USER 'icehrm'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON icehrm.* TO 'icehrm'@'localhost';
FLUSH PRIVILEGES;
exit;

Replace "password" with your desired password.

Step 4: Download and Install IceHrm

You can download IceHrm from the official website or GitHub page. In this tutorial, we will download the latest version using the following commands:

cd /var/www
sudo wget https://icehrm.com/uploads/downloads/IceHrm-Latest.zip
sudo unzip IceHrm-Latest.zip
sudo mv IceHrm-*/ icehrm/

Next, set the file permissions for the IceHrm directory so that your web server can access it:

sudo chown -R http:http /var/www/icehrm/
sudo chmod -R 755 /var/www/icehrm/

Step 5: Configure PHP and the Web Server

Create a new PHP-FPM pool configuration file for IceHrm:

sudo nano /etc/php/fpm/pool.d/icehrm.conf

Add the following content to the file and save it:

[icehrm]
user = http
group = http
listen = /run/php-fpm/icehrm.sock
listen.owner = http
listen.group = http
listen.mode = 0666
pm = dynamic
pm.max_children = 5
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4

Next, create a new virtual host configuration file for IceHrm:

sudo nano /etc/httpd/conf/extra/icehrm.conf

Add the following content to the file and save it:

<VirtualHost *:80>
    ServerName your_domain.com
    DocumentRoot /var/www/icehrm

    <Directory "/var/www/icehrm">
        AllowOverride All
        Require all granted
    </Directory>

    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php-fpm/icehrm.sock|fcgi://localhost/"
    </FilesMatch>

    ErrorLog ${APACHE_LOG_DIR}/icehrm_error.log
    CustomLog ${APACHE_LOG_DIR}/icehrm_access.log combined
</VirtualHost>

Replace "your_domain.com" with your actual domain name.

Finally, restart the PHP-FPM and web server services:

sudo systemctl restart php-fpm
sudo systemctl restart httpd

Step 6: Complete the Installation

Open a web browser and enter your domain name in the address bar. You should see the IceHrm login screen. Enter your admin username and password:

After login, you will need to set up the application with your company's details and start using it.

Congratulations! You have successfully installed IceHrm on your EndeavourOS system. You can now manage your HR tasks more efficiently with this powerful HR management system.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!

Alternatively, for the best virtual desktop, try Shells!