Everything to deploy, configure & integrate
Practical guides for admins and developers — from your first install to your first API call.
Introduction
Emirates HRM is a self-hosted HR platform that runs on your own infrastructure. The three surfaces — admin, self-service and mobile — share a single database and one JSON API.
Because everything is self-hosted, your employee data stays entirely within your network.
Self-hosted deployment
Deploy with Docker on any Linux server. Recommended minimum: 2 vCPUs, 4 GB RAM and 20 GB storage.
git clone https://git.emirateshrm.local/ehrm.git
cd ehrm && docker compose up -d
# the app is now on http://localhost:8080
Environment variables
- DB_URL — PostgreSQL connection string
- DEFAULT_LOCALE — en or ar
- CURRENCY — defaults to AED
Importing employees
Upload a CSV from Admin → Employees → Import. Columns are mapped to fields, and rows are validated before commit.
Download the CSV template from the same screen to guarantee your columns line up.
Payroll & WPS
Define salary components (basic, allowances, deductions), run a cycle, then generate the SIF file for the Wage Protection System. All amounts are in AED to 2 decimals.
Example: net pay
# e.g. 6,500.00 + 2,000.00 − 350.00 − 500.00 = 7,650.00 AED
EOSB / gratuity
The logic applies each country's rules. For the UAE: 21 days of basic wage per year for the first 5 years, 30 days per year thereafter, capped at 24 months' basic.
Try the live calculator on the UAE compliance page.
Leave & attendance
Create leave types, set balances and approval workflows. Employees clock in/out from web, mobile or kiosk, and hours flow into payroll.
JSON API
Every surface is built on a REST API that returns JSON. Authenticate with a Bearer token from Admin → Developers.
Authorization: Bearer
{
"id": 101,
"name": "Mohammed Ali",
"department": "Operations",
"basic_salary": "6500.00"
}
Webhooks
Subscribe to events like leave.approved, payroll.finalized and document.expiring to trigger your own systems.
Every webhook is sent with a signature so you can verify its origin.
Can't find what you need?
Our support team is happy to help with deployment or integration.