---
title: "Deploy Horilla HR | (Just Updated) Open-Source HRMS Strangers Cannot Claim"
description: "Open-source HRMS: setup wizard sealed, admin seeded, uploads persist"
category: "Other"
url: https://railway.com/deploy/horilla-hr-or-just-updated-open-source-h
---

# Deploy Horilla HR | (Just Updated) Open-Source HRMS Strangers Cannot Claim

Open-source HRMS: setup wizard sealed, admin seeded, uploads persist

**[Deploy Horilla HR | (Just Updated) Open-Source HRMS Strangers Cannot Claim on Railway](https://railway.com/template/horilla-hr-or-just-updated-open-source-h)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/horilla-hr-or-just-updated-open-source-h/manifest.json

- **Creator:** SuperSlowSloth
- **Category:** Other

## Template content

### postgres

- **Image:** postgres:17.10-alpine

### horilla

- **Image:** ghcr.io/bon5co/horilla-railway:2.0.0
- **Public domain:** Yes

## Documentation

# Deploy and Host Horilla HR on Railway

Horilla is a free, open-source HR management system (HRMS) covering recruitment, onboarding,
employee records, attendance, leave, payroll, assets, performance and helpdesk. This template
deploys Horilla 2.0 with a PostgreSQL database, a persistent volume for uploaded documents,
and an administrator account that is created for you at first boot.

## About Hosting Horilla HR

Horilla is a Django application. It needs a PostgreSQL database, a writable media directory for
uploaded files (contracts, avatars, payslips), static files collected at boot, and a WSGI server.
This template runs Gunicorn with a single worker, because Horilla schedules background jobs
in-process with APScheduler and additional workers would run every job more than once.

Two things matter on a public URL. First, Horilla ships a setup wizard whose account-creation
endpoint has no authentication, so on a stock deployment the first stranger who finds the URL can
create a superuser and sign in. This template blocks the setup routes entirely and seeds the
administrator from a per-deployment generated password instead. Second, `MEDIA_ROOT` must point at
the mounted volume, or every uploaded document disappears on the next redeploy. Both are handled
here, and the deployment refuses to start if the administrator password is empty or is one of the
well-known upstream defaults.

The administrator password is re-applied on every boot, so redeploying the service is a working
password reset — Horilla's own recovery path is an emailed link, and a fresh deployment has no
SMTP server configured.

## Why Deploy Horilla HR on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your
infrastructure so you don't have to deal with configuration, while allowing you to vertically and
horizontally scale it.

By deploying Horilla HR on Railway, you are one step closer to supporting a complete full-stack
application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

## Common Use Cases

- Running HR operations for a small or mid-sized company without a per-seat SaaS subscription
- Recruitment and onboarding pipelines with candidate records and offer tracking
- Attendance, leave requests and payroll on a self-hosted instance you control the data of
- Employee self-service portal with documents, assets and performance reviews

## Dependencies for Horilla HR

- PostgreSQL (included in this template)
- A persistent volume for uploaded media

### Deployment Dependencies

- Horilla source: https://github.com/horilla-opensource/horilla
- Horilla documentation: https://www.horilla.com/docs/

### Implementation Details

The administrator username defaults to `admin`; the password is generated per deployment and is
visible in the service variables as `HORILLA_ADMIN_PASSWORD`. Sign in at `/login/`.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/horilla-hr-or-just-updated-open-source-h
