
Deploy OrangeHRM | Free Open-Source HR Management
Self Host OrangeHRM: employee records, leave tracking, recruitment, & more
MySQL
Just deployed
/var/lib/mysql
OrangeHRM
Just deployed
/orangehrm
Deploy and Host OrangeHRM on Railway
Deploy OrangeHRM on Railway to get a fully self-hosted human resource management system running in minutes. OrangeHRM is the world's most popular open-source HR software, handling everything from employee records and leave management to recruitment and performance reviews.
This Railway template pre-configures OrangeHRM with a MySQL database, persistent storage for uploads, and a public domain — ready for the guided setup wizard that creates your admin account and initializes the database on first visit.
Getting Started with OrangeHRM on Railway
After deployment completes, open your Railway-generated public URL. OrangeHRM redirects to the installation wizard automatically. Accept the license agreement, then on the database configuration step select Existing Empty Database — the connection details are pre-filled from environment variables. Create your admin account with a strong password, enter your organization name, and click Install. The wizard runs database migrations and drops you at the login screen. Sign in with your new admin credentials and navigate to the Admin module to configure your company structure, job titles, and pay grades.

About Hosting OrangeHRM
OrangeHRM is a comprehensive Human Resource Management System released under the GPL-3.0 license. It provides a modular platform where organizations pick the HR functions they need without paying for features they don't.
- Employee Information Management — centralized database of personnel details, job histories, emergency contacts, and custom fields
- Leave & Time Tracking — automated PTO requests, approval workflows, attendance tracking with configurable leave types
- Recruitment (ATS) — job postings, applicant tracking, resume management, and interview scheduling
- Performance Management — 180° reviews, goal setting, evaluation cycles, and development plans
- Reporting & Analytics — pre-built and custom reports on attendance, turnover, demographics, and workforce planning
- Mobile Apps — iOS and Android apps for employee self-service on the go
Why Deploy OrangeHRM on Railway
- One-click deploy with MySQL and persistent storage pre-configured
- No server administration — Railway handles scaling, TLS, and uptime
- Full data ownership with self-hosted deployment behind your own domain
- Open-source GPL-3.0 license with zero licensing fees
- Guided setup wizard gets you operational in under five minutes
Common Use Cases for Self-Hosted OrangeHRM
- SMB HR digitization — replace spreadsheets with a proper HRIS for companies with 20–500 employees
- Leave and attendance automation — eliminate manual PTO tracking with approval workflows and calendar integration
- Recruitment pipeline management — track applicants from job posting through interview to offer using the built-in ATS
- Compliance and record-keeping — maintain auditable employee records for labor law compliance across jurisdictions
Dependencies for OrangeHRM on Railway
This template deploys two services:
- OrangeHRM —
orangehrm/orangehrm:latest— PHP 8.3 + Apache web application - MySQL —
mysql:9.4— Railway-managed relational database with persistent volume
Environment Variables Reference for OrangeHRM
| Variable | Description | Example |
|---|---|---|
ORANGEHRM_DATABASE_HOST | MySQL hostname (internal) | ${{MySQL.RAILWAY_PRIVATE_DOMAIN}} |
ORANGEHRM_DATABASE_USER | Database user | ${{MySQL.MYSQLUSER}} |
ORANGEHRM_DATABASE_PASSWORD | Database password | ${{MySQL.MYSQLPASSWORD}} |
ORANGEHRM_DATABASE_NAME | Database name | ${{MySQL.MYSQL_DATABASE}} |
PORT | HTTP listening port | 80 |
Deployment Dependencies
- Runtime: PHP 8.3, Apache 2.4 (Debian-based)
- GitHub: orangehrm/orangehrm
- Docker Hub: orangehrm/orangehrm
- Docs: OrangeHRM Help Center
Hardware Requirements for Self-Hosting OrangeHRM
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 1 vCPU | 2 vCPUs |
| RAM | 256 MB | 1 GB |
| Storage | 1 GB | 5 GB+ |
| Runtime | PHP 8.1+, MySQL 5.7+ | PHP 8.3, MySQL 8.0+ |
OrangeHRM is a lightweight PHP application. Resource needs grow primarily with the number of concurrent users and stored documents rather than employee count.
Self-Hosting OrangeHRM with Docker
Pull and run OrangeHRM alongside MySQL using Docker Compose:
version: "3.8"
services:
orangehrm:
image: orangehrm/orangehrm:latest
ports:
- "8080:80"
environment:
- ORANGEHRM_DATABASE_HOST=db
- ORANGEHRM_DATABASE_USER=orangehrm
- ORANGEHRM_DATABASE_PASSWORD=changeme
- ORANGEHRM_DATABASE_NAME=orangehrm
volumes:
- orangehrm_data:/orangehrm
depends_on:
- db
db:
image: mysql:9.4
environment:
- MYSQL_ROOT_PASSWORD=changeme
- MYSQL_DATABASE=orangehrm
- MYSQL_USER=orangehrm
- MYSQL_PASSWORD=changeme
volumes:
- mysql_data:/var/lib/mysql
volumes:
orangehrm_data:
mysql_data:
Start the stack and access the installer:
docker compose up -d
# Open http://localhost:8080 to complete the setup wizard
How Much Does OrangeHRM Cost to Self-Host?
OrangeHRM Starter is completely free and open-source under the GPL-3.0 license. There are no licensing fees, no per-user charges, and no hidden costs. The paid Advanced edition adds enterprise features like API access, advanced reporting, and priority support — pricing is available on request from OrangeHRM Inc. When self-hosting on Railway, your only cost is infrastructure — typically a few dollars per month for a small team.
OrangeHRM vs BambooHR
| Feature | OrangeHRM | BambooHR |
|---|---|---|
| License | GPL-3.0 (free) | Proprietary |
| Pricing | Free (Starter) | From $250/month |
| Self-hosted | Yes | No (SaaS only) |
| Employee management | Yes | Yes |
| Leave management | Yes | Yes |
| Recruitment (ATS) | Yes | Yes |
| Performance reviews | 180° | 360° |
| Payroll | No (Advanced only) | Yes |
| API access | Advanced only | Yes |
| Mobile apps | Yes | Yes |
OrangeHRM is the best choice for organizations that need data sovereignty, want to avoid per-user SaaS fees, or require deep customization through source code access. BambooHR offers a more polished out-of-the-box experience with payroll integration for teams willing to pay the premium.
FAQ
What is OrangeHRM and why self-host it? OrangeHRM is an open-source human resource management system covering employee records, leave tracking, recruitment, performance reviews, and reporting. Self-hosting gives you full control over sensitive employee data, eliminates per-user SaaS costs, and lets you customize the platform through its GPL-3.0 licensed source code.
What does this Railway template deploy for OrangeHRM? This template deploys the OrangeHRM PHP application with Apache and a MySQL 9.4 database. Both services are pre-wired — OrangeHRM connects to MySQL over Railway's private network. A persistent volume stores uploaded files and configuration.
Why does OrangeHRM need a MySQL database on Railway? OrangeHRM stores all employee records, leave balances, recruitment data, and configuration in MySQL. The Railway-managed MySQL service comes with automatic backups, persistent storage, and secure internal networking — no external database setup required.
How do I enable LDAP or SSO authentication in self-hosted OrangeHRM? LDAP integration is available in the OrangeHRM Advanced edition. For the Starter (open-source) edition, authentication is handled through OrangeHRM's built-in user management system with role-based access control for Admin, ESS (Employee Self-Service), and Supervisor roles.
Can I migrate from another HR system to OrangeHRM on Railway? Yes. OrangeHRM supports CSV import for employee data through the Admin module. Export your existing records from your current HR system, format them according to OrangeHRM's import template, and upload through the web interface. Database-level migration is also possible by connecting directly to the MySQL service via its public TCP proxy.
How do I update OrangeHRM to a newer version on Railway?
The template uses the orangehrm/orangehrm:latest tag. To update, trigger a redeploy from the Railway dashboard — it pulls the latest image automatically. Your data persists in the MySQL database and the /orangehrm volume across redeploys.
Template Content
MySQL
mysql:9.4OrangeHRM
orangehrm/orangehrm:latest