Skip to main content

CLI tool to build and manage Horilla projects

Project description

🛠️ Horilla Setup CLI (horillasetup)

The Horilla Setup CLI is a lightweight, cross-platform command-line utility designed to streamline the initialization, migration, and dependency setup processes for the Horilla ecosystem — including HRMS v1, HRMS v2, CRM, and upcoming modules.

It automates repetitive setup tasks like environment preparation, dependency installation, and migration management, ensuring a smooth and consistent workflow for both developers and deployment engineers.


🚀 Key Features

Quick Environment Setup — Instantly configure a new Horilla environment with one command. ✅ Version-Aware Migration — Supports both HRMS v1 and HRMS v2 with smart compatibility handling. ✅ Dependency Automation — Automatically installs required Python packages from requirements.txt. ✅ Seamless Upgrades — Migrate safely from v1 to v2 while preserving data integrity. ✅ Cross-Platform Support — Works smoothly on Windows, Linux, and macOS.


⚙️ Installation

You can install horillasetup globally or locally for active development.

📦 Global Installation

pip install horillasetup

🧩 Local (Development) Installation

If you’re working on improving or customizing the CLI:

git clone https://github.com/horilla-opensource/setup.git
cd horilla-ctl
pip install -e .

💡 The -e flag installs the CLI in editable mode, so any code changes take effect immediately.


🧭 Usage Overview

The CLI provides unified commands to build, migrate, and manage dependencies across all Horilla-based applications.

View all available commands:

horillasetup --help

🏗️ 1. Build a New Horilla HRMS Project

Create and initialize a new Horilla HRMS instance:

horillasetup build hrms-v1

or

horillasetup build hrms-v2

This command will:

  • Clone the specified Horilla HRMS repository.
  • Install all dependencies from requirements.txt.
  • Set up required environment files (.env).
  • Display post-installation guidance.

🧱 2. Apply Migrations

Run database migrations for your Horilla instance:

horillasetup migrate hrms-v1

or

horillasetup migrate hrms-v2

This performs:

  • makemigrations and migrate automatically.
  • Static file collection (collectstatic --noinput).
  • Database schema setup or update.

🔄 3. Upgrade from HRMS v1 → HRMS v2

For upgrading an existing v1 database to v2:

horillasetup migrate hrms-v2 --existing

What happens:

  • Detects the existing HRMS v1 database.
  • Clears outdated migration entries safely.
  • Applies v2 migrations using compatibility logic.
  • Fakes migration states where required to preserve data.

📦 4. Install Dependencies Only

Install all required dependencies without building or migrating:

horillasetup install-deps

Performs:

  • Validation for the requirements.txt file.
  • Executes pip install -r requirements.txt.
  • Displays installation progress and status summary.

💡 Example Workflow

# Step 1: Build a fresh HRMS v2 environment
horillasetup build hrms-v2

# Step 2: Apply migrations for initial setup
horillasetup migrate hrms-v2

# (Optional) Upgrade an existing v1 database
horillasetup migrate hrms-v2 --existing

# (Optional) Reinstall dependencies manually
horillasetup install-deps

🧭 Future Roadmap

  • 🔌 Support for CRM and other upcoming Horilla modules
  • 🧱 Modular plugin-based scaffolding system
  • ⚙️ Smart environment detection and guided setup wizard
  • 🔄 Automated upgrade checks and dependency validation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

horillasetup-1.0.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

horillasetup-1.0.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file horillasetup-1.0.0.tar.gz.

File metadata

  • Download URL: horillasetup-1.0.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for horillasetup-1.0.0.tar.gz
Algorithm Hash digest
SHA256 773b57be502696c757f00699207185284de666684b76c8e1623c607c54d4e7c5
MD5 f425d9c7cdcbd237eb68efd991efc8b4
BLAKE2b-256 fc041469f312c9f26e2d4d3c94688781e1c69b38e50b51c5abef68073854b638

See more details on using hashes here.

File details

Details for the file horillasetup-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: horillasetup-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for horillasetup-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fbbaf9ed1ea9608aefec538de4c83e8394aa340b74e4bd3353c9d23c9392520c
MD5 70683ffbb559ede63854642b109ad29f
BLAKE2b-256 c9372fb2ed69a1540147601f64fb5870ba224c91de6f0573855966ff6f82dbde

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page