PHPackages                             horde/hordectl - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. horde/hordectl

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

horde/hordectl
==============

Scenario deployer library

v1.0.0beta2(1mo ago)01.1k↑250%[2 issues](https://github.com/horde/hordectl/issues)2LGPL-2.1PHPPHP ^8.2

Since Mar 3Pushed 1mo ago6 watchersCompare

[ Source](https://github.com/horde/hordectl)[ Packagist](https://packagist.org/packages/horde/hordectl)[ Docs](https://www.horde.org)[ RSS](/packages/horde-hordectl/feed)WikiDiscussions FRAMEWORK\_6\_0 Synced 1mo ago

READMEChangelog (5)Dependencies (20)Versions (21)Used By (2)

hordectl
========

[](#hordectl)

Deploy scenarios for end to end tests from yaml files Patch desired configurations into horde backends without touching unrelated content

Install into your Horde 6 deployment
------------------------------------

[](#install-into-your-horde-6-deployment)

cd /var/www/horde-dev composer require horde/hordectl

Basic Usage
-----------

[](#basic-usage)

### Show available horde apps

[](#show-available-horde-apps)

7root@cdcead205371:/var/www/horde-dev# ./vendor/bin/hordectl help Help Found Horde at: /var/www/horde-dev/web/horde Found Application: horde (active) Found Application: imp (inactive) Found Application: ingo (inactive) Found Application: sam (inactive) Found Application: kronolith (inactive) Found Application: turba (inactive) Found Application: nag (inactive) Found Application: mnemo (inactive) Found Application: trean (inactive) Found Application: ansel (inactive) Found Application: wicked (inactive) Found Application: chora (inactive) Found Application: whups (inactive) Found Application: luxor (inactive) Found Application: klutz (inactive) Found Application: jonah (inactive) Found Application: hermes (inactive) Found Application: sesha (inactive) Found Application: kolab (inactive) Found Application: gollem (inactive) Found Application: passwd (inactive) Found Application: agora (inactive) Found Application: ulaform (inactive) Found Application: vilma (inactive) Found Application: content (inactive) Found Application: timeobjects (inactive)

### Inject a user or change his password (AKA: Help! I have locked myself out of horde)

[](#inject-a-user-or-change-his-password-aka--help-i-have-locked-myself-out-of-horde)

If your horde authentication backend allows setting passwords through horde ...

- SQL Authentication
- Some types of LDAP/AD authentication with password change option
- Some types of IMAP setup

You can change the password for an existing user or inject a new user into horde. This is also useful for automated deployment. You can configure horde to use the SQL backend, migrate up the database schema from zero and inject an admin user.

```
    hordectl patch user fritz mysecretpassword

```

Remember, this only works if the auth backend supports it.

### Export resources to a yaml file

[](#export-resources-to-a-yaml-file)

Exported resources are as backend independent as possible. Some backends may limit Horde's ability to expose every user's resources globally. Data format is similar to the internal representation but may deviate where it's appropriate. For example, groups do not export backend keys. When a permission query has per-group permissions, the group will be referenced by display name.

```
hordectl query user > user.yml
hordectl query group > group.yml
hordectl query permission > permission.yml

```

These will create individual files for resources. When exporting, order is not important. A syntax for filtering queries or combining resource types into one file is still missing.

### Import definitions from a yaml file

[](#import-definitions-from-a-yaml-file)

```
hordectl import -f user.yml
hordectl import -f group.yml
hordectl import -f permission.yml

```

Order might be significant. Permissions won't accept group permissions for groups which are not present in the system yet. Some backends may be readonly and will not allow adding/changing some resources.

See doc dir for detailed explanations of possible input formats and their semantics

Intended uses
-------------

[](#intended-uses)

If you need a verbatim backup, you might be better off with a snapshot of the database and vfs.

- Deploy CI/CD scenario content without dependency on DB type or format
- Reproduce edge cases to demonstrate bugs
- Inject users/groups/perms into an existing or new installation
- Demo scenarios
- Migrate between backend types

Inspirations
------------

[](#inspirations)

- yaml and similar formats from config management tools, infrastructure as code, kubectl, helm

Will it dump existing content to yaml?
--------------------------------------

[](#will-it-dump-existing-content-to-yaml)

Yes, it does. For any objects defined. Maybe within some limitations. I don't know. It will evolve as I need it.

Will it be a complete backup/restore solution?
----------------------------------------------

[](#will-it-be-a-complete-backuprestore-solution)

Likely not. See horde/backup for a different take on dumping/restoring application content.

Development notes
-----------------

[](#development-notes)

### Builtin commands

[](#builtin-commands)

help TODO give help on commands in general or on a specific command and its switches and sub commands query output yaml format representations of backend data for which an exporter is either builtin or provided by the app import generate backend data from \[potentially incomplete \] yaml repesentations and builder defaults if builtin or provided by the app patch manipulate resources with one-shot commands. app TODO run app specific commands implemented in your app.

###  Health Score

49

—

FairBetter than 95% of packages

Maintenance90

Actively maintained with recent releases

Popularity20

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 98% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~168 days

Recently: every ~4 days

Total

12

Last Release

44d ago

PHP version history (3 changes)1.0.0alpha2PHP ^7

v1.0.0alpha4PHP ^7.4 || ^8

v1.0.0alpha6PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/c943a083635c28520599075eaea7ede2d743b7697b76e84d6bdc37e52cc8249b?d=identicon)[yunosh](/maintainers/yunosh)

![](https://www.gravatar.com/avatar/c931cd02664859360478593450d6c473a05bb12b209dfacfc534cd13257cc7ef?d=identicon)[ralflang](/maintainers/ralflang)

![](https://www.gravatar.com/avatar/e4f6c6771993db2ed500959b42353f6cf6a2ca0406d9617f7ae680f4504faa4a?d=identicon)[horde](/maintainers/horde)

![](https://www.gravatar.com/avatar/a7767adb66b45f2f05bcd44d49bc4e67efacd9ce05b161ce2d481d5dd6af025c?d=identicon)[mrubinsk](/maintainers/mrubinsk)

---

Top Contributors

[![ralflang](https://avatars.githubusercontent.com/u/646976?v=4)](https://github.com/ralflang "ralflang (98 commits)")[![midahp](https://avatars.githubusercontent.com/u/19747890?v=4)](https://github.com/midahp "midahp (1 commits)")[![TDannhauer](https://avatars.githubusercontent.com/u/6716033?v=4)](https://github.com/TDannhauer "TDannhauer (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/horde-hordectl/health.svg)

```
[![Health](https://phpackages.com/badges/horde-hordectl/health.svg)](https://phpackages.com/packages/horde-hordectl)
```

###  Alternatives

[deployer/deployer

Deployment Tool

11.0k25.4M207](/packages/deployer-deployer)[appwrite/server-ce

End to end backend server for frontend and mobile apps.

55.3k84.2k](/packages/appwrite-server-ce)[pragmarx/health

Laravel Server &amp; App Health Monitor and Notifier

2.0k1.0M2](/packages/pragmarx-health)[felixfbecker/language-server-protocol

PHP classes for the Language Server Protocol

22476.7M6](/packages/felixfbecker-language-server-protocol)[heroku/heroku-buildpack-php

Toolkit for starting a PHP application locally, with or without foreman, using the same config for PHP and Apache2/Nginx as on Heroku

8161.3M10](/packages/heroku-heroku-buildpack-php)[horde/horde

Horde base application

581.7k34](/packages/horde-horde)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
