Install IceHRM on Fedora 29



  • IceHRM has 3 versions.
    https://icehrm.com/compare-opensource-icehrmpro-cloud
    OpenSource, Professional, and Cloud.

    This guide was for the open source version.

    The instructions for the Professional version are identical, except you get the download link via email instead of github.

    Make sure Fedora is fully up to date

    dnf upgrade -y --refresh
    

    Install system admin tools

    This is my general list. Install what you want.

    dnf install -y nano sysstat glances htop 
    

    Determine the current version of IceHRM

    Go here to find the current link: https://github.com/gamonoid/icehrm/releases
    As of the wirting of this guide, it is v24.0.0.0
    current_version

    Setup some session variables

    ######################################################
    ############## EDIT THESE APPROPRIATELY ##############
    ############### BEFORE YOU COPY/PASTE ################
    ######################################################
    # Database name to use for application
    export DB_NAME='icehrm'
    # Database user to use for application
    export DB_USER='ice_user'
    # Folder to install application into
    export APP_DIR='/var/www/html/icehrm'
    # IceHRM Verison number to download
    export APP_VER='v24.0.0.OS'
    

    Choose a random root password or your own.

    Copy and paste the one of these you wish to use.

    # Specify your own password for MariaDB root user
    export DB_ROOT_PASS="somebigpasswordgoeshere"
    
    # Generate a random password for MariaDB root user
    export DB_ROOT_PASS="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 30)"
    echo "This is your MariaDB root password: $DB_ROOT_PASS"
    

    Do the same for the application database user password

    Copy and paste the one you wish to use

    # Specify your own password for MariaDB root user
    export DB_PASS="somebigpasswordgoeshere"
    
    # Generate a random password for the application's database user
    export DB_PASS="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 30)"
    echo "This is your password for the application user: $DB_PASS"
    

    Some session variables that you should not edit unles you know what you are actually doing

    ######################################################
    ######### DO NOT CHANGE ANYTHING BELOW HERE ##########
    ######################################################
    #SELinux RW label for Apache
    export HTTPDRW='httpd_sys_rw_content_t'
    

    Install dependencies

    See: https://icehrm.com/docs/installation-and-setup

    dnf install -y httpd mariadb mariadb-server memcached php php-gd php-mysqli php-pear php-pecl-memcached policycoreutils-python-utils tar wget
    

    Download the current release from Github

    wget https://github.com/gamonoid/icehrm/releases/download/$APP_VER/icehrm_$APP_VER.tar.gz
    

    Create the directory to install the application and extract the tarbal into it.

    mkdir -p $APP_DIR
    tar -xf icehrm_$APP_VER.tar.gz -C $APP_DIR --strip 1
    

    Create an empty config.php file

    touch $APP_DIR/app/config.php
    

    Give Apache ownership of the application folder and everything in it

    chown apache:apache -R $APP_DIR
    

    Start, and set to start on boot, MariaDB

    systemctl enable --now mariadb
    

    Create the database and database user for the application

    mysql -e "CREATE DATABASE $DB_NAME;"
    mysql -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
    mysql -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost';"
    mysql -e "FLUSH PRIVILEGES;"
    

    Secure the database

    # Secure MariaDB (this does what mysql_secure_installation performs without interaction)
    mysql -e "UPDATE mysql.user SET Password=PASSWORD('$DB_ROOT_PASS') WHERE User='root';"
    mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
    mysql -e "DELETE FROM mysql.user WHERE User='';"
    # As of the writing of this guide MariaDB no longer seems to create a test database.
    # mysql -e "DROP DATABASE test;"
    mysql -e "FLUSH PRIVILEGES;"
    

    Setup SELinux permissions

    setsebool -P httpd_can_sendmail 1
    setsebool -P httpd_can_network_connect 1
    semanage fcontext -a -t ${HTTPDRW} "${APP_DIR}/app/data(/.*)?"
    restorecon -R -F ${APP_DIR}/app/data
    semanage fcontext -a -t ${HTTPDRW} "${APP_DIR}/app/config.php"
    restorecon -R -F ${APP_DIR}/app/config.php
    

    Allow HTTP through the firewall default zone

    firewall-cmd --add-port=http/tcp --permanent
    firewall-cmd --reload
    

    Start and enable Apache

    systemctl enable --now httpd
    

    Display the database information

    cat << EOF
    
    MySql Database Name     : $DB_NAME
    Database User           : $DB_USER
    Database User Password  : $DB_PASS
    Database Root Password  : $DB_ROOT_PASS
    
    EOF
    

    Got to the web interface and run the install wizard

    http://domain.com/icehrm

    Once it is completes it tells you to delete the install directory.

    rm -rf $APP_DIR/app/install
    


  • Reserved for https



  • Going to be a heck of a learning curve for my client.

    They have zero HR currently. They are implementing their first HR person (existing employee with new part time duties).



  • Added to the first post.
    IceHRM has 3 versions.
    <snip>



  • Looks interesting, I'm not familiar with this package though. Any idea how it compares to orange hrm? Skimming the site really quickly on my phone they look to be similar from a feature standpoint



  • @JaredBusch said in Install IceHRM on Fedora 29:

    Going to be a heck of a learning curve for my client.

    They have zero HR currently. They are implementing their first HR person (existing employee with new part time duties).

    Cost to much for your client to use something like ADP?